math-functions 0.1.7.0 → 0.3.4.4
raw patch · 48 files changed
Files
- Numeric/MathFunctions/Comparison.hs +32/−5
- Numeric/MathFunctions/Constants.hs +20/−1
- Numeric/Polynomial.hs +1/−1
- Numeric/Polynomial/Chebyshev.hs +7/−4
- Numeric/RootFinding.hs +387/−0
- Numeric/Series.hs +180/−0
- Numeric/SpecFunctions.hs +19/−4
- Numeric/SpecFunctions/Compat.hs +167/−0
- Numeric/SpecFunctions/Extra.hs +62/−2
- Numeric/SpecFunctions/Internal.hs +1380/−812
- Numeric/Sum.hs +178/−21
- README.markdown +17/−3
- bench/bench.hs +126/−0
- benchmark/Summation.hs +0/−15
- benchmark/bench.hs +0/−89
- changelog.md +137/−6
- math-functions.cabal +117/−44
- tests/Tests/Chebyshev.hs +4/−6
- tests/Tests/Comparison.hs +3/−3
- tests/Tests/Helpers.hs +6/−7
- tests/Tests/RootFinding.hs +44/−0
- tests/Tests/SpecFunctions.hs +406/−112
- tests/Tests/SpecFunctions/Tables.hs +8/−135
- tests/Tests/SpecFunctions_flymake.hs +0/−206
- tests/Tests/Sum.hs +43/−29
- tests/tables/digamma.dat +100/−0
- tests/tables/erf.dat +68/−0
- tests/tables/erfc-large.dat +9/−0
- tests/tables/erfc.dat +56/−0
- tests/tables/expm1.dat +13/−0
- tests/tables/factorial.dat +20000/−0
- tests/tables/generate.py +102/−0
- tests/tables/igamma.dat +180/−0
- tests/tables/inputs/digamma.dat +100/−0
- tests/tables/inputs/erf.dat +68/−0
- tests/tables/inputs/erfc-large.dat +9/−0
- tests/tables/inputs/erfc.dat +56/−0
- tests/tables/inputs/expm1.dat +13/−0
- tests/tables/inputs/igamma.dat +31/−0
- tests/tables/inputs/log1p.dat +13/−0
- tests/tables/inputs/logbeta.dat +29/−0
- tests/tables/inputs/loggamma.dat +43/−0
- tests/tables/log1p.dat +13/−0
- tests/tables/logbeta.dat +784/−0
- tests/tables/loggamma.dat +43/−0
- tests/tables/shell.nix +10/−0
- tests/tests.hs +12/−9
- tests/view.hs +0/−102
Numeric/MathFunctions/Comparison.hs view
@@ -19,6 +19,7 @@ -- * Ulps-based comparison , addUlps , ulpDistance+ , ulpDelta , within ) where @@ -36,7 +37,7 @@ -- | -- Calculate relative error of two numbers: ----- > |a - b| / max |a| |b|+-- \[ \frac{|a - b|}{\max(|a|,|b|)} \] -- -- It lies in [0,1) interval for numbers with same sign and (1,2] for -- numbers with different sign. If both arguments are zero or negative@@ -49,9 +50,9 @@ -- | Check that relative error between two numbers @a@ and @b@. If -- 'relativeError' returns NaN it returns @False@.-eqRelErr :: Double -- ^ @eps@ relative error should be in [0,1) range- -> Double -- ^ @a@- -> Double -- ^ @b@+eqRelErr :: Double -- ^ /eps/ relative error should be in [0,1) range+ -> Double -- ^ /a/+ -> Double -- ^ /b/ -> Bool eqRelErr eps a b = relativeError a b < eps @@ -80,7 +81,8 @@ -- | -- Measure distance between two @Double@s in ULPs (units of least--- precision).+-- precision). Note that it's different from @abs (ulpDelta a b)@+-- since it returns correct result even when 'ulpDelta' overflows. ulpDistance :: Double -> Double -> Word64@@ -100,6 +102,31 @@ d | ai > bi = ai - bi | otherwise = bi - ai return $! d++-- |+-- Measure signed distance between two @Double@s in ULPs (units of least+-- precision). Note that unlike 'ulpDistance' it can overflow.+--+-- > >>> ulpDelta 1 (1 + m_epsilon)+-- > 1+ulpDelta :: Double+ -> Double+ -> Int64+ulpDelta a b = runST $ do+ buf <- newByteArray 8+ ai0 <- writeByteArray buf 0 a >> readByteArray buf 0+ bi0 <- writeByteArray buf 0 b >> readByteArray buf 0+ -- IEEE754 floats use most significant bit as sign bit (not+ -- 2-complement) and we need to rearrange representations of float+ -- number so that they could be compared lexicographically as+ -- Word64.+ let big = 0x8000000000000000 :: Word64+ order i | i < big = i + big+ | otherwise = maxBound - i+ ai = order ai0+ bi = order bi0+ return $! fromIntegral $ bi - ai+ -- | Compare two 'Double' values for approximate equality, using -- Dawson's method.
Numeric/MathFunctions/Constants.hs view
@@ -13,12 +13,15 @@ ( -- * IEE754 constants m_epsilon+ , m_sqrt_eps , m_huge , m_tiny , m_max_exp , m_pos_inf , m_neg_inf , m_NaN+ , m_max_log+ , m_min_log -- * Mathematical constants , m_1_sqrt_2 , m_2_sqrt_pi@@ -32,11 +35,12 @@ -- IEE754 constants ---------------------------------------------------------------- --- | A very large number.+-- | Largest representable finite value. m_huge :: Double m_huge = 1.7976931348623157e308 {-# INLINE m_huge #-} +-- | The smallest representable positive normalized value. m_tiny :: Double m_tiny = 2.2250738585072014e-308 {-# INLINE m_tiny #-}@@ -61,8 +65,17 @@ m_NaN = 0/0 {-# INLINE m_NaN #-} +-- | Maximum possible finite value of @log x@+m_max_log :: Double+m_max_log = 709.782712893384+{-# INLINE m_max_log #-} +-- | Logarithm of smallest normalized double ('m_tiny')+m_min_log :: Double+m_min_log = -708.3964185322641+{-# INLINE m_min_log #-} + ---------------------------------------------------------------- -- Mathematical constants ----------------------------------------------------------------@@ -91,6 +104,12 @@ m_epsilon :: Double m_epsilon = encodeFloat (signif+1) expo - 1.0 where (signif,expo) = decodeFloat (1.0::Double)++-- | @sqrt m_epsilon@+--+-- @since 0.3.3.0+m_sqrt_eps :: Double+m_sqrt_eps = 1.4901161193847656e-8 -- | @log(sqrt((2*pi))@ m_ln_sqrt_2_pi :: Double
Numeric/Polynomial.hs view
@@ -69,7 +69,7 @@ -- $lists -- -- When all coefficients are known statically it's more convenient to--- pass coefficient in a list instad of vector. Functions below+-- pass coefficient in a list instead of vector. Functions below -- provide just that functionality. If list is known statically it -- will be inlined anyway.
Numeric/Polynomial/Chebyshev.hs view
@@ -27,9 +27,12 @@ -- A Chebyshev polynomial of the first kind is defined by the -- following recurrence: ----- > t 0 _ = 1--- > t 1 x = x--- > t n x = 2 * x * t (n-1) x - t (n-2) x+-- \[\begin{aligned}+-- T_0(x) &= 1 \\+-- T_1(x) &= x \\+-- T_{n+1}(x) &= 2xT_n(x) - T_{n-1}(x) \\+-- \end{aligned}+-- \] data C = C {-# UNPACK #-} !Double {-# UNPACK #-} !Double @@ -68,7 +71,7 @@ -- -- * Broucke, R. (1973) Algorithm 446: Ten subroutines for the -- manipulation of Chebyshev series. /Communications of the ACM/--- 16(4):254–256. <http://doi.acm.org/10.1145/362003.362037>+-- 16(4):254–256. <http://doi.acm.org/10.1145/362003.362037> -- -- * Clenshaw, C.W. (1962) Chebyshev series for mathematical -- functions. /National Physical Laboratory Mathematical Tables 5/,
+ Numeric/RootFinding.hs view
@@ -0,0 +1,387 @@+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveFoldable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveTraversable #-}+{-# LANGUAGE TypeFamilies #-}+-- |+-- Module : Numeric.RootFinding+-- Copyright : (c) 2011 Bryan O'Sullivan, 2018 Alexey Khudyakov+-- License : BSD3+--+-- Maintainer : bos@serpentine.com+-- Stability : experimental+-- Portability : portable+--+-- Haskell functions for finding the roots of real functions of real+-- arguments. These algorithms are iterative so we provide both+-- function returning root (or failure to find root) and list of+-- iterations.+module Numeric.RootFinding+ ( -- * Data types+ Root(..)+ , fromRoot+ , Tolerance(..)+ , withinTolerance+ , IterationStep(..)+ , findRoot+ -- * Ridders algorithm+ , RiddersParam(..)+ , ridders+ , riddersIterations+ , RiddersStep(..)+ -- * Newton-Raphson algorithm+ , NewtonParam(..)+ , newtonRaphson+ , newtonRaphsonIterations+ , NewtonStep(..)+ -- * References+ -- $references+ ) where++import Control.Applicative (Alternative(..))+import Control.Monad (MonadPlus(..), ap)+import Control.DeepSeq (NFData(..))+import Data.Data (Data, Typeable)+import Data.Default.Class+import GHC.Generics (Generic)+import Numeric.MathFunctions.Comparison (within,eqRelErr)+import Numeric.MathFunctions.Constants (m_epsilon)++++----------------------------------------------------------------+-- Data types+----------------------------------------------------------------++-- | The result of searching for a root of a mathematical function.+data Root a+ = NotBracketed+ -- ^ The function does not have opposite signs when+ -- evaluated at the lower and upper bounds of the search.+ | SearchFailed+ -- ^ The search failed to converge to within the given+ -- error tolerance after the given number of iterations.+ | Root !a+ -- ^ A root was successfully found.+ deriving (Eq, Read, Show, Typeable, Data, Foldable, Traversable, Functor, Generic)++instance (NFData a) => NFData (Root a) where+ rnf NotBracketed = ()+ rnf SearchFailed = ()+ rnf (Root a) = rnf a++instance Applicative Root where+ pure = Root+ (<*>) = ap++instance Monad Root where+ NotBracketed >>= _ = NotBracketed+ SearchFailed >>= _ = SearchFailed+ Root a >>= f = f a+ return = pure++instance MonadPlus Root where+ mzero = empty+ mplus = (<|>)++instance Alternative Root where+ empty = NotBracketed+ r@Root{} <|> _ = r+ _ <|> r@Root{} = r+ NotBracketed <|> r = r+ r <|> NotBracketed = r+ _ <|> r = r++-- | Returns either the result of a search for a root, or the default+-- value if the search failed.+fromRoot :: a -- ^ Default value.+ -> Root a -- ^ Result of search for a root.+ -> a+fromRoot _ (Root a) = a+fromRoot a _ = a+++-- | Error tolerance for finding root. It describes when root finding+-- algorithm should stop trying to improve approximation.+data Tolerance+ = RelTol !Double+ -- ^ Relative error tolerance. Given @RelTol ε@ two values are+ -- considered approximately equal if+ -- \[ \frac{|a - b|}{|\operatorname{max}(a,b)} < \varepsilon \]+ | AbsTol !Double+ -- ^ Absolute error tolerance. Given @AbsTol δ@ two values are+ -- considered approximately equal if \[ |a - b| < \delta \].+ -- Note that @AbsTol 0@ could be used to require to find+ -- approximation within machine precision.+ deriving (Eq, Read, Show, Typeable, Data, Generic)++-- | Check that two values are approximately equal. In addition to+-- specification values are considered equal if they're within 1ulp+-- of precision. No further improvement could be done anyway.+withinTolerance :: Tolerance -> Double -> Double -> Bool+withinTolerance _ a b+ | within 1 a b = True+withinTolerance (RelTol eps) a b = eqRelErr eps a b+withinTolerance (AbsTol tol) a b = abs (a - b) < tol++-- | Type class for checking whether iteration converged already.+class IterationStep a where+ -- | Return @Just root@ is current iteration converged within+ -- required error tolerance. Returns @Nothing@ otherwise.+ matchRoot :: Tolerance -> a -> Maybe (Root Double)++-- | Find root in lazy list of iterations.+findRoot :: IterationStep a+ => Int -- ^ Maximum+ -> Tolerance -- ^ Error tolerance+ -> [a]+ -> Root Double+findRoot maxN tol = go 0+ where+ go !i _ | i >= maxN = SearchFailed+ go !_ [] = SearchFailed+ go i (x:xs) = case matchRoot tol x of+ Just r -> r+ Nothing -> go (i+1) xs+{-# INLINABLE findRoot #-}+{-# SPECIALIZE findRoot :: Int -> Tolerance -> [RiddersStep] -> Root Double #-}+{-# SPECIALIZE findRoot :: Int -> Tolerance -> [NewtonStep] -> Root Double #-}+++----------------------------------------------------------------+-- Attaching information to roots+----------------------------------------------------------------++-- | Parameters for 'ridders' root finding+data RiddersParam = RiddersParam+ { riddersMaxIter :: !Int+ -- ^ Maximum number of iterations. Default = 100+ , riddersTol :: !Tolerance+ -- ^ Error tolerance for root approximation. Default is relative+ -- error 4·ε, where ε is machine precision.+ }+ deriving (Eq, Read, Show, Typeable, Data, Generic)++instance Default RiddersParam where+ def = RiddersParam+ { riddersMaxIter = 100+ , riddersTol = RelTol (4 * m_epsilon)+ }++-- | Single Ridders step. It's a bracket of root+data RiddersStep+ = RiddersStep !Double !Double+ -- ^ Ridders step. Parameters are bracket for the root+ | RiddersBisect !Double !Double+ -- ^ Bisection step. It's fallback which is taken when Ridders+ -- update takes us out of bracket+ | RiddersRoot !Double+ -- ^ Root found+ | RiddersNoBracket+ -- ^ Root is not bracketed+ deriving (Eq, Read, Show, Typeable, Data, Generic)++instance NFData RiddersStep where+ rnf x = x `seq` ()++instance IterationStep RiddersStep where+ matchRoot tol r = case r of+ RiddersRoot x -> Just $ Root x+ RiddersNoBracket -> Just NotBracketed+ RiddersStep a b+ | withinTolerance tol a b -> Just $ Root ((a + b) / 2)+ | otherwise -> Nothing+ RiddersBisect a b+ | withinTolerance tol a b -> Just $ Root ((a + b) / 2)+ | otherwise -> Nothing+++-- | Use the method of Ridders[Ridders1979] to compute a root of a+-- function. It doesn't require derivative and provide quadratic+-- convergence (number of significant digits grows quadratically+-- with number of iterations).+--+-- The function must have opposite signs when evaluated at the lower+-- and upper bounds of the search (i.e. the root must be+-- bracketed). If there's more that one root in the bracket+-- iteration will converge to some root in the bracket.+ridders+ :: RiddersParam -- ^ Parameters for algorithms. @def@+ -- provides reasonable defaults+ -> (Double,Double) -- ^ Bracket for root+ -> (Double -> Double) -- ^ Function to find roots+ -> Root Double+ridders p bracket fun+ = findRoot (riddersMaxIter p) (riddersTol p)+ $ riddersIterations bracket fun++-- | List of iterations for Ridders methods. See 'ridders' for+-- documentation of parameters+riddersIterations :: (Double,Double) -> (Double -> Double) -> [RiddersStep]+riddersIterations (lo,hi) f+ | flo == 0 = [RiddersRoot lo]+ | fhi == 0 = [RiddersRoot hi]+ -- root is not bracketed+ | flo*fhi > 0 = [RiddersNoBracket]+ -- Ensure that a<b in iterations+ | lo < hi = RiddersStep lo hi : go lo flo hi fhi+ | otherwise = RiddersStep lo hi : go hi fhi lo flo+ where+ flo = f lo+ fhi = f hi+ --+ go !a !fa !b !fb+ | fm == 0 = [RiddersRoot m]+ | fn == 0 = [RiddersRoot n]+ -- Ridder's approximation coincide with one of old bounds or+ -- went out of (a,b) range due to numerical problems. Revert+ -- to bisection+ | n <= a || n >= b = case () of+ _| fm*fa < 0 -> recBisect a fa m fm+ | otherwise -> recBisect m fm b fb+ | fn*fm < 0 = recRidders n fn m fm+ | fn*fa < 0 = recRidders a fa n fn+ | otherwise = recRidders n fn b fb+ where+ recBisect x fx y fy = RiddersBisect x y : go x fx y fy+ recRidders x fx y fy = RiddersStep x y : go x fx y fy+ --+ dm = (b - a) * 0.5+ -- Mean point+ m = (a + b) / 2+ fm = f m+ -- Ridders update+ n = m - signum (fb - fa) * dm * fm / sqrt(fm*fm - fa*fb)+ fn = f n++++----------------------------------------------------------------+-- Newton-Raphson algorithm+----------------------------------------------------------------++-- | Parameters for 'ridders' root finding+data NewtonParam = NewtonParam+ { newtonMaxIter :: !Int+ -- ^ Maximum number of iterations. Default = 50+ , newtonTol :: !Tolerance+ -- ^ Error tolerance for root approximation. Default is relative+ -- error 4·ε, where ε is machine precision+ }+ deriving (Eq, Read, Show, Typeable, Data, Generic)++instance Default NewtonParam where+ def = NewtonParam+ { newtonMaxIter = 50+ , newtonTol = RelTol (4 * m_epsilon)+ }++-- | Steps for Newton iterations+data NewtonStep+ = NewtonStep !Double !Double+ -- ^ Normal Newton-Raphson update. Parameters are: old guess, new guess+ | NewtonBisection !Double !Double+ -- ^ Bisection fallback when Newton-Raphson iteration doesn't+ -- work. Parameters are bracket on root+ | NewtonRoot !Double+ -- ^ Root is found+ | NewtonNoBracket+ -- ^ Root is not bracketed+ deriving (Eq, Read, Show, Typeable, Data, Generic)++instance NFData NewtonStep where+ rnf x = x `seq` ()++instance IterationStep NewtonStep where+ matchRoot tol r = case r of+ NewtonRoot x -> Just (Root x)+ NewtonNoBracket -> Just NotBracketed+ NewtonStep x x'+ | withinTolerance tol x x' -> Just (Root x')+ | otherwise -> Nothing+ NewtonBisection a b+ | withinTolerance tol a b -> Just (Root ((a + b) / 2))+ | otherwise -> Nothing+ {-# INLINE matchRoot #-}+++-- | Solve equation using Newton-Raphson iterations.+--+-- This method require both initial guess and bounds for root. If+-- Newton step takes us out of bounds on root function reverts to+-- bisection.+newtonRaphson+ :: NewtonParam -- ^ Parameters for algorithm. @def@+ -- provide reasonable defaults.+ -> (Double,Double,Double) -- ^ Triple of @(low bound, initial+ -- guess, upper bound)@. If initial+ -- guess if out of bracket middle+ -- of bracket is taken as+ -- approximation+ -> (Double -> (Double,Double)) -- ^ Function to find root of. It+ -- returns pair of function value and+ -- its first derivative+ -> Root Double+newtonRaphson p guess fun+ = findRoot (newtonMaxIter p) (newtonTol p)+ $ newtonRaphsonIterations guess fun++-- | List of iteration for Newton-Raphson algorithm. See documentation+-- for 'newtonRaphson' for meaning of parameters.+newtonRaphsonIterations :: (Double,Double,Double) -> (Double -> (Double,Double)) -> [NewtonStep]+newtonRaphsonIterations (lo,guess,hi) function+ | flo == 0 = [NewtonRoot lo]+ | fhi == 0 = [NewtonRoot hi]+ | flo*fhi > 0 = [NewtonNoBracket]+ -- Ensure that function value on low bound is negative+ | flo > 0 = go hi guess' lo+ | otherwise = go lo guess hi+ where+ (flo,_) = function lo+ (fhi,_) = function hi+ -- Ensure that initial guess is within bracket+ guess'+ | guess >= lo && guess <= hi = guess+ | guess >= hi && guess <= lo = guess+ | otherwise = (lo + hi) / 2+ -- Newton iterations. Invariant:+ -- > f xA < 0+ -- > f xB > 0+ go xA x xB+ | f == 0 = [NewtonRoot x]+ | f' == 0 = bisectionStep+ -- Accept Newton step since it stays within bracket.+ | (x' - xA) * (x' - xB) < 0 = newtonStep+ -- Otherwise bracket root and pick new approximation as+ -- midpoint.+ | otherwise = bisectionStep+ where+ -- Calculate Newton step+ (f,f') = function x+ x' = x - f / f'+ -- Newton step+ newtonStep+ | f > 0 = NewtonStep x x' : go xA x' x+ | otherwise = NewtonStep x x' : go x x' xB+ -- Fallback bisection step+ bisectionStep+ | f > 0 = NewtonBisection xA x : go xA ((xA + x) / 2) x+ | otherwise = NewtonBisection x xB : go x ((x + xB) / 2) xB++++----------------------------------------------------------------+-- Internal functions+----------------------------------------------------------------++-- $references+--+-- * Ridders, C.F.J. (1979) A new algorithm for computing a single+-- root of a real continuous function.+-- /IEEE Transactions on Circuits and Systems/ 26:979–980.+--+-- * Press W.H.; Teukolsky S.A.; Vetterling W.T.; Flannery B.P.+-- (2007). \"Section 9.2.1. Ridders' Method\". /Numerical Recipes: The+-- Art of Scientific Computing (3rd ed.)./ New York: Cambridge+-- University Press. ISBN 978-0-521-88068-8.
+ Numeric/Series.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE ExistentialQuantification #-}+-- |+-- Module : Numeric.Series+-- Copyright : (c) 2016 Alexey Khudyakov+-- License : BSD3+--+-- Maintainer : alexey.skladnoy@gmail.com, bos@serpentine.com+-- Stability : experimental+-- Portability : portable+--+-- Functions for working with infinite sequences. In particular+-- summation of series and evaluation of continued fractions.+module Numeric.Series (+ -- * Data type for infinite sequences.+ Sequence(..)+ -- * Constructors+ , enumSequenceFrom+ , enumSequenceFromStep+ , scanSequence+ -- * Summation of series+ , sumSeries+ , sumPowerSeries+ , sequenceToList+ -- * Evaluation of continued fractions+ , evalContFractionB+ ) where++import Control.Applicative+import Data.List (unfoldr)++import Numeric.MathFunctions.Constants (m_epsilon)+++----------------------------------------------------------------++-- | Infinite series. It's represented as opaque state and step+-- function.+data Sequence a = forall s. Sequence s (s -> (a,s))++instance Functor Sequence where+ fmap f (Sequence s0 step) = Sequence s0 (\s -> let (a,s') = step s in (f a, s'))+ {-# INLINE fmap #-}++instance Applicative Sequence where+ pure a = Sequence () (\() -> (a,()))+ Sequence sA fA <*> Sequence sB fB = Sequence (sA,sB) $ \(!sa,!sb) ->+ let (a,sa') = fA sa+ (b,sb') = fB sb+ in (a b, (sa',sb'))+ {-# INLINE pure #-}+ {-# INLINE (<*>) #-}++-- | Elementwise operations with sequences+instance Num a => Num (Sequence a) where+ (+) = liftA2 (+)+ (*) = liftA2 (*)+ (-) = liftA2 (-)+ {-# INLINE (+) #-}+ {-# INLINE (*) #-}+ {-# INLINE (-) #-}+ abs = fmap abs+ signum = fmap signum+ fromInteger = pure . fromInteger+ {-# INLINE abs #-}+ {-# INLINE signum #-}+ {-# INLINE fromInteger #-}++-- | Elementwise operations with sequences+instance Fractional a => Fractional (Sequence a) where+ (/) = liftA2 (/)+ recip = fmap recip+ fromRational = pure . fromRational+ {-# INLINE (/) #-}+ {-# INLINE recip #-}+ {-# INLINE fromRational #-}++++----------------------------------------------------------------+-- Constructors+----------------------------------------------------------------++-- | @enumSequenceFrom x@ generate sequence:+--+-- \[ a_n = x + n \]+enumSequenceFrom :: Num a => a -> Sequence a+enumSequenceFrom i = Sequence i (\n -> (n,n+1))+{-# INLINE enumSequenceFrom #-}++-- | @enumSequenceFromStep x d@ generate sequence:+--+-- \[ a_n = x + nd \]+enumSequenceFromStep :: Num a => a -> a -> Sequence a+enumSequenceFromStep n d = Sequence n (\i -> (i,i+d))+{-# INLINE enumSequenceFromStep #-}++-- | Analog of 'scanl' for sequence.+scanSequence :: (b -> a -> b) -> b -> Sequence a -> Sequence b+{-# INLINE scanSequence #-}+scanSequence f b0 (Sequence s0 step) = Sequence (b0,s0) $ \(b,s) ->+ let (a,s') = step s+ b' = f b a+ in (b,(b',s'))+++----------------------------------------------------------------+-- Evaluation of series+----------------------------------------------------------------++-- | Calculate sum of series+--+-- \[ \sum_{i=0}^\infty a_i \]+--+-- Summation is stopped when+--+-- \[ a_{n+1} < \varepsilon\sum_{i=0}^n a_i \]+--+-- where ε is machine precision ('m_epsilon')+sumSeries :: Sequence Double -> Double+{-# INLINE sumSeries #-}+sumSeries (Sequence sInit step)+ = go x0 s0+ where + (x0,s0) = step sInit+ go x s | abs (d/x) >= m_epsilon = go x' s'+ | otherwise = x'+ where (d,s') = step s+ x' = x + d++-- | Calculate sum of series+--+-- \[ \sum_{i=0}^\infty x^ia_i \]+--+-- Calculation is stopped when next value in series is less than+-- ε·sum.+sumPowerSeries :: Double -> Sequence Double -> Double+sumPowerSeries x ser = sumSeries $ liftA2 (*) (scanSequence (*) 1 (pure x)) ser+{-# INLINE sumPowerSeries #-}++-- | Convert series to infinite list+sequenceToList :: Sequence a -> [a]+sequenceToList (Sequence s f) = unfoldr (Just . f) s++++----------------------------------------------------------------+-- Evaluation of continued fractions+----------------------------------------------------------------++-- |+-- Evaluate continued fraction using modified Lentz algorithm.+-- Sequence contain pairs (a[i],b[i]) which form following expression:+--+-- \[+-- b_0 + \frac{a_1}{b_1+\frac{a_2}{b_2+\frac{a_3}{b_3 + \cdots}}}+-- \]+--+-- Modified Lentz algorithm is described in Numerical recipes 5.2+-- "Evaluation of Continued Fractions"+evalContFractionB :: Sequence (Double,Double) -> Double+{-# INLINE evalContFractionB #-}+evalContFractionB (Sequence sInit step)+ = let ((_,b0),s0) = step sInit+ f0 = maskZero b0+ in go f0 f0 0 s0+ where+ tiny = 1e-60+ maskZero 0 = tiny+ maskZero x = x+ + go f c d s+ | abs (delta - 1) >= m_epsilon = go f' c' d' s'+ | otherwise = f'+ where+ ((a,b),s') = step s+ d' = recip $ maskZero $ b + a*d+ c' = maskZero $ b + a/c + delta = c'*d'+ f' = f*delta
Numeric/SpecFunctions.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE BangPatterns, ScopedTypeVariables #-} -- | -- Module : Numeric.SpecFunctions -- Copyright : (c) 2009, 2011, 2012 Bryan O'Sullivan@@ -29,8 +28,12 @@ -- * Sinc , sinc -- * Logarithm+ -- $log1p , log1p+ , log1pmx , log2+ -- * Exponent+ , expm1 -- * Factorial , factorial , logFactorial@@ -44,6 +47,13 @@ import Numeric.SpecFunctions.Internal +-- $log1p+--+-- Base starting from @4.9.0@ (GHC 8.0) provides 'log1p' and 'expm1'+-- as method of class 'Floating'. In this case we simply reexport+-- these function. Otherwise we provide our own with more restrictive+-- signature @Double → Double@.+ -- $references -- -- * Bernardo, J. (1976) Algorithm AS 103: Psi (digamma)@@ -81,6 +91,11 @@ -- Vol. 22, No. 3 (1973), pp. 411-414 -- <http://www.jstor.org/pss/2346798> ----- * Shea, B. (1988) Algorithm AS 239: Chi-squared and incomplete--- gamma integral. /Applied Statistics/--- 37(3):466–473. <http://www.jstor.org/stable/2347328>+-- * Temme, N.M. (1992) Asymptotic inversion of the incomplete beta+-- function. /Journal of Computational and Applied Mathematics+-- 41(1992) 145-157.+--+-- * Temme, N.M. (1994) A set of algorithms for the incomplete gamma+-- functions. /Probability in the Engineering and Informational+-- Sciences/, 8, 1994, 291-307. Printed in the U.S.A.+
+ Numeric/SpecFunctions/Compat.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE ForeignFunctionInterface #-}+-- |+-- Functions which have different implementations on different platforms+module Numeric.SpecFunctions.Compat (+ erf+ , erfc+ , log1p+ , expm1+ ) where++#if !defined(USE_SYSTEM_ERF) || !defined(USE_SYSTEM_EXPM1)+import qualified Data.Vector.Unboxed as U+#endif++#if !defined(USE_SYSTEM_ERF)+import Numeric.Polynomial.Chebyshev (chebyshev)+import Numeric.Polynomial (evaluateOddPolynomial)+#endif++#if !defined(USE_SYSTEM_EXPM1)+import Control.Applicative (liftA2)+import Numeric.Polynomial.Chebyshev (chebyshevBroucke)+import Numeric.Series (scanSequence,sumSeries,enumSequenceFrom)+import Numeric.MathFunctions.Constants+#endif++#if defined(USE_SYSTEM_EXPM1)+import GHC.Float (log1p,expm1)+#endif+++----------------------------------------------------------------+-- erf & erfc+--+-- We provide pure haskell implementation for GHCJS and accessible on+-- GHC via flag+----------------------------------------------------------------++#if defined(USE_SYSTEM_ERF)++erf :: Double -> Double+erf = c_erf+{-# INLINE erf #-}++erfc :: Double -> Double+erfc = c_erfc+{-# INLINE erfc #-}++foreign import ccall unsafe "erf" c_erf :: Double -> Double+foreign import ccall unsafe "erfc" c_erfc :: Double -> Double++#else++erf :: Double -> Double+erf x+ -- Computing erf as 1-erfc loses precision near 0 so we switch to+ -- Taylor expansion here+ | abs x < 0.1 = 0.56418958354775629+ * evaluateOddPolynomial x erfTaylorSeries+ | x < 0 = (-1) + erfcCheb (-x)+ | otherwise = 1 - erfcCheb x++erfTaylorSeries :: U.Vector Double+{-# NOINLINE erfTaylorSeries #-}+erfTaylorSeries = U.fromList+ [ 2+ , -2/3+ , 1/5+ , -1/21+ , 1/108+ , -1/660+ , 1/4680+ ]++erfc :: Double -> Double+erfc x | x < 0 = 2 - erfcCheb (-x)+ | otherwise = erfcCheb x++-- Adapted from Numerical Recipes §6.2.2+erfcCheb :: Double -> Double+erfcCheb z+ = t * exp( -z * z + chebyshev ty erfcCoef )+ where+ -- We're using approximation:+ --+ -- erfc(z) ≈ t·exp(-z² + P(t))+ -- t = 2 / (2 + z)+ t = 2 / (2 + z)+ ty = 2 * t - 1+++erfcCoef :: U.Vector Double+{-# NOINLINE erfcCoef #-}+erfcCoef = U.fromList+ [ -0.6513268598908546 , 6.4196979235649026e-1 , 1.9476473204185836e-2+ , -9.561514786808631e-3 , -9.46595344482036e-4 , 3.66839497852761e-4+ , 4.2523324806907e-5 , -2.0278578112534e-5 , -1.624290004647e-6+ , 1.303655835580e-6 , 1.5626441722e-8 , -8.5238095915e-8+ , 6.529054439e-9 , 5.059343495e-9 , -9.91364156e-10+ , -2.27365122e-10 , 9.6467911e-11 , 2.394038e-12+ , -6.886027e-12 , 8.94487e-13 , 3.13092e-13+ , -1.12708e-13 , 3.81e-16 , 7.106e-15+ , -1.523e-15 , -9.4e-17 , 1.21e-16+ , -2.8e-17+ ]++#endif+++----------------------------------------------------------------+-- expm1 & log1p+--+-- We use one provided by base of for GHCJS use hand-coded one+----------------------------------------------------------------++#if !defined(USE_SYSTEM_EXPM1)++-- | Compute @exp x - 1@ without loss of accuracy for x near zero.+expm1 :: Double -> Double+-- NOTE: this is simplest implementation and not terribly efficient.+expm1 x+ | x < (-37.42994775023705) = -1+ | x > m_max_log = m_pos_inf+ | abs x > 0.5 = exp x - 1+ | otherwise = sumSeries $ liftA2 (*) (scanSequence (*) x (pure x))+ (1 / scanSequence (*) 1 (enumSequenceFrom 2))+-- | Compute the natural logarithm of 1 + @x@. This is accurate even+-- for values of @x@ near zero, where use of @log(1+x)@ would lose+-- precision.+log1p :: Double -> Double+log1p x+ | x == 0 = 0+ | x == -1 = m_neg_inf+ | x < -1 = m_NaN+ | x' < m_epsilon * 0.5 = x+ | (x >= 0 && x < 1e-8) || (x >= -1e-9 && x < 0)+ = x * (1 - x * 0.5)+ | x' < 0.375 = x * (1 - x * chebyshevBroucke (x / 0.375) coeffs)+ | otherwise = log (1 + x)+ where+ x' = abs x+ coeffs = U.fromList [+ 0.10378693562743769800686267719098e+1,+ -0.13364301504908918098766041553133e+0,+ 0.19408249135520563357926199374750e-1,+ -0.30107551127535777690376537776592e-2,+ 0.48694614797154850090456366509137e-3,+ -0.81054881893175356066809943008622e-4,+ 0.13778847799559524782938251496059e-4,+ -0.23802210894358970251369992914935e-5,+ 0.41640416213865183476391859901989e-6,+ -0.73595828378075994984266837031998e-7,+ 0.13117611876241674949152294345011e-7,+ -0.23546709317742425136696092330175e-8,+ 0.42522773276034997775638052962567e-9,+ -0.77190894134840796826108107493300e-10,+ 0.14075746481359069909215356472191e-10,+ -0.25769072058024680627537078627584e-11,+ 0.47342406666294421849154395005938e-12,+ -0.87249012674742641745301263292675e-13,+ 0.16124614902740551465739833119115e-13,+ -0.29875652015665773006710792416815e-14,+ 0.55480701209082887983041321697279e-15,+ -0.10324619158271569595141333961932e-15+ ]+#endif
Numeric/SpecFunctions/Extra.hs view
@@ -12,10 +12,12 @@ bd0 , chooseExact , logChooseFast+ , logGammaAS245+ , logGammaCorrection ) where -import Numeric.MathFunctions.Constants (m_NaN)-import Numeric.SpecFunctions.Internal (chooseExact,logChooseFast)+import Numeric.MathFunctions.Constants (m_NaN,m_pos_inf)+import Numeric.SpecFunctions.Internal (chooseExact,logChooseFast,logGammaCorrection) -- | Evaluate the deviance term @x log(x/np) + np - x@. bd0 :: Double -- ^ @x@@@ -34,3 +36,61 @@ loop j ej s = case s + ej/(2*j+1) of s' | s' == s -> s' -- FIXME: Comparing Doubles for equality! | otherwise -> loop (j+1) (ej*vv) s'++++-- | Compute the logarithm of the gamma function Γ(/x/). Uses+-- Algorithm AS 245 by Macleod.+--+-- Gives an accuracy of 10-12 significant decimal digits, except+-- for small regions around /x/ = 1 and /x/ = 2, where the function+-- goes to zero. For greater accuracy, use 'logGammaL'.+--+-- Returns ∞ if the input is outside of the range (0 < /x/ ≤ 1e305).+logGammaAS245 :: Double -> Double+-- Adapted from http://people.sc.fsu.edu/~burkardt/f_src/asa245/asa245.html+logGammaAS245 x+ | x <= 0 = m_pos_inf+ -- Handle positive infinity. logGamma overflows before 1e308 so+ -- it's safe+ | x > 1e308 = m_pos_inf+ -- Normal cases+ | x < 1.5 = a + c *+ ((((r1_4 * b + r1_3) * b + r1_2) * b + r1_1) * b + r1_0) /+ ((((b + r1_8) * b + r1_7) * b + r1_6) * b + r1_5)+ | x < 4 = (x - 2) *+ ((((r2_4 * x + r2_3) * x + r2_2) * x + r2_1) * x + r2_0) /+ ((((x + r2_8) * x + r2_7) * x + r2_6) * x + r2_5)+ | x < 12 = ((((r3_4 * x + r3_3) * x + r3_2) * x + r3_1) * x + r3_0) /+ ((((x + r3_8) * x + r3_7) * x + r3_6) * x + r3_5)+ | x > 3e6 = k+ | otherwise = k + x1 *+ ((r4_2 * x2 + r4_1) * x2 + r4_0) /+ ((x2 + r4_4) * x2 + r4_3)+ where+ (a , b , c)+ | x < 0.5 = (-y , x + 1 , x)+ | otherwise = (0 , x , x - 1)++ y = log x+ k = x * (y-1) - 0.5 * y + alr2pi+ alr2pi = 0.918938533204673++ x1 = 1 / x+ x2 = x1 * x1++ r1_0 = -2.66685511495; r1_1 = -24.4387534237; r1_2 = -21.9698958928+ r1_3 = 11.1667541262; r1_4 = 3.13060547623; r1_5 = 0.607771387771+ r1_6 = 11.9400905721; r1_7 = 31.4690115749; r1_8 = 15.2346874070++ r2_0 = -78.3359299449; r2_1 = -142.046296688; r2_2 = 137.519416416+ r2_3 = 78.6994924154; r2_4 = 4.16438922228; r2_5 = 47.0668766060+ r2_6 = 313.399215894; r2_7 = 263.505074721; r2_8 = 43.3400022514++ r3_0 = -2.12159572323e5; r3_1 = 2.30661510616e5; r3_2 = 2.74647644705e4+ r3_3 = -4.02621119975e4; r3_4 = -2.29660729780e3; r3_5 = -1.16328495004e5+ r3_6 = -1.46025937511e5; r3_7 = -2.42357409629e4; r3_8 = -5.70691009324e2++ r4_0 = 0.279195317918525; r4_1 = 0.4917317610505968;+ r4_2 = 0.0692910599291889; r4_3 = 3.350343815022304+ r4_4 = 6.012459259764103
Numeric/SpecFunctions/Internal.hs view
@@ -1,813 +1,1381 @@ {-# LANGUAGE BangPatterns, ScopedTypeVariables #-}--- |--- Module : Numeric.SpecFunctions.Internal--- Copyright : (c) 2009, 2011, 2012 Bryan O'Sullivan--- License : BSD3------ Maintainer : bos@serpentine.com--- Stability : experimental--- Portability : portable------ Internal module with implementation of special functions.-module Numeric.SpecFunctions.Internal where--import Data.Bits ((.&.), (.|.), shiftR)-import Data.Int (Int64)-import qualified Data.Number.Erf as Erf (erfc,erf)-import qualified Data.Vector.Unboxed as U--import Numeric.Polynomial.Chebyshev (chebyshevBroucke)-import Numeric.Polynomial (evaluateEvenPolynomialL,evaluateOddPolynomialL)-import Numeric.MathFunctions.Constants ( m_epsilon, m_NaN, m_neg_inf, m_pos_inf- , m_sqrt_2_pi, m_ln_sqrt_2_pi, m_sqrt_2- , m_eulerMascheroni- )-import Text.Printf---------------------------------------------------------------------- Error function--------------------------------------------------------------------- | Error function.------ > erf -∞ = -1--- > erf 0 = 0--- > erf +∞ = 1-erf :: Double -> Double-{-# INLINE erf #-}-erf = Erf.erf---- | Complementary error function.------ > erfc -∞ = 2--- > erfc 0 = 1--- > errc +∞ = 0-erfc :: Double -> Double-{-# INLINE erfc #-}-erfc = Erf.erfc----- | Inverse of 'erf'.-invErf :: Double -- ^ /p/ ∈ [-1,1]- -> Double-invErf p = invErfc (1 - p)---- | Inverse of 'erfc'.-invErfc :: Double -- ^ /p/ ∈ [0,2]- -> Double-invErfc p- | p == 2 = m_neg_inf- | p == 0 = m_pos_inf- | p >0 && p < 2 = if p <= 1 then r else -r- | otherwise = modErr $ "invErfc: p must be in [0,2] got " ++ show p- where- pp = if p <= 1 then p else 2 - p- t = sqrt $ -2 * log( 0.5 * pp)- -- Initial guess- x0 = -0.70711 * ((2.30753 + t * 0.27061) / (1 + t * (0.99229 + t * 0.04481)) - t)- r = loop 0 x0- --- loop :: Int -> Double -> Double- loop !j !x- | j >= 2 = x- | otherwise = let err = erfc x - pp- x' = x + err / (1.12837916709551257 * exp(-x * x) - x * err) -- // Halley- in loop (j+1) x'----------------------------------------------------------------------- Gamma function--------------------------------------------------------------------- Adapted from http://people.sc.fsu.edu/~burkardt/f_src/asa245/asa245.html---- | Compute the logarithm of the gamma function Γ(/x/). Uses--- Algorithm AS 245 by Macleod.------ Gives an accuracy of 10-12 significant decimal digits, except--- for small regions around /x/ = 1 and /x/ = 2, where the function--- goes to zero. For greater accuracy, use 'logGammaL'.------ Returns ∞ if the input is outside of the range (0 < /x/ ≤ 1e305).-logGamma :: Double -> Double-logGamma x- | x <= 0 = m_pos_inf- -- Handle positive infinity. logGamma overflows before 1e308 so- -- it's safe- | x > 1e308 = m_pos_inf- -- Normal cases- | x < 1.5 = a + c *- ((((r1_4 * b + r1_3) * b + r1_2) * b + r1_1) * b + r1_0) /- ((((b + r1_8) * b + r1_7) * b + r1_6) * b + r1_5)- | x < 4 = (x - 2) *- ((((r2_4 * x + r2_3) * x + r2_2) * x + r2_1) * x + r2_0) /- ((((x + r2_8) * x + r2_7) * x + r2_6) * x + r2_5)- | x < 12 = ((((r3_4 * x + r3_3) * x + r3_2) * x + r3_1) * x + r3_0) /- ((((x + r3_8) * x + r3_7) * x + r3_6) * x + r3_5)- | x > 3e6 = k- | otherwise = k + x1 *- ((r4_2 * x2 + r4_1) * x2 + r4_0) /- ((x2 + r4_4) * x2 + r4_3)- where- (a , b , c)- | x < 0.5 = (-y , x + 1 , x)- | otherwise = (0 , x , x - 1)-- y = log x- k = x * (y-1) - 0.5 * y + alr2pi- alr2pi = 0.918938533204673-- x1 = 1 / x- x2 = x1 * x1-- r1_0 = -2.66685511495; r1_1 = -24.4387534237; r1_2 = -21.9698958928- r1_3 = 11.1667541262; r1_4 = 3.13060547623; r1_5 = 0.607771387771- r1_6 = 11.9400905721; r1_7 = 31.4690115749; r1_8 = 15.2346874070-- r2_0 = -78.3359299449; r2_1 = -142.046296688; r2_2 = 137.519416416- r2_3 = 78.6994924154; r2_4 = 4.16438922228; r2_5 = 47.0668766060- r2_6 = 313.399215894; r2_7 = 263.505074721; r2_8 = 43.3400022514-- r3_0 = -2.12159572323e5; r3_1 = 2.30661510616e5; r3_2 = 2.74647644705e4- r3_3 = -4.02621119975e4; r3_4 = -2.29660729780e3; r3_5 = -1.16328495004e5- r3_6 = -1.46025937511e5; r3_7 = -2.42357409629e4; r3_8 = -5.70691009324e2-- r4_0 = 0.279195317918525; r4_1 = 0.4917317610505968;- r4_2 = 0.0692910599291889; r4_3 = 3.350343815022304- r4_4 = 6.012459259764103----data L = L {-# UNPACK #-} !Double {-# UNPACK #-} !Double---- | Compute the logarithm of the gamma function, Γ(/x/). Uses a--- Lanczos approximation.------ This function is slower than 'logGamma', but gives 14 or more--- significant decimal digits of accuracy, except around /x/ = 1 and--- /x/ = 2, where the function goes to zero.------ Returns ∞ if the input is outside of the range (0 < /x/--- ≤ 1e305).-logGammaL :: Double -> Double-logGammaL x- | x <= 0 = m_pos_inf- -- Lanroz approximation loses precision for small arguments- | x <= 1e-3 = logGamma x- | otherwise = fini . U.foldl' go (L 0 (x+7)) $ a- where fini (L l _) = log (l+a0) + log m_sqrt_2_pi - x65 + (x-0.5) * log x65- go (L l t) k = L (l + k / t) (t-1)- x65 = x + 6.5- a0 = 0.9999999999995183- a = U.fromList [ 0.1659470187408462e-06- , 0.9934937113930748e-05- , -0.1385710331296526- , 12.50734324009056- , -176.6150291498386- , 771.3234287757674- , -1259.139216722289- , 676.5203681218835- ]------ | Compute the log gamma correction factor for @x@ ≥ 10. This--- correction factor is suitable for an alternate (but less--- numerically accurate) definition of 'logGamma':------ >lgg x = 0.5 * log(2*pi) + (x-0.5) * log x - x + logGammaCorrection x-logGammaCorrection :: Double -> Double-logGammaCorrection x- | x < 10 = m_NaN- | x < big = chebyshevBroucke (t * t * 2 - 1) coeffs / x- | otherwise = 1 / (x * 12)- where- big = 94906265.62425156- t = 10 / x- coeffs = U.fromList [- 0.1666389480451863247205729650822e+0,- -0.1384948176067563840732986059135e-4,- 0.9810825646924729426157171547487e-8,- -0.1809129475572494194263306266719e-10,- 0.6221098041892605227126015543416e-13,- -0.3399615005417721944303330599666e-15,- 0.2683181998482698748957538846666e-17- ]------ | Compute the normalized lower incomplete gamma function--- γ(/s/,/x/). Normalization means that--- γ(/s/,∞)=1. Uses Algorithm AS 239 by Shea.-incompleteGamma :: Double -- ^ /s/ ∈ (0,∞)- -> Double -- ^ /x/ ∈ (0,∞)- -> Double-incompleteGamma p x- | isNaN p || isNaN x = m_NaN- | x < 0 || p <= 0 = m_pos_inf- | x == 0 = 0- -- For very large `p' normal approximation gives <1e-10 error- | p >= 2e5 = norm (3 * sqrt p * ((x/p) ** (1/3) + 1/(9*p) - 1))- | p >= 500 = approx- -- Dubious approximation- | x >= 1e8 = 1- | x <= 1 || x < p = let a = p * log x - x - logGamma (p + 1)- g = a + log (pearson p 1 1)- in if g > limit then exp g else 0- | otherwise = let g = p * log x - x - logGamma p + log cf- in if g > limit then 1 - exp g else 1- where- -- CDF for standard normal distributions- norm a = 0.5 * erfc (- a / m_sqrt_2)- -- For large values of `p' we use 18-point Gauss-Legendre- -- integration.- approx- | ans > 0 = 1 - ans- | otherwise = -ans- where- -- Set upper limit for integration- xu | x > p1 = (p1 + 11.5*sqrtP1) `max` (x + 6*sqrtP1)- | otherwise = max 0 $ (p1 - 7.5*sqrtP1) `min` (x - 5*sqrtP1)- s = U.sum $ U.zipWith go coefY coefW- go y w = let t = x + (xu - x)*y- in w * exp( -(t-p1) + p1*(log t - lnP1) )- ans = s * (xu - x) * exp( p1 * (lnP1 - 1) - logGamma p)- --- p1 = p - 1- lnP1 = log p1- sqrtP1 = sqrt p1- --- pearson !a !c !g- | c' <= tolerance = g'- | otherwise = pearson a' c' g'- where a' = a + 1- c' = c * x / a'- g' = g + c'- cf = let a = 1 - p- b = a + x + 1- p3 = x + 1- p4 = x * b- in contFrac a b 0 1 x p3 p4 (p3/p4)- contFrac !a !b !c !p1 !p2 !p3 !p4 !g- | abs (g - rn) <= min tolerance (tolerance * rn) = g- | otherwise = contFrac a' b' c' (f p3) (f p4) (f p5) (f p6) rn- where a' = a + 1- b' = b + 2- c' = c + 1- an = a' * c'- p5 = b' * p3 - an * p1- p6 = b' * p4 - an * p2- rn = p5 / p6- f n | abs p5 > overflow = n / overflow- | otherwise = n- limit = -88- tolerance = 1e-14- overflow = 1e37------ Adapted from Numerical Recipes §6.2.1---- | Inverse incomplete gamma function. It's approximately inverse of--- 'incompleteGamma' for the same /s/. So following equality--- approximately holds:------ > invIncompleteGamma s . incompleteGamma s = id-invIncompleteGamma :: Double -- ^ /s/ ∈ (0,∞)- -> Double -- ^ /p/ ∈ [0,1]- -> Double-invIncompleteGamma a p- | a <= 0 =- modErr $ printf "invIncompleteGamma: a must be positive. a=%g p=%g" a p- | p < 0 || p > 1 =- modErr $ printf "invIncompleteGamma: p must be in [0,1] range. a=%g p=%g" a p- | p == 0 = 0- | p == 1 = 1 / 0- | otherwise = loop 0 guess- where- -- Solve equation γ(a,x) = p using Halley method- loop :: Int -> Double -> Double- loop i x- | i >= 12 = x'- -- For small s derivative becomes approximately 1/x*exp(-x) and- -- skyrockets for small x. If it happens correct answer is 0.- | isInfinite f' = 0- | abs dx < eps * x' = x'- | otherwise = loop (i + 1) x'- where- -- Value of γ(a,x) - p- f = incompleteGamma a x - p- -- dγ(a,x)/dx- f' | a > 1 = afac * exp( -(x - a1) + a1 * (log x - lna1))- | otherwise = exp( -x + a1 * log x - gln)- u = f / f'- -- Halley correction to Newton-Rapson step- corr = u * (a1 / x - 1)- dx = u / (1 - 0.5 * min 1.0 corr)- -- New approximation to x- x' | x < dx = 0.5 * x -- Do not go below 0- | otherwise = x - dx- -- Calculate inital guess for root- guess- --- | a > 1 =- let t = sqrt $ -2 * log(if p < 0.5 then p else 1 - p)- x1 = (2.30753 + t * 0.27061) / (1 + t * (0.99229 + t * 0.04481)) - t- x2 = if p < 0.5 then -x1 else x1- in max 1e-3 (a * (1 - 1/(9*a) - x2 / (3 * sqrt a)) ** 3)- -- For a <= 1 use following approximations:- -- γ(a,1) ≈ 0.253a + 0.12a²- --- -- γ(a,x) ≈ γ(a,1)·x^a x < 1- -- γ(a,x) ≈ γ(a,1) + (1 - γ(a,1))(1 - exp(1 - x)) x >= 1- | otherwise =- let t = 1 - a * (0.253 + a*0.12)- in if p < t- then (p / t) ** (1 / a)- else 1 - log( 1 - (p-t) / (1-t))- -- Constants- a1 = a - 1- lna1 = log a1- afac = exp( a1 * (lna1 - 1) - gln )- gln = logGamma a- eps = 1e-8----------------------------------------------------------------------- Beta function--------------------------------------------------------------------- | Compute the natural logarithm of the beta function.-logBeta :: Double -> Double -> Double-logBeta a b- | p < 0 = m_NaN- | p == 0 = m_pos_inf- | p >= 10 = log q * (-0.5) + m_ln_sqrt_2_pi + logGammaCorrection p + c +- (p - 0.5) * log ppq + q * log1p(-ppq)- | q >= 10 = logGamma p + c + p - p * log pq + (q - 0.5) * log1p(-ppq)- | otherwise = logGamma p + logGamma q - logGamma pq- where- p = min a b- q = max a b- ppq = p / pq- pq = p + q- c = logGammaCorrection q - logGammaCorrection pq---- | Regularized incomplete beta function. Uses algorithm AS63 by--- Majumder and Bhattachrjee and quadrature approximation for large--- /p/ and /q/.-incompleteBeta :: Double -- ^ /p/ > 0- -> Double -- ^ /q/ > 0- -> Double -- ^ /x/, must lie in [0,1] range- -> Double-incompleteBeta p q = incompleteBeta_ (logBeta p q) p q---- | Regularized incomplete beta function. Same as 'incompleteBeta'--- but also takes logarithm of beta function as parameter.-incompleteBeta_ :: Double -- ^ logarithm of beta function for given /p/ and /q/- -> Double -- ^ /p/ > 0- -> Double -- ^ /q/ > 0- -> Double -- ^ /x/, must lie in [0,1] range- -> Double-incompleteBeta_ beta p q x- | p <= 0 || q <= 0 =- modErr $ printf "incompleteBeta_: p <= 0 || q <= 0. p=%g q=%g x=%g" p q x- | x < 0 || x > 1 || isNaN x =- modErr $ printf "incompletBeta_: x out of [0,1] range. p=%g q=%g x=%g" p q x- | x == 0 || x == 1 = x- | p >= (p+q) * x = incompleteBetaWorker beta p q x- | otherwise = 1 - incompleteBetaWorker beta q p (1 - x)----- Approximation of incomplete beta by quandrature.------ Note that x =< p/(p+q)-incompleteBetaApprox :: Double -> Double -> Double -> Double -> Double-incompleteBetaApprox beta p q x- | ans > 0 = 1 - ans- | otherwise = -ans- where- -- Constants- p1 = p - 1- q1 = q - 1- mu = p / (p + q)- lnmu = log mu- lnmuc = log (1 - mu)- -- Upper limit for integration- xu = max 0 $ min (mu - 10*t) (x - 5*t)- where- t = sqrt $ p*q / ( (p+q) * (p+q) * (p + q + 1) )- -- Calculate incomplete beta by quadrature- go y w = let t = x + (xu - x) * y- in w * exp( p1 * (log t - lnmu) + q1 * (log(1-t) - lnmuc) )- s = U.sum $ U.zipWith go coefY coefW- ans = s * (xu - x) * exp( p1 * lnmu + q1 * lnmuc - beta )----- Worker for incomplete beta function. It is separate function to--- avoid confusion with parameter during parameter swapping-incompleteBetaWorker :: Double -> Double -> Double -> Double -> Double-incompleteBetaWorker beta p q x- -- For very large p and q this method becomes very slow so another- -- method is used.- | p > 3000 && q > 3000 = incompleteBetaApprox beta p q x- | otherwise = loop (p+q) (truncate $ q + cx * (p+q)) 1 1 1- where- -- Constants- eps = 1e-15- cx = 1 - x- -- Loop- loop !psq (ns :: Int) ai term betain- | done = betain' * exp( p * log x + (q - 1) * log cx - beta) / p- | otherwise = loop psq' (ns - 1) (ai + 1) term' betain'- where- -- New values- term' = term * fact / (p + ai)- betain' = betain + term'- fact | ns > 0 = (q - ai) * x/cx- | ns == 0 = (q - ai) * x- | otherwise = psq * x- -- Iterations are complete- done = db <= eps && db <= eps*betain' where db = abs term'- psq' = if ns < 0 then psq + 1 else psq------ | Compute inverse of regularized incomplete beta function. Uses--- initial approximation from AS109, AS64 and Halley method to solve--- equation.-invIncompleteBeta :: Double -- ^ /p/ > 0- -> Double -- ^ /q/ > 0- -> Double -- ^ /a/ ∈ [0,1]- -> Double-invIncompleteBeta p q a- | p <= 0 || q <= 0 =- modErr $ printf "invIncompleteBeta p <= 0 || q <= 0. p=%g q=%g a=%g" p q a- | a < 0 || a > 1 =- modErr $ printf "invIncompleteBeta x must be in [0,1]. p=%g q=%g a=%g" p q a- | a == 0 || a == 1 = a- | a > 0.5 = 1 - invIncompleteBetaWorker (logBeta p q) q p (1 - a)- | otherwise = invIncompleteBetaWorker (logBeta p q) p q a---invIncompleteBetaWorker :: Double -> Double -> Double -> Double -> Double--- NOTE: p <= 0.5.-invIncompleteBetaWorker beta a b p = loop (0::Int) guess- where- a1 = a - 1- b1 = b - 1- -- Solve equation using Halley method- loop !i !x- -- We cannot continue at this point so we simply return `x'- | x == 0 || x == 1 = x- -- When derivative becomes infinite we cannot continue- -- iterations. It can only happen in vicinity of 0 or 1. It's- -- hardly possible to get good answer in such circumstances but- -- `x' is already reasonable.- | isInfinite f' = x- -- Iterations limit reached. Most of the time solution will- -- converge to answer because of discreteness of Double. But- -- solution have good precision already.- | i >= 10 = x- -- Solution converges- | abs dx <= 16 * m_epsilon * x = x'- | otherwise = loop (i+1) x'- where- -- Calculate Halley step.- f = incompleteBeta_ beta a b x - p- f' = exp $ a1 * log x + b1 * log (1 - x) - beta- u = f / f'- dx = u / (1 - 0.5 * min 1 (u * (a1 / x - b1 / (1 - x))))- -- Next approximation. If Halley step leads us out of [0,1]- -- range we revert to bisection.- x' | z < 0 = x / 2- | z > 1 = (x + 1) / 2- | otherwise = z- where z = x - dx- -- Calculate initial guess. Approximations from AS64, AS109 and- -- Numerical recipes are used.- --- -- Equations are referred to by name of paper and number e.g. [AS64 2]- -- In AS64 papers equations are not numbered so they are refered- -- to by number of appearance starting from definition of- -- incomplete beta.- guess- -- In this region we use approximation from AS109 (Carter- -- approximation). It's reasonably good (2 iterations on- -- average)- | a > 1 && b > 1 =- let r = (y*y - 3) / 6- s = 1 / (2*a - 1)- t = 1 / (2*b - 1)- h = 2 / (s + t)- w = y * sqrt(h + r) / h - (t - s) * (r + 5/6 - 2 / (3 * h))- in a / (a + b * exp(2 * w))- -- Otherwise we revert to approximation from AS64 derived from- -- [AS64 2] when it's applicable.- --- -- It slightly reduces average number of iterations when `a' and- -- `b' have different magnitudes.- | chi2 > 0 && ratio > 1 = 1 - 2 / (ratio + 1)- -- If all else fails we use approximation from "Numerical- -- Recipes". It's very similar to approximations [AS64 4,5] but- -- it never goes out of [0,1] interval.- | otherwise = case () of- _| p < t / w -> (a * p * w) ** (1/a)- | otherwise -> 1 - (b * (1 - p) * w) ** (1/b)- where- lna = log $ a / (a+b)- lnb = log $ b / (a+b)- t = exp( a * lna ) / a- u = exp( b * lnb ) / b- w = t + u- where- -- Formula [2]- ratio = (4*a + 2*b - 2) / chi2- -- Quantile of chi-squared distribution. Formula [3].- chi2 = 2 * b * (1 - t + y * sqrt t) ** 3- where- t = 1 / (9 * b)- -- `y' is Hasting's approximation of p'th quantile of standard- -- normal distribution.- y = r - ( 2.30753 + 0.27061 * r )- / ( 1.0 + ( 0.99229 + 0.04481 * r ) * r )- where- r = sqrt $ - 2 * log p----------------------------------------------------------------------- Sinc function--------------------------------------------------------------------- | Compute sinc function @sin(x)\/x@-sinc :: Double -> Double-sinc x- | ax < eps_0 = 1- | ax < eps_2 = 1 - x2/6- | ax < eps_4 = 1 - x2/6 + x2*x2/120- | otherwise = sin x / x- where- ax = abs x- x2 = x*x- -- For explanation of choice see `doc/sinc.hs'- eps_0 = 1.8250120749944284e-8 -- sqrt (6ε/4)- eps_2 = 1.4284346431400855e-4 -- (30ε)**(1/4) / 2- eps_4 = 4.043633626430947e-3 -- (1206ε)**(1/6) / 2---------------------------------------------------------------------- Logarithm--------------------------------------------------------------------- | Compute the natural logarithm of 1 + @x@. This is accurate even--- for values of @x@ near zero, where use of @log(1+x)@ would lose--- precision.-log1p :: Double -> Double-log1p x- | x == 0 = 0- | x == -1 = m_neg_inf- | x < -1 = m_NaN- | x' < m_epsilon * 0.5 = x- | (x >= 0 && x < 1e-8) || (x >= -1e-9 && x < 0)- = x * (1 - x * 0.5)- | x' < 0.375 = x * (1 - x * chebyshevBroucke (x / 0.375) coeffs)- | otherwise = log (1 + x)- where- x' = abs x- coeffs = U.fromList [- 0.10378693562743769800686267719098e+1,- -0.13364301504908918098766041553133e+0,- 0.19408249135520563357926199374750e-1,- -0.30107551127535777690376537776592e-2,- 0.48694614797154850090456366509137e-3,- -0.81054881893175356066809943008622e-4,- 0.13778847799559524782938251496059e-4,- -0.23802210894358970251369992914935e-5,- 0.41640416213865183476391859901989e-6,- -0.73595828378075994984266837031998e-7,- 0.13117611876241674949152294345011e-7,- -0.23546709317742425136696092330175e-8,- 0.42522773276034997775638052962567e-9,- -0.77190894134840796826108107493300e-10,- 0.14075746481359069909215356472191e-10,- -0.25769072058024680627537078627584e-11,- 0.47342406666294421849154395005938e-12,- -0.87249012674742641745301263292675e-13,- 0.16124614902740551465739833119115e-13,- -0.29875652015665773006710792416815e-14,- 0.55480701209082887983041321697279e-15,- -0.10324619158271569595141333961932e-15- ]----- | /O(log n)/ Compute the logarithm in base 2 of the given value.-log2 :: Int -> Int-log2 v0- | v0 <= 0 = modErr $ "log2: nonpositive input, got " ++ show v0- | otherwise = go 5 0 v0- where- go !i !r !v | i == -1 = r- | v .&. b i /= 0 = let si = U.unsafeIndex sv i- in go (i-1) (r .|. si) (v `shiftR` si)- | otherwise = go (i-1) r v- b = U.unsafeIndex bv- !bv = U.fromList [0x2, 0xc, 0xf0, 0xff00, 0xffff0000, 0xffffffff00000000]- !sv = U.fromList [1,2,4,8,16,32]---------------------------------------------------------------------- Factorial--------------------------------------------------------------------- | Compute the factorial function /n/!. Returns +∞ if the--- input is above 170 (above which the result cannot be represented by--- a 64-bit 'Double').-factorial :: Int -> Double-factorial n- | n < 0 = error "Numeric.SpecFunctions.factorial: negative input"- | n <= 1 = 1- | n <= 170 = U.product $ U.map fromIntegral $ U.enumFromTo 2 n- | otherwise = m_pos_inf---- | Compute the natural logarithm of the factorial function. Gives--- 16 decimal digits of precision.-logFactorial :: Integral a => a -> Double-logFactorial n- | n < 0 = error "Numeric.SpecFunctions.logFactorial: negative input"- | n <= 14 = log $ factorial $ fromIntegral n- -- N.B. Γ(n+1) = n!- --- -- We use here asymptotic series for gamma function. See- -- http://mathworld.wolfram.com/StirlingsSeries.html- | otherwise = (x - 0.5) * log x - x- + m_ln_sqrt_2_pi- + evaluateOddPolynomialL (1/x) [1/12, -1/360, 1/1260, -1/1680]- where x = fromIntegral n + 1-{-# SPECIALIZE logFactorial :: Int -> Double #-}---- | Calculate the error term of the Stirling approximation. This is--- only defined for non-negative values.------ > stirlingError @n@ = @log(n!) - log(sqrt(2*pi*n)*(n/e)^n)-stirlingError :: Double -> Double-stirlingError n- | n <= 15.0 = case properFraction (n+n) of- (i,0) -> sfe `U.unsafeIndex` i- _ -> logGamma (n+1.0) - (n+0.5) * log n + n -- m_ln_sqrt_2_pi- | n > 500 = evaluateOddPolynomialL (1/n) [s0,-s1]- | n > 80 = evaluateOddPolynomialL (1/n) [s0,-s1,s2]- | n > 35 = evaluateOddPolynomialL (1/n) [s0,-s1,s2,-s3]- | otherwise = evaluateOddPolynomialL (1/n) [s0,-s1,s2,-s3,s4]- where- s0 = 0.083333333333333333333 -- 1/12- s1 = 0.00277777777777777777778 -- 1/360- s2 = 0.00079365079365079365079365 -- 1/1260- s3 = 0.000595238095238095238095238 -- 1/1680- s4 = 0.0008417508417508417508417508 -- 1/1188- sfe = U.fromList [ 0.0,- 0.1534264097200273452913848, 0.0810614667953272582196702,- 0.0548141210519176538961390, 0.0413406959554092940938221,- 0.03316287351993628748511048, 0.02767792568499833914878929,- 0.02374616365629749597132920, 0.02079067210376509311152277,- 0.01848845053267318523077934, 0.01664469118982119216319487,- 0.01513497322191737887351255, 0.01387612882307074799874573,- 0.01281046524292022692424986, 0.01189670994589177009505572,- 0.01110455975820691732662991, 0.010411265261972096497478567,- 0.009799416126158803298389475, 0.009255462182712732917728637,- 0.008768700134139385462952823, 0.008330563433362871256469318,- 0.007934114564314020547248100, 0.007573675487951840794972024,- 0.007244554301320383179543912, 0.006942840107209529865664152,- 0.006665247032707682442354394, 0.006408994188004207068439631,- 0.006171712263039457647532867, 0.005951370112758847735624416,- 0.005746216513010115682023589, 0.005554733551962801371038690 ]---------------------------------------------------------------------- Combinatorics--------------------------------------------------------------------- |--- Quickly compute the natural logarithm of /n/ @`choose`@ /k/, with--- no checking.------ Less numerically stable:------ > exp $ lg (n+1) - lg (k+1) - lg (n-k+1)--- > where lg = logGamma . fromIntegral-logChooseFast :: Double -> Double -> Double-logChooseFast n k = -log (n + 1) - logBeta (n - k + 1) (k + 1)---- | Calculate binomial coefficient using exact formula-chooseExact :: Int -> Int -> Double-n `chooseExact` k- = U.foldl' go 1 $ U.enumFromTo 1 k- where- go a i = a * (nk + j) / j- where j = fromIntegral i :: Double- nk = fromIntegral (n - k)---- | Compute logarithm of the binomial coefficient.-logChoose :: Int -> Int -> Double-n `logChoose` k- | k > n = (-1) / 0- -- For very large N exact algorithm overflows double so we- -- switch to beta-function based one- | k' < 50 && (n < 20000000) = log $ chooseExact n k'- | otherwise = logChooseFast (fromIntegral n) (fromIntegral k)- where- k' = min k (n-k)---- | Compute the binomial coefficient /n/ @\``choose`\`@ /k/. For--- values of /k/ > 50, this uses an approximation for performance--- reasons. The approximation is accurate to 12 decimal places in the--- worst case------ Example:------ > 7 `choose` 3 == 35-choose :: Int -> Int -> Double-n `choose` k- | k > n = 0- | k' < 50 = chooseExact n k'- | approx < max64 = fromIntegral . round64 $ approx- | otherwise = approx- where- k' = min k (n-k)- approx = exp $ logChooseFast (fromIntegral n) (fromIntegral k')- max64 = fromIntegral (maxBound :: Int64)- round64 x = round x :: Int64---- | Compute ψ0(/x/), the first logarithmic derivative of the gamma--- function. Uses Algorithm AS 103 by Bernardo, based on Minka's C--- implementation.-digamma :: Double -> Double-digamma x- | isNaN x || isInfinite x = m_NaN- -- FIXME:- -- This is ugly. We are testing here that number is in fact- -- integer. It's somewhat tricky question to answer. When ε for- -- given number becomes 1 or greater every number is represents- -- an integer. We also must make sure that excess precision- -- won't bite us.- | x <= 0 && fromIntegral (truncate x :: Int64) == x = m_neg_inf- -- Jeffery's reflection formula- | x < 0 = digamma (1 - x) + pi / tan (negate pi * x)- | x <= 1e-6 = - γ - 1/x + trigamma1 * x- | x' < c = r- -- De Moivre's expansion- | otherwise = let s = 1/x'- in evaluateEvenPolynomialL s- [ r + log x' - 0.5 * s- , - 1/12- , 1/120- , - 1/252- , 1/240- , - 1/132- , 391/32760- ]- where- γ = m_eulerMascheroni- c = 12- -- Reduce to digamma (x + n) where (x + n) >= c- (r, x') = reduce 0 x- where- reduce !s y- | y < c = reduce (s - 1 / y) (y + 1)- | otherwise = (s, y)----------------------------------------------------------------------- Constants--------------------------------------------------------------------- Coefficients for 18-point Gauss-Legendre integration. They are--- used in implementation of incomplete gamma and beta functions.-coefW,coefY :: U.Vector Double-coefW = U.fromList [ 0.0055657196642445571, 0.012915947284065419, 0.020181515297735382- , 0.027298621498568734, 0.034213810770299537, 0.040875750923643261- , 0.047235083490265582, 0.053244713977759692, 0.058860144245324798- , 0.064039797355015485, 0.068745323835736408, 0.072941885005653087- , 0.076598410645870640, 0.079687828912071670, 0.082187266704339706- , 0.084078218979661945, 0.085346685739338721, 0.085983275670394821- ]-coefY = U.fromList [ 0.0021695375159141994, 0.011413521097787704, 0.027972308950302116- , 0.051727015600492421, 0.082502225484340941, 0.12007019910960293- , 0.16415283300752470, 0.21442376986779355, 0.27051082840644336- , 0.33199876341447887, 0.39843234186401943, 0.46931971407375483- , 0.54413605556657973, 0.62232745288031077, 0.70331500465597174- , 0.78649910768313447, 0.87126389619061517, 0.95698180152629142- ]-{-# NOINLINE coefW #-}-{-# NOINLINE coefY #-}--trigamma1 :: Double-trigamma1 = 1.6449340668482264365 -- pi**2 / 6--modErr :: String -> a-modErr msg = error $ "Numeric.SpecFunctions." ++ msg+{-# OPTIONS_HADDOCK hide #-}+-- |+-- Module : Numeric.SpecFunctions.Internal+-- Copyright : (c) 2009, 2011, 2012 Bryan O'Sullivan+-- License : BSD3+--+-- Maintainer : bos@serpentine.com+-- Stability : experimental+-- Portability : portable+--+-- Internal module with implementation of special functions.+module Numeric.SpecFunctions.Internal+ ( module Numeric.SpecFunctions.Internal+ , Compat.log1p+ , Compat.expm1+ ) where++import Data.Bits ((.&.), (.|.), shiftR)+import Data.Int (Int64)+import Data.Default.Class+import qualified Data.Vector.Unboxed as U+import Data.Vector.Unboxed ((!))+import Text.Printf++import Numeric.Polynomial.Chebyshev (chebyshevBroucke)+import Numeric.Polynomial (evaluatePolynomial, evaluatePolynomialL, evaluateEvenPolynomialL+ ,evaluateOddPolynomialL)+import Numeric.RootFinding (Root(..), newtonRaphson, NewtonParam(..), Tolerance(..))+import Numeric.Series+import Numeric.MathFunctions.Constants+import Numeric.SpecFunctions.Compat (log1p)+import qualified Numeric.SpecFunctions.Compat as Compat++----------------------------------------------------------------+-- Error function+----------------------------------------------------------------++-- | Error function.+--+-- \[+-- \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{0}^{x} \exp(-t^2) dt+-- \]+--+-- Function limits are:+--+-- \[+-- \begin{aligned}+-- &\operatorname{erf}(-\infty) &=& -1 \\+-- &\operatorname{erf}(0) &=& \phantom{-}\,0 \\+-- &\operatorname{erf}(+\infty) &=& \phantom{-}\,1 \\+-- \end{aligned}+-- \]+erf :: Double -> Double+erf = Compat.erf+{-# INLINE erf #-}++-- | Complementary error function.+--+-- \[+-- \operatorname{erfc}(x) = 1 - \operatorname{erf}(x)+-- \]+--+-- Function limits are:+--+-- \[+-- \begin{aligned}+-- &\operatorname{erf}(-\infty) &=&\, 2 \\+-- &\operatorname{erf}(0) &=&\, 1 \\+-- &\operatorname{erf}(+\infty) &=&\, 0 \\+-- \end{aligned}+-- \]+erfc :: Double -> Double+erfc = Compat.erfc+{-# INLINE erfc #-}++-- | Inverse of 'erf'.+invErf :: Double -- ^ /p/ ∈ [-1,1]+ -> Double+invErf p+ | p == 1 = m_pos_inf+ | p == -1 = m_neg_inf+ | p < 1 && p > -1 = if p > 0 then r else -r+ | otherwise = error "invErf: p must in [-1,1] range"+ where+ -- We solve equation same as in invErfc. We're able to ruse same+ -- Halley step by solving equation:+ -- > pp - erf x = 0+ -- instead of+ -- > erf x - pp = 0+ pp = abs p+ r = step $ step $ guessInvErfc $ 1 - pp+ step x = invErfcHalleyStep (pp - erf x) x++-- | Inverse of 'erfc'.+invErfc :: Double -- ^ /p/ ∈ [0,2]+ -> Double+invErfc p+ | p == 2 = m_neg_inf+ | p == 0 = m_pos_inf+ | p >0 && p < 2 = if p <= 1 then r else -r+ | otherwise = modErr $ "invErfc: p must be in [0,2] got " ++ show p+ where+ pp | p <= 1 = p+ | otherwise = 2 - p+ -- We perform 2 Halley steps in order to get to solution+ r = step $ step $ guessInvErfc pp+ step x = invErfcHalleyStep (erfc x - pp) x++-- Initial guess for invErfc & invErf+guessInvErfc :: Double -> Double+guessInvErfc p+ = -0.70711 * ((2.30753 + t * 0.27061) / (1 + t * (0.99229 + t * 0.04481)) - t)+ where+ t = sqrt $ -2 * log( 0.5 * p)++-- Halley step for solving invErfc+invErfcHalleyStep :: Double -> Double -> Double+invErfcHalleyStep err x+ = x + err / (1.12837916709551257 * exp(-x * x) - x * err)++----------------------------------------------------------------+-- Gamma function+----------------------------------------------------------------++data L = L {-# UNPACK #-} !Double {-# UNPACK #-} !Double++-- | Compute the logarithm of the gamma function, Γ(/x/).+--+-- \[+-- \Gamma(x) = \int_0^{\infty}t^{x-1}e^{-t}\,dt = (x - 1)!+-- \]+--+-- This implementation uses Lanczos approximation. It gives 14 or more+-- significant decimal digits, except around /x/ = 1 and /x/ = 2,+-- where the function goes to zero.+--+-- Returns ∞ if the input is outside of the range (0 < /x/+-- ≤ 1e305).+logGamma :: Double -> Double+logGamma z+ | z <= 0 = m_pos_inf+ -- For very small values z we can just use Laurent expansion+ | z < m_sqrt_eps = log (1/z - m_eulerMascheroni)+ -- For z<1 we use recurrence. Γ(z+1) = z·Γ(z) Note that in order to+ -- avoid precision loss we have to compute parameter to+ -- approximations here:+ --+ -- > (z + 1) - 1 = z+ -- > (z + 1) - 2 = z - 1+ --+ -- Simple passing (z + 1) to piecewise approximations and computing+ -- difference leads to bad loss of precision near 1.+ -- This is reason lgamma1_15 & lgamma15_2 have three parameters+ | z < 0.5 = lgamma1_15 z (z - 1) - log z+ | z < 1 = lgamma15_2 z (z - 1) - log z+ -- Piecewise polynomial approximations+ | z <= 1.5 = lgamma1_15 (z - 1) (z - 2)+ | z < 2 = lgamma15_2 (z - 1) (z - 2)+ | z < 15 = lgammaSmall z+ -- Otherwise we switch to Lanczos approximation+ | otherwise = lanczosApprox z+++-- | Synonym for 'logGamma'. Retained for compatibility+logGammaL :: Double -> Double+logGammaL = logGamma+{-# DEPRECATED logGammaL "Use logGamma instead" #-}++++-- Polynomial expansion used in interval (1,1.5]+--+-- > logΓ(z) = (z-1)(z-2)(Y + R(z-1))+lgamma1_15 :: Double -> Double -> Double+lgamma1_15 zm1 zm2+ = r * y + r * ( evaluatePolynomial zm1 tableLogGamma_1_15P+ / evaluatePolynomial zm1 tableLogGamma_1_15Q+ )+ where+ r = zm1 * zm2+ y = 0.52815341949462890625++tableLogGamma_1_15P,tableLogGamma_1_15Q :: U.Vector Double+tableLogGamma_1_15P = U.fromList+ [ 0.490622454069039543534e-1+ , -0.969117530159521214579e-1+ , -0.414983358359495381969e0+ , -0.406567124211938417342e0+ , -0.158413586390692192217e0+ , -0.240149820648571559892e-1+ , -0.100346687696279557415e-2+ ]+{-# NOINLINE tableLogGamma_1_15P #-}+tableLogGamma_1_15Q = U.fromList+ [ 1+ , 0.302349829846463038743e1+ , 0.348739585360723852576e1+ , 0.191415588274426679201e1+ , 0.507137738614363510846e0+ , 0.577039722690451849648e-1+ , 0.195768102601107189171e-2+ ]+{-# NOINLINE tableLogGamma_1_15Q #-}++++-- Polynomial expansion used in interval (1.5,2)+--+-- > logΓ(z) = (2-z)(1-z)(Y + R(2-z))+lgamma15_2 :: Double -> Double -> Double+lgamma15_2 zm1 zm2+ = r * y + r * ( evaluatePolynomial (-zm2) tableLogGamma_15_2P+ / evaluatePolynomial (-zm2) tableLogGamma_15_2Q+ )+ where+ r = zm1 * zm2+ y = 0.452017307281494140625++tableLogGamma_15_2P,tableLogGamma_15_2Q :: U.Vector Double+tableLogGamma_15_2P = U.fromList+ [ -0.292329721830270012337e-1+ , 0.144216267757192309184e0+ , -0.142440390738631274135e0+ , 0.542809694055053558157e-1+ , -0.850535976868336437746e-2+ , 0.431171342679297331241e-3+ ]+{-# NOINLINE tableLogGamma_15_2P #-}+tableLogGamma_15_2Q = U.fromList+ [ 1+ , -0.150169356054485044494e1+ , 0.846973248876495016101e0+ , -0.220095151814995745555e0+ , 0.25582797155975869989e-1+ , -0.100666795539143372762e-2+ , -0.827193521891290553639e-6+ ]+{-# NOINLINE tableLogGamma_15_2Q #-}++++-- Polynomial expansion used in interval (2,3)+--+-- > logΓ(z) = (z - 2)(z + 1)(Y + R(z-2))+lgamma2_3 :: Double -> Double+lgamma2_3 z+ = r * y + r * ( evaluatePolynomial zm2 tableLogGamma_2_3P+ / evaluatePolynomial zm2 tableLogGamma_2_3Q+ )+ where+ r = zm2 * (z + 1)+ zm2 = z - 2+ y = 0.158963680267333984375e0+++tableLogGamma_2_3P,tableLogGamma_2_3Q :: U.Vector Double+tableLogGamma_2_3P = U.fromList+ [ -0.180355685678449379109e-1+ , 0.25126649619989678683e-1+ , 0.494103151567532234274e-1+ , 0.172491608709613993966e-1+ , -0.259453563205438108893e-3+ , -0.541009869215204396339e-3+ , -0.324588649825948492091e-4+ ]+{-# NOINLINE tableLogGamma_2_3P #-}+tableLogGamma_2_3Q = U.fromList+ [ 1+ , 0.196202987197795200688e1+ , 0.148019669424231326694e1+ , 0.541391432071720958364e0+ , 0.988504251128010129477e-1+ , 0.82130967464889339326e-2+ , 0.224936291922115757597e-3+ , -0.223352763208617092964e-6+ ]+{-# NOINLINE tableLogGamma_2_3Q #-}++++-- For small z we can just use Gamma function recurrence and reduce+-- problem to interval [2,3] and use polynomial approximation+-- there. Surprisingly it gives very good precision+lgammaSmall :: Double -> Double+lgammaSmall = go 0+ where+ go acc z | z < 3 = acc + lgamma2_3 z+ | otherwise = go (acc + log zm1) zm1+ where+ zm1 = z - 1+++-- Lanczos approximation for gamma function.+--+-- > Γ(z) = sqrt(2π)(z + g - 0.5)^(z - 0.5)·exp{-(z + g - 0.5)}·A_g(z)+--+-- Coefficients are taken from boost. Constants are absorbed into+-- polynomial's coefficients.+lanczosApprox :: Double -> Double+lanczosApprox z+ = (log (z + g - 0.5) - 1) * (z - 0.5)+ + log (evalRatio tableLanczos z)+ where+ g = 6.024680040776729583740234375++tableLanczos :: U.Vector (Double,Double)+{-# NOINLINE tableLanczos #-}+tableLanczos = U.fromList+ [ (56906521.91347156388090791033559122686859 , 0)+ , (103794043.1163445451906271053616070238554 , 39916800)+ , (86363131.28813859145546927288977868422342 , 120543840)+ , (43338889.32467613834773723740590533316085 , 150917976)+ , (14605578.08768506808414169982791359218571 , 105258076)+ , (3481712.15498064590882071018964774556468 , 45995730)+ , (601859.6171681098786670226533699352302507 , 13339535)+ , (75999.29304014542649875303443598909137092 , 2637558)+ , (6955.999602515376140356310115515198987526 , 357423)+ , (449.9445569063168119446858607650988409623 , 32670)+ , (19.51992788247617482847860966235652136208 , 1925)+ , (0.5098416655656676188125178644804694509993 , 66)+ , (0.006061842346248906525783753964555936883222 , 1)+ ]++-- Evaluate rational function. Polynomials in both numerator and+-- denominator must have same order. Function seems to be too specific+-- so it's not exposed+--+-- Special care taken in order to avoid overflow for large values of x+evalRatio :: U.Vector (Double,Double) -> Double -> Double+evalRatio coef x+ | x > 1 = fini $ U.foldl' stepL (L 0 0) coef+ | otherwise = fini $ U.foldr' stepR (L 0 0) coef+ where+ fini (L num den) = num / den+ stepR (a,b) (L num den) = L (num * x + a) (den * x + b)+ stepL (L num den) (a,b) = L (num * rx + a) (den * rx + b)+ rx = recip x++++-- |+-- Compute the log gamma correction factor for Stirling+-- approximation for @x@ ≥ 10. This correction factor is+-- suitable for an alternate (but less numerically accurate)+-- definition of 'logGamma':+--+-- \[+-- \log\Gamma(x) = \frac{1}{2}\log(2\pi) + (x-\frac{1}{2})\log x - x + \operatorname{logGammaCorrection}(x)+-- \]+logGammaCorrection :: Double -> Double+logGammaCorrection x+ | x < 10 = m_NaN+ | x < big = chebyshevBroucke (t * t * 2 - 1) coeffs / x+ | otherwise = 1 / (x * 12)+ where+ big = 94906265.62425156+ t = 10 / x+ coeffs = U.fromList [+ 0.1666389480451863247205729650822e+0,+ -0.1384948176067563840732986059135e-4,+ 0.9810825646924729426157171547487e-8,+ -0.1809129475572494194263306266719e-10,+ 0.6221098041892605227126015543416e-13,+ -0.3399615005417721944303330599666e-15,+ 0.2683181998482698748957538846666e-17+ ]++++-- | Compute the normalized lower incomplete gamma function+-- γ(/z/,/x/). Normalization means that γ(/z/,∞)=1+--+-- \[+-- \gamma(z,x) = \frac{1}{\Gamma(z)}\int_0^{x}t^{z-1}e^{-t}\,dt+-- \]+--+-- Uses Algorithm AS 239 by Shea.+incompleteGamma :: Double -- ^ /z/ ∈ (0,∞)+ -> Double -- ^ /x/ ∈ (0,∞)+ -> Double+-- Notation used:+-- + P(a,x) - regularized lower incomplete gamma+-- + Q(a,x) - regularized upper incomplete gamma+incompleteGamma a x+ | a <= 0 || x < 0 = error+ $ "incompleteGamma: Domain error z=" ++ show a ++ " x=" ++ show x+ | x == 0 = 0+ | x == m_pos_inf = 1+ -- For very small x we use following expansion for P:+ --+ -- See http://functions.wolfram.com/GammaBetaErf/GammaRegularized/06/01/05/01/01/+ | x < sqrt m_epsilon && a > 1+ = x**a / a / exp (logGamma a) * (1 - a*x / (a + 1))+ | x < 0.5 = case () of+ _| (-0.4)/log x < a -> taylorSeriesP+ | otherwise -> taylorSeriesComplQ+ | x < 1.1 = case () of+ _| 0.75*x < a -> taylorSeriesP+ | otherwise -> taylorSeriesComplQ+ | a > 20 && useTemme = uniformExpansion+ | x - (1 / (3 * x)) < a = taylorSeriesP+ | otherwise = contFraction+ where+ mu = (x - a) / a+ useTemme = (a > 200 && 20/a > mu*mu)+ || (abs mu < 0.4)+ -- Gautschi's algorithm.+ --+ -- Evaluate series for P(a,x). See [Temme1994] Eq. 5.5 and [NOTE:+ -- incompleteGamma.taylorP]+ factorP+ | a < 10 = x ** a+ / (exp x * exp (logGamma (a + 1)))+ | a < 1182.5 = (x * exp 1 / a) ** a+ / exp x+ / sqrt (2*pi*a)+ / exp (logGammaCorrection a)+ | otherwise = (x * exp 1 / a * exp (-x/a)) ** a+ / sqrt (2*pi*a)+ / exp (logGammaCorrection a)+ taylorSeriesP+ = sumPowerSeries x (scanSequence (/) 1 $ enumSequenceFrom (a+1))+ * factorP+ -- Series for 1-Q(a,x). See [Temme1994] Eq. 5.5+ taylorSeriesComplQ+ = sumPowerSeries (-x) (scanSequence (/) 1 (enumSequenceFrom 1) / enumSequenceFrom a)+ * x**a / exp(logGamma a)+ -- Legendre continued fractions+ contFraction = 1 - ( exp ( log x * a - x - logGamma a )+ / evalContFractionB frac+ )+ where+ frac = (\k -> (k*(a-k), x - a + 2*k + 1)) <$> enumSequenceFrom 0+ -- Evaluation based on uniform expansions. See [Temme1994] 5.2+ uniformExpansion =+ let -- Coefficients f_m in paper+ fm :: U.Vector Double+ fm = U.fromList [ 1.00000000000000000000e+00+ ,-3.33333333333333370341e-01+ , 8.33333333333333287074e-02+ ,-1.48148148148148153802e-02+ , 1.15740740740740734316e-03+ , 3.52733686067019369930e-04+ ,-1.78755144032921825352e-04+ , 3.91926317852243766954e-05+ ,-2.18544851067999240532e-06+ ,-1.85406221071515996597e-06+ , 8.29671134095308545622e-07+ ,-1.76659527368260808474e-07+ , 6.70785354340149841119e-09+ , 1.02618097842403069078e-08+ ,-4.38203601845335376897e-09+ , 9.14769958223679020897e-10+ ,-2.55141939949462514346e-11+ ,-5.83077213255042560744e-11+ , 2.43619480206674150369e-11+ ,-5.02766928011417632057e-12+ , 1.10043920319561347525e-13+ , 3.37176326240098513631e-13+ ]+ y = - log1pmx mu+ eta = sqrt (2 * y) * signum mu+ -- Evaluate S_α (Eq. 5.9)+ loop !_ !_ u 0 = u+ loop bm1 bm0 u i = let t = (fm ! i) + (fromIntegral i + 1)*bm1 / a+ u' = eta * u + t+ in loop bm0 t u' (i-1)+ s_a = let n = U.length fm+ in loop (fm ! (n-1)) (fm ! (n-2)) 0 (n-3)+ / exp (logGammaCorrection a)+ in 1/2 * erfc(-eta*sqrt(a/2)) - exp(-(a*y)) / sqrt (2*pi*a) * s_a++++-- Adapted from Numerical Recipes §6.2.1++-- | Inverse incomplete gamma function. It's approximately inverse of+-- 'incompleteGamma' for the same /z/. So following equality+-- approximately holds:+--+-- > invIncompleteGamma z . incompleteGamma z ≈ id+invIncompleteGamma :: Double -- ^ /z/ ∈ (0,∞)+ -> Double -- ^ /p/ ∈ [0,1]+ -> Double+invIncompleteGamma a p+ | a <= 0 =+ modErr $ printf "invIncompleteGamma: a must be positive. a=%g p=%g" a p+ | p < 0 || p > 1 =+ modErr $ printf "invIncompleteGamma: p must be in [0,1] range. a=%g p=%g" a p+ | p == 0 = 0+ | p == 1 = 1 / 0+ | otherwise = loop 0 guess+ where+ -- Solve equation γ(a,x) = p using Halley method+ loop :: Int -> Double -> Double+ loop i x+ | i >= 12 = x'+ -- For small s derivative becomes approximately 1/x*exp(-x) and+ -- skyrockets for small x. If it happens correct answer is 0.+ | isInfinite f' = 0+ | abs dx < eps * x' = x'+ | otherwise = loop (i + 1) x'+ where+ -- Value of γ(a,x) - p+ f = incompleteGamma a x - p+ -- dγ(a,x)/dx+ f' | a > 1 = afac * exp( -(x - a1) + a1 * (log x - lna1))+ | otherwise = exp( -x + a1 * log x - gln)+ u = f / f'+ -- Halley correction to Newton-Rapson step+ corr = u * (a1 / x - 1)+ dx = u / (1 - 0.5 * min 1.0 corr)+ -- New approximation to x+ x' | x < dx = 0.5 * x -- Do not go below 0+ | otherwise = x - dx+ -- Calculate initial guess for root+ guess+ --+ | a > 1 =+ let t = sqrt $ -2 * log(if p < 0.5 then p else 1 - p)+ x1 = (2.30753 + t * 0.27061) / (1 + t * (0.99229 + t * 0.04481)) - t+ x2 = if p < 0.5 then -x1 else x1+ in max 1e-3 (a * (1 - 1/(9*a) - x2 / (3 * sqrt a)) ** 3)+ -- For a <= 1 use following approximations:+ -- γ(a,1) ≈ 0.253a + 0.12a²+ --+ -- γ(a,x) ≈ γ(a,1)·x^a x < 1+ -- γ(a,x) ≈ γ(a,1) + (1 - γ(a,1))(1 - exp(1 - x)) x >= 1+ | otherwise =+ let t = 1 - a * (0.253 + a*0.12)+ in if p < t+ then (p / t) ** (1 / a)+ else 1 - log( 1 - (p-t) / (1-t))+ -- Constants+ a1 = a - 1+ lna1 = log a1+ afac = exp( a1 * (lna1 - 1) - gln )+ gln = logGamma a+ eps = 1e-8++++----------------------------------------------------------------+-- Beta function+----------------------------------------------------------------++-- | Compute the natural logarithm of the beta function.+--+-- \[+-- B(a,b) = \int_0^1 t^{a-1}(1-t)^{b-1}\,dt = \frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}+-- \]+logBeta+ :: Double -- ^ /a/ > 0+ -> Double -- ^ /b/ > 0+ -> Double+logBeta a b+ | p < 0 = m_NaN+ | p == 0 = m_pos_inf+ | p >= 10 = allStirling+ | q >= 10 = twoStirling+ -- This order of summands marginally improves precision+ | otherwise = logGamma p + (logGamma q - logGamma pq)+ where+ p = min a b+ q = max a b+ ppq = p / pq+ pq = p + q+ -- When both parameters are large than 10 we can use Stirling+ -- approximation with correction. It's more precise than sum of+ -- logarithms of gamma functions+ allStirling+ = log q * (-0.5)+ + m_ln_sqrt_2_pi+ + logGammaCorrection p+ + (logGammaCorrection q - logGammaCorrection pq)+ + (p - 0.5) * log ppq+ + q * log1p(-ppq)+ -- Otherwise only two of three gamma functions use Stirling+ -- approximation+ twoStirling+ = logGamma p+ + (logGammaCorrection q - logGammaCorrection pq)+ + p+ - p * log pq+ + (q - 0.5) * log1p(-ppq)+++-- | Regularized incomplete beta function.+--+-- \[+-- I(x;a,b) = \frac{1}{B(a,b)} \int_0^x t^{a-1}(1-t)^{b-1}\,dt+-- \]+--+-- Uses algorithm AS63 by Majumder and Bhattachrjee and quadrature+-- approximation for large /p/ and /q/.+incompleteBeta :: Double -- ^ /a/ > 0+ -> Double -- ^ /b/ > 0+ -> Double -- ^ /x/, must lie in [0,1] range+ -> Double+incompleteBeta p q = incompleteBeta_ (logBeta p q) p q++-- | Regularized incomplete beta function. Same as 'incompleteBeta'+-- but also takes logarithm of beta function as parameter.+incompleteBeta_ :: Double -- ^ logarithm of beta function for given /p/ and /q/+ -> Double -- ^ /a/ > 0+ -> Double -- ^ /b/ > 0+ -> Double -- ^ /x/, must lie in [0,1] range+ -> Double+incompleteBeta_ beta p q x+ | p <= 0 || q <= 0 =+ modErr $ printf "incompleteBeta_: p <= 0 || q <= 0. p=%g q=%g x=%g" p q x+ | x < 0 || x > 1 || isNaN x =+ modErr $ printf "incompleteBeta_: x out of [0,1] range. p=%g q=%g x=%g" p q x+ | x == 0 || x == 1 = x+ | p >= (p+q) * x = incompleteBetaWorker beta p q x+ | otherwise = 1 - incompleteBetaWorker beta q p (1 - x)+++-- Approximation of incomplete beta by quadrature.+--+-- Note that x =< p/(p+q)+incompleteBetaApprox :: Double -> Double -> Double -> Double -> Double+incompleteBetaApprox beta p q x+ | ans > 0 = 1 - ans+ | otherwise = -ans+ where+ -- Constants+ p1 = p - 1+ q1 = q - 1+ mu = p / (p + q)+ lnmu = log mu+ lnmuc = log1p (-mu)+ -- Upper limit for integration+ xu = max 0 $ min (mu - 10*t) (x - 5*t)+ where+ t = sqrt $ p*q / ( (p+q) * (p+q) * (p + q + 1) )+ -- Calculate incomplete beta by quadrature+ go y w = let t = x + (xu - x) * y+ in w * exp( p1 * (log t - lnmu) + q1 * (log(1-t) - lnmuc) )+ s = U.sum $ U.zipWith go coefY coefW+ ans = s * (xu - x) * exp( p1 * lnmu + q1 * lnmuc - beta )+++-- Worker for incomplete beta function. It is separate function to+-- avoid confusion with parameter during parameter swapping+incompleteBetaWorker :: Double -> Double -> Double -> Double -> Double+incompleteBetaWorker beta p q x+ -- For very large p and q this method becomes very slow so another+ -- method is used.+ | p > 3000 && q > 3000 = incompleteBetaApprox beta p q x+ | otherwise = loop (p+q) (truncate $ q + cx * (p+q)) 1 1 1+ where+ -- Constants+ eps = 1e-15+ cx = 1 - x+ -- Common multiplies for expansion. Accurate calculation is a bit+ -- tricky. Performing calculation in log-domain leads to slight+ -- loss of precision for small x, while using ** prone to+ -- underflows.+ --+ -- If either beta function of x**p·(1-x)**(q-1) underflows we+ -- switch to log domain. It could waste work but there's no easy+ -- switch criterion.+ factor+ | beta < m_min_log || prod < m_tiny = exp( p * log x + (q - 1) * log cx - beta)+ | otherwise = prod / exp beta+ where+ prod = x**p * cx**(q - 1)+ -- Soper's expansion of incomplete beta function+ loop !psq (ns :: Int) ai term betain+ | done = betain' * factor / p+ | otherwise = loop psq' (ns - 1) (ai + 1) term' betain'+ where+ -- New values+ term' = term * fact / (p + ai)+ betain' = betain + term'+ fact | ns > 0 = (q - ai) * x/cx+ | ns == 0 = (q - ai) * x+ | otherwise = psq * x+ -- Iterations are complete+ done = db <= eps && db <= eps*betain' where db = abs term'+ psq' = if ns < 0 then psq + 1 else psq++++-- | Compute inverse of regularized incomplete beta function. Uses+-- initial approximation from AS109, AS64 and Halley method to solve+-- equation.+invIncompleteBeta :: Double -- ^ /a/ > 0+ -> Double -- ^ /b/ > 0+ -> Double -- ^ /x/ ∈ [0,1]+ -> Double+invIncompleteBeta p q a+ | p <= 0 || q <= 0 =+ modErr $ printf "invIncompleteBeta p <= 0 || q <= 0. p=%g q=%g a=%g" p q a+ | a < 0 || a > 1 =+ modErr $ printf "invIncompleteBeta x must be in [0,1]. p=%g q=%g a=%g" p q a+ | a == 0 || a == 1 = a+ | otherwise = invIncompleteBetaWorker (logBeta p q) p q a+++invIncompleteBetaWorker :: Double -> Double -> Double -> Double -> Double+invIncompleteBetaWorker beta a b p = loop (0::Int) (invIncBetaGuess beta a b p)+ where+ a1 = a - 1+ b1 = b - 1+ -- Solve equation using Halley method+ loop !i !x+ -- We cannot continue at this point so we simply return `x'+ | x == 0 || x == 1 = x+ -- When derivative becomes infinite we cannot continue+ -- iterations. It can only happen in vicinity of 0 or 1. It's+ -- hardly possible to get good answer in such circumstances but+ -- `x' is already reasonable.+ | isInfinite f' = x+ -- Iterations limit reached. Most of the time solution will+ -- converge to answer because of discreteness of Double. But+ -- solution have good precision already.+ | i >= 10 = x+ -- Solution converges+ | abs dx <= 16 * m_epsilon * x = x'+ | otherwise = loop (i+1) x'+ where+ -- Calculate Halley step.+ f = incompleteBeta_ beta a b x - p+ f' = exp $ a1 * log x + b1 * log1p (-x) - beta+ u = f / f'+ -- We bound Halley correction to Newton-Raphson to (-1,1) range+ corr | d > 1 = 1+ | d < -1 = -1+ | isNaN d = 0+ | otherwise = d+ where+ d = u * (a1 / x - b1 / (1 - x))+ dx = u / (1 - 0.5 * corr)+ -- Next approximation. If Halley step leads us out of [0,1]+ -- range we revert to bisection.+ x' | z < 0 = x / 2+ | z > 1 = (x + 1) / 2+ | otherwise = z+ where z = x - dx+++-- Calculate initial guess for inverse incomplete beta function.+invIncBetaGuess :: Double -> Double -> Double -> Double -> Double+-- Calculate initial guess. for solving equation for inverse incomplete beta.+-- It's really hodgepodge of different approximations accumulated over years.+--+-- Equations are referred to by name of paper and number e.g. [AS64 2]+-- In AS64 papers equations are not numbered so they are referred to by+-- number of appearance starting from definition of incomplete beta.+invIncBetaGuess beta a b p+ -- If both a and b are less than 1 incomplete beta have inflection+ -- point.+ --+ -- > x = (1 - a) / (2 - a - b)+ --+ -- We approximate incomplete beta by neglecting one of factors under+ -- integral and then rescaling result of integration into [0,1]+ -- range.+ | a < 1 && b < 1 =+ let x_infl = (1 - a) / (2 - a - b)+ p_infl = incompleteBeta a b x_infl+ x | p < p_infl = let xg = (a * p * exp beta) ** (1/a) in xg / (1+xg)+ | otherwise = let xg = (b * (1-p) * exp beta) ** (1/b) in 1 - xg/(1+xg)+ in x+ -- If both a and b larger or equal that 1 but not too big we use+ -- same approximation as above but calculate it a bit differently+ | a+b <= 6 && a>1 && b>1 =+ let x_infl = (a - 1) / (a + b - 2)+ p_infl = incompleteBeta a b x_infl+ x | p < p_infl = exp ((log(p * a) + beta) / a)+ | otherwise = 1 - exp((log((1-p) * b) + beta) / b)+ in x+ -- For small a and not too big b we use approximation from boost.+ | b < 5 && a <= 1 =+ let x | p**(1/a) < 0.5 = (p ** (a * exp beta)) ** (1/a)+ | otherwise = 1 - (1 - p ** (b * exp beta))**(1/b)+ in x+ -- When a>>b and both are large approximation from [Temme1992],+ -- section 4 "the incomplete gamma function case" used. In this+ -- region it greatly improves over other approximation (AS109, AS64,+ -- "Numerical Recipes")+ --+ -- FIXME: It could be used when b>>a too but it require inverse of+ -- upper incomplete gamma to be precise enough. In current+ -- implementation it loses precision in horrible way (40+ -- order of magnitude off for sufficiently small p)+ | a+b > 5 && a/b > 4 =+ let -- Calculate initial approximation to eta using eq 4.1+ eta0 = invIncompleteGamma b (1-p) / a+ mu = b / a -- Eq. 4.3+ -- A lot of helpers for calculation of+ w = sqrt(1 + mu) -- Eq. 4.9+ w_2 = w * w+ w_3 = w_2 * w+ w_4 = w_2 * w_2+ w_5 = w_3 * w_2+ w_6 = w_3 * w_3+ w_7 = w_4 * w_3+ w_8 = w_4 * w_4+ w_9 = w_5 * w_4+ w_10 = w_5 * w_5+ d = eta0 - mu+ d_2 = d * d+ d_3 = d_2 * d+ d_4 = d_2 * d_2+ w1 = w + 1+ w1_2 = w1 * w1+ w1_3 = w1 * w1_2+ w1_4 = w1_2 * w1_2+ -- Evaluation of eq 4.10+ e1 = (w + 2) * (w - 1) / (3 * w)+ + (w_3 + 9 * w_2 + 21 * w + 5) * d+ / (36 * w_2 * w1)+ - (w_4 - 13 * w_3 + 69 * w_2 + 167 * w + 46) * d_2+ / (1620 * w1_2 * w_3)+ - (7 * w_5 + 21 * w_4 + 70 * w_3 + 26 * w_2 - 93 * w - 31) * d_3+ / (6480 * w1_3 * w_4)+ - (75 * w_6 + 202 * w_5 + 188 * w_4 - 888 * w_3 - 1345 * w_2 + 118 * w + 138) * d_4+ / (272160 * w1_4 * w_5)+ e2 = (28 * w_4 + 131 * w_3 + 402 * w_2 + 581 * w + 208) * (w - 1)+ / (1620 * w1 * w_3)+ - (35 * w_6 - 154 * w_5 - 623 * w_4 - 1636 * w_3 - 3983 * w_2 - 3514 * w - 925) * d+ / (12960 * w1_2 * w_4)+ - ( 2132 * w_7 + 7915 * w_6 + 16821 * w_5 + 35066 * w_4 + 87490 * w_3+ + 141183 * w_2 + 95993 * w + 21640+ ) * d_2+ / (816480 * w_5 * w1_3)+ - ( 11053 * w_8 + 53308 * w_7 + 117010 * w_6 + 163924 * w_5 + 116188 * w_4+ - 258428 * w_3 - 677042 * w_2 - 481940 * w - 105497+ ) * d_3+ / (14696640 * w1_4 * w_6)+ e3 = -( (3592 * w_7 + 8375 * w_6 - 1323 * w_5 - 29198 * w_4 - 89578 * w_3+ - 154413 * w_2 - 116063 * w - 29632+ ) * (w - 1)+ )+ / (816480 * w_5 * w1_2)+ - ( 442043 * w_9 + 2054169 * w_8 + 3803094 * w_7 + 3470754 * w_6 + 2141568 * w_5+ - 2393568 * w_4 - 19904934 * w_3 - 34714674 * w_2 - 23128299 * w - 5253353+ ) * d+ / (146966400 * w_6 * w1_3)+ - ( 116932 * w_10 + 819281 * w_9 + 2378172 * w_8 + 4341330 * w_7 + 6806004 * w_6+ + 10622748 * w_5 + 18739500 * w_4 + 30651894 * w_3 + 30869976 * w_2+ + 15431867 * w + 2919016+ ) * d_2+ / (146966400 * w1_4 * w_7)+ eta = evaluatePolynomialL (1/a) [eta0, e1, e2, e3]+ -- Now we solve eq 4.2 to recover x using Newton iterations+ u = eta - mu * log eta + (1 + mu) * log(1 + mu) - mu+ cross = 1 / (1 + mu);+ lower = if eta < mu then cross else 0+ upper = if eta < mu then 1 else cross+ x_guess = (lower + upper) / 2+ func x = ( u + log x + mu*log(1 - x)+ , 1/x - mu/(1-x)+ )+ Root x0 = newtonRaphson def{newtonTol=RelTol 1e-8} (lower, x_guess, upper) func+ in x0+ -- For large a and b approximation from AS109 (Carter+ -- approximation). It's reasonably good in this region+ | a > 1 && b > 1 =+ let r = (y*y - 3) / 6+ s = 1 / (2*a - 1)+ t = 1 / (2*b - 1)+ h = 2 / (s + t)+ w = y * sqrt(h + r) / h - (t - s) * (r + 5/6 - 2 / (3 * h))+ in a / (a + b * exp(2 * w))+ -- Otherwise we revert to approximation from AS64 derived from+ -- [AS64 2] when it's applicable.+ --+ -- It slightly reduces average number of iterations when `a' and+ -- `b' have different magnitudes.+ | chi2 > 0 && ratio > 1 = 1 - 2 / (ratio + 1)+ -- If all else fails we use approximation from "Numerical+ -- Recipes". It's very similar to approximations [AS64 4,5] but+ -- it never goes out of [0,1] interval.+ | otherwise = case () of+ _| p < t / w -> (a * p * w) ** (1/a)+ | otherwise -> 1 - (b * (1 - p) * w) ** (1/b)+ where+ lna = log $ a / (a+b)+ lnb = log $ b / (a+b)+ t = exp( a * lna ) / a+ u = exp( b * lnb ) / b+ w = t + u+ where+ -- Formula [AS64 2]+ ratio = (4*a + 2*b - 2) / chi2+ -- Quantile of chi-squared distribution. Formula [AS64 3].+ chi2 = 2 * b * (1 - t + y * sqrt t) ** 3+ where+ t = 1 / (9 * b)+ -- `y' is Hasting's approximation of p'th quantile of standard+ -- normal distribution.+ y = r - ( 2.30753 + 0.27061 * r )+ / ( 1.0 + ( 0.99229 + 0.04481 * r ) * r )+ where+ r = sqrt $ - 2 * log p++++----------------------------------------------------------------+-- Sinc function+----------------------------------------------------------------++-- | Compute sinc function @sin(x)\/x@+sinc :: Double -> Double+sinc x+ | ax < eps_0 = 1+ | ax < eps_2 = 1 - x2/6+ | ax < eps_4 = 1 - x2/6 + x2*x2/120+ | otherwise = sin x / x+ where+ ax = abs x+ x2 = x*x+ -- For explanation of choice see `doc/sinc.hs'+ eps_0 = 1.8250120749944284e-8 -- sqrt (6ε/4)+ eps_2 = 1.4284346431400855e-4 -- (30ε)**(1/4) / 2+ eps_4 = 4.043633626430947e-3 -- (1206ε)**(1/6) / 2+++----------------------------------------------------------------+-- Logarithm+----------------------------------------------------------------++-- | Compute log(1+x)-x:+log1pmx :: Double -> Double+log1pmx x+ | x < -1 = error "Domain error"+ | x == -1 = m_neg_inf+ | ax > 0.95 = log(1 + x) - x+ | ax < m_epsilon = -(x * x) /2+ | otherwise = - x * x * sumPowerSeries (-x) (recip <$> enumSequenceFrom 2)+ where+ ax = abs x++-- | /O(log n)/ Compute the logarithm in base 2 of the given value.+log2 :: Int -> Int+log2 v0+ | v0 <= 0 = modErr $ "log2: nonpositive input, got " ++ show v0+ | otherwise = go 5 0 v0+ where+ go !i !r !v | i == -1 = r+ | v .&. b i /= 0 = let si = U.unsafeIndex sv i+ in go (i-1) (r .|. si) (v `shiftR` si)+ | otherwise = go (i-1) r v+ b = U.unsafeIndex bv+ !bv = U.fromList [ 0x02, 0x0c, 0xf0, 0xff00+ , fromIntegral (0xffff0000 :: Word)+ , fromIntegral (0xffffffff00000000 :: Word)]+ !sv = U.fromList [1,2,4,8,16,32]+++----------------------------------------------------------------+-- Factorial+----------------------------------------------------------------++-- | Compute the factorial function /n/!. Returns +∞ if the input is+-- above 170 (above which the result cannot be represented by a+-- 64-bit 'Double').+factorial :: Int -> Double+factorial n+ | n < 0 = error "Numeric.SpecFunctions.factorial: negative input"+ | n > 170 = m_pos_inf+ | otherwise = U.unsafeIndex factorialTable n++-- | Compute the natural logarithm of the factorial function. Gives+-- 16 decimal digits of precision.+logFactorial :: Integral a => a -> Double+logFactorial n+ | n < 0 = error "Numeric.SpecFunctions.logFactorial: negative input"+ -- For smaller inputs we just look up table+ | n <= 170 = log $ U.unsafeIndex factorialTable (fromIntegral n)+ -- Otherwise we use asymptotic Stirling's series. Number of terms+ -- necessary depends on the argument.+ | n < 1500 = stirling + rx * ((1/12) - (1/360)*rx*rx)+ | otherwise = stirling + (1/12)*rx+ where+ stirling = (x - 0.5) * log x - x + m_ln_sqrt_2_pi+ x = fromIntegral n + 1+ rx = 1 / x+{-# SPECIALIZE logFactorial :: Int -> Double #-}+++-- | Calculate the error term of the Stirling approximation. This is+-- only defined for non-negative values.+--+-- \[+-- \operatorname{stirlingError}(n) = \log(n!) - \log(\sqrt{2\pi n}\frac{n}{e}^n)+-- \]+stirlingError :: Double -> Double+stirlingError n+ | n <= 15.0 = case properFraction (n+n) of+ (i,0) -> sfe `U.unsafeIndex` i+ _ -> logGamma (n+1.0) - (n+0.5) * log n + n -+ m_ln_sqrt_2_pi+ | n > 500 = evaluateOddPolynomialL (1/n) [s0,-s1]+ | n > 80 = evaluateOddPolynomialL (1/n) [s0,-s1,s2]+ | n > 35 = evaluateOddPolynomialL (1/n) [s0,-s1,s2,-s3]+ | otherwise = evaluateOddPolynomialL (1/n) [s0,-s1,s2,-s3,s4]+ where+ s0 = 0.083333333333333333333 -- 1/12+ s1 = 0.00277777777777777777778 -- 1/360+ s2 = 0.00079365079365079365079365 -- 1/1260+ s3 = 0.000595238095238095238095238 -- 1/1680+ s4 = 0.0008417508417508417508417508 -- 1/1188+ sfe = U.fromList [ 0.0,+ 0.1534264097200273452913848, 0.0810614667953272582196702,+ 0.0548141210519176538961390, 0.0413406959554092940938221,+ 0.03316287351993628748511048, 0.02767792568499833914878929,+ 0.02374616365629749597132920, 0.02079067210376509311152277,+ 0.01848845053267318523077934, 0.01664469118982119216319487,+ 0.01513497322191737887351255, 0.01387612882307074799874573,+ 0.01281046524292022692424986, 0.01189670994589177009505572,+ 0.01110455975820691732662991, 0.010411265261972096497478567,+ 0.009799416126158803298389475, 0.009255462182712732917728637,+ 0.008768700134139385462952823, 0.008330563433362871256469318,+ 0.007934114564314020547248100, 0.007573675487951840794972024,+ 0.007244554301320383179543912, 0.006942840107209529865664152,+ 0.006665247032707682442354394, 0.006408994188004207068439631,+ 0.006171712263039457647532867, 0.005951370112758847735624416,+ 0.005746216513010115682023589, 0.005554733551962801371038690 ]+++----------------------------------------------------------------+-- Combinatorics+----------------------------------------------------------------++-- |+-- Quickly compute the natural logarithm of /n/ @`choose`@ /k/, with+-- no checking.+--+-- Less numerically stable:+--+-- > exp $ lg (n+1) - lg (k+1) - lg (n-k+1)+-- > where lg = logGamma . fromIntegral+logChooseFast :: Double -> Double -> Double+logChooseFast n k = -log (n + 1) - logBeta (n - k + 1) (k + 1)++-- | Calculate binomial coefficient using exact formula+chooseExact :: Int -> Int -> Double+n `chooseExact` k+ = U.foldl' go 1 $ U.enumFromTo 1 k+ where+ go a i = a * (nk + j) / j+ where j = fromIntegral i :: Double+ nk = fromIntegral (n - k)++-- | Compute logarithm of the binomial coefficient.+logChoose :: Int -> Int -> Double+n `logChoose` k+ | k > n = (-1) / 0+ -- For very large N exact algorithm overflows double so we+ -- switch to beta-function based one+ | k' < 50 && (n < 20000000) = log $ chooseExact n k'+ | otherwise = logChooseFast (fromIntegral n) (fromIntegral k)+ where+ k' = min k (n-k)++-- | Compute the binomial coefficient /n/ @\``choose`\`@ /k/. For+-- values of /k/ > 50, this uses an approximation for performance+-- reasons. The approximation is accurate to 12 decimal places in the+-- worst case+--+-- Example:+--+-- > 7 `choose` 3 == 35+choose :: Int -> Int -> Double+n `choose` k+ | k > n = 0+ | k' < 50 = chooseExact n k'+ | approx < max64 = fromIntegral . round64 $ approx+ | otherwise = approx+ where+ k' = min k (n-k)+ approx = exp $ logChooseFast (fromIntegral n) (fromIntegral k')+ max64 = fromIntegral (maxBound :: Int64)+ round64 x = round x :: Int64++-- | Compute ψ(/x/), the first logarithmic derivative of the gamma+-- function.+--+-- \[+-- \psi(x) = \frac{d}{dx} \ln \left(\Gamma(x)\right) = \frac{\Gamma'(x)}{\Gamma(x)}+-- \]+--+-- Uses Algorithm AS 103 by Bernardo, based on Minka's C implementation.+digamma :: Double -> Double+digamma x+ | isNaN x || isInfinite x = m_NaN+ -- FIXME:+ -- This is ugly. We are testing here that number is in fact+ -- integer. It's somewhat tricky question to answer. When ε for+ -- given number becomes 1 or greater every number is represents+ -- an integer. We also must make sure that excess precision+ -- won't bite us.+ | x <= 0 && fromIntegral (truncate x :: Int64) == x = m_neg_inf+ -- Jeffery's reflection formula+ | x < 0 = digamma (1 - x) + pi / tan (negate pi * x)+ | x <= 1e-6 = - γ - 1/x + trigamma1 * x+ | x' < c = r+ -- De Moivre's expansion+ | otherwise = let s = 1/x'+ in evaluateEvenPolynomialL s+ [ r + log x' - 0.5 * s+ , - 1/12+ , 1/120+ , - 1/252+ , 1/240+ , - 1/132+ , 391/32760+ ]+ where+ γ = m_eulerMascheroni+ c = 12+ -- Reduce to digamma (x + n) where (x + n) >= c+ (r, x') = reduce 0 x+ where+ reduce !s y+ | y < c = reduce (s - 1 / y) (y + 1)+ | otherwise = (s, y)++++----------------------------------------------------------------+-- Constants+----------------------------------------------------------------++-- Coefficients for 18-point Gauss-Legendre integration. They are+-- used in implementation of incomplete gamma and beta functions.+coefW,coefY :: U.Vector Double+coefW = U.fromList [ 0.0055657196642445571, 0.012915947284065419, 0.020181515297735382+ , 0.027298621498568734, 0.034213810770299537, 0.040875750923643261+ , 0.047235083490265582, 0.053244713977759692, 0.058860144245324798+ , 0.064039797355015485, 0.068745323835736408, 0.072941885005653087+ , 0.076598410645870640, 0.079687828912071670, 0.082187266704339706+ , 0.084078218979661945, 0.085346685739338721, 0.085983275670394821+ ]+coefY = U.fromList [ 0.0021695375159141994, 0.011413521097787704, 0.027972308950302116+ , 0.051727015600492421, 0.082502225484340941, 0.12007019910960293+ , 0.16415283300752470, 0.21442376986779355, 0.27051082840644336+ , 0.33199876341447887, 0.39843234186401943, 0.46931971407375483+ , 0.54413605556657973, 0.62232745288031077, 0.70331500465597174+ , 0.78649910768313447, 0.87126389619061517, 0.95698180152629142+ ]+{-# NOINLINE coefW #-}+{-# NOINLINE coefY #-}++trigamma1 :: Double+trigamma1 = 1.6449340668482264365 -- pi**2 / 6++modErr :: String -> a+modErr msg = error $ "Numeric.SpecFunctions." ++ msg++factorialTable :: U.Vector Double+{-# NOINLINE factorialTable #-}+factorialTable = U.fromListN 171+ [ 1.0+ , 1.0+ , 2.0+ , 6.0+ , 24.0+ , 120.0+ , 720.0+ , 5040.0+ , 40320.0+ , 362880.0+ , 3628800.0+ , 3.99168e7+ , 4.790016e8+ , 6.2270208e9+ , 8.71782912e10+ , 1.307674368e12+ , 2.0922789888e13+ , 3.55687428096e14+ , 6.402373705728e15+ , 1.21645100408832e17+ , 2.43290200817664e18+ , 5.109094217170944e19+ , 1.1240007277776077e21+ , 2.5852016738884974e22+ , 6.204484017332394e23+ , 1.5511210043330984e25+ , 4.032914611266056e26+ , 1.0888869450418352e28+ , 3.0488834461171384e29+ , 8.841761993739702e30+ , 2.6525285981219103e32+ , 8.222838654177922e33+ , 2.631308369336935e35+ , 8.683317618811886e36+ , 2.9523279903960412e38+ , 1.0333147966386144e40+ , 3.719933267899012e41+ , 1.3763753091226343e43+ , 5.23022617466601e44+ , 2.0397882081197442e46+ , 8.159152832478977e47+ , 3.3452526613163803e49+ , 1.4050061177528798e51+ , 6.041526306337383e52+ , 2.6582715747884485e54+ , 1.1962222086548019e56+ , 5.5026221598120885e57+ , 2.5862324151116818e59+ , 1.2413915592536073e61+ , 6.082818640342675e62+ , 3.0414093201713376e64+ , 1.5511187532873822e66+ , 8.065817517094388e67+ , 4.2748832840600255e69+ , 2.308436973392414e71+ , 1.2696403353658275e73+ , 7.109985878048634e74+ , 4.0526919504877214e76+ , 2.3505613312828785e78+ , 1.386831185456898e80+ , 8.32098711274139e81+ , 5.075802138772247e83+ , 3.146997326038793e85+ , 1.9826083154044399e87+ , 1.2688693218588415e89+ , 8.24765059208247e90+ , 5.44344939077443e92+ , 3.647111091818868e94+ , 2.4800355424368305e96+ , 1.711224524281413e98+ , 1.197857166996989e100+ , 8.504785885678623e101+ , 6.1234458376886085e103+ , 4.470115461512684e105+ , 3.307885441519386e107+ , 2.4809140811395396e109+ , 1.88549470166605e111+ , 1.4518309202828586e113+ , 1.1324281178206297e115+ , 8.946182130782974e116+ , 7.15694570462638e118+ , 5.797126020747368e120+ , 4.753643337012841e122+ , 3.9455239697206583e124+ , 3.314240134565353e126+ , 2.81710411438055e128+ , 2.422709538367273e130+ , 2.1077572983795275e132+ , 1.8548264225739844e134+ , 1.650795516090846e136+ , 1.4857159644817613e138+ , 1.352001527678403e140+ , 1.2438414054641305e142+ , 1.1567725070816416e144+ , 1.087366156656743e146+ , 1.0329978488239058e148+ , 9.916779348709496e149+ , 9.619275968248211e151+ , 9.426890448883246e153+ , 9.332621544394413e155+ , 9.332621544394415e157+ , 9.425947759838358e159+ , 9.614466715035125e161+ , 9.902900716486179e163+ , 1.0299016745145626e166+ , 1.0813967582402908e168+ , 1.1462805637347082e170+ , 1.2265202031961378e172+ , 1.3246418194518288e174+ , 1.4438595832024934e176+ , 1.5882455415227428e178+ , 1.7629525510902446e180+ , 1.974506857221074e182+ , 2.2311927486598134e184+ , 2.543559733472187e186+ , 2.9250936934930154e188+ , 3.393108684451898e190+ , 3.9699371608087206e192+ , 4.68452584975429e194+ , 5.574585761207606e196+ , 6.689502913449126e198+ , 8.094298525273443e200+ , 9.875044200833601e202+ , 1.214630436702533e205+ , 1.5061417415111406e207+ , 1.8826771768889257e209+ , 2.372173242880047e211+ , 3.0126600184576594e213+ , 3.856204823625804e215+ , 4.974504222477286e217+ , 6.466855489220473e219+ , 8.471580690878819e221+ , 1.1182486511960041e224+ , 1.4872707060906857e226+ , 1.9929427461615188e228+ , 2.6904727073180504e230+ , 3.6590428819525483e232+ , 5.012888748274991e234+ , 6.917786472619488e236+ , 9.615723196941088e238+ , 1.3462012475717523e241+ , 1.898143759076171e243+ , 2.6953641378881624e245+ , 3.8543707171800725e247+ , 5.5502938327393044e249+ , 8.047926057471992e251+ , 1.1749972043909107e254+ , 1.7272458904546386e256+ , 2.5563239178728654e258+ , 3.808922637630569e260+ , 5.713383956445854e262+ , 8.62720977423324e264+ , 1.3113358856834524e267+ , 2.0063439050956823e269+ , 3.0897696138473508e271+ , 4.789142901463393e273+ , 7.471062926282894e275+ , 1.1729568794264143e278+ , 1.8532718694937346e280+ , 2.946702272495038e282+ , 4.714723635992061e284+ , 7.590705053947218e286+ , 1.2296942187394494e289+ , 2.0044015765453023e291+ , 3.287218585534296e293+ , 5.423910666131589e295+ , 9.003691705778436e297+ , 1.5036165148649988e300+ , 2.526075744973198e302+ , 4.269068009004705e304+ , 7.257415615307998e306+ ]+++-- [NOTE: incompleteGamma.taylorP]+--+-- Incompltete gamma uses several algorithms for different parts of+-- parameter space. Most troublesome is P(a,x) Taylor series+-- [Temme1994,Eq.5.5] which requires to evaluate rather nasty+-- expression:+--+-- x^a x^a+-- ------------- = -------------+-- exp(x)·Γ(a+1) exp(x)·a·Γ(a)+--+-- Conditions:+-- | 0.5<x<1.1 = x < 4/3*a+-- | otherwise = x < a+--+-- For small `a` computation could be performed directly. However for+-- largish values of `a` it's possible some of factor in the+-- expression overflow. Values below take into account ranges for+-- Taylor P approximation:+--+-- · a > 155 - x^a could overflow+-- · a > 1182.5 - exp(x) could overflow+--+-- Usual way to avoid overflow problem is to perform calculations in+-- the log domain. It however doesn't work very well in this case+-- since we encounter catastrophic cancellations and could easily lose+-- up to 6(!) digits for large `a`.+--+-- So we take another approach and use Stirling approximation with+-- correction (logGammaCorrection).+--+-- x^a / x·e \^a 1+-- ≈ ------------------------- = | --- | · ----------------+-- exp(x)·sqrt(2πa)·(a/e)^a) \ a / exp(x)·sqrt(2πa)+--+-- We're using this approach as soon as logGammaCorrection starts+-- working (a>10) because we don't have implementation for gamma+-- function and exp(logGamma z) results in errors for large a.+--+-- Once we get into region when exp(x) could overflow we rewrite+-- expression above once more:+--+-- / x·e \^a 1+-- | --- · e^(-x/a) | · ---------+-- \ a / sqrt(2πa)+--+-- This approach doesn't work very well but it's still big improvement+-- over calculations in the log domain.
Numeric/Sum.hs view
@@ -1,5 +1,5 @@-{-# LANGUAGE BangPatterns, CPP, DeriveDataTypeable, FlexibleContexts,- MultiParamTypeClasses, TemplateHaskell, TypeFamilies #-}+{-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleContexts,+ MultiParamTypeClasses, TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-name-shadowing #-} -- | -- Module : Numeric.Sum@@ -53,14 +53,14 @@ import Control.DeepSeq (NFData(..)) import Data.Bits (shiftR) import Data.Data (Typeable, Data)-import Data.Vector.Generic (Vector(..), foldl')-import Data.Vector.Unboxed.Deriving (derivingUnbox)--- Needed for GHC 7.2 & 7.4 to derive Unbox instances+import Data.Semigroup (Semigroup(..)) -- Needed for GHC <8.4+import Data.Vector.Generic (Vector(..)) import Data.Vector.Generic.Mutable (MVector(..)) import qualified Data.Foldable as F import qualified Data.Vector as V import qualified Data.Vector.Generic as G+import qualified Data.Vector.Generic.Mutable as GM import qualified Data.Vector.Unboxed as U -- | A class for summation of floating point numbers.@@ -74,7 +74,7 @@ -- | Sum a collection of values. -- -- Example:- -- @foo = 'sum' 'kbn' [1,2,3]@+ -- @foo = 'Numeric.Sum.sum' 'kbn' [1,2,3]@ sum :: (F.Foldable f) => (s -> Double) -> f Double -> Double sum f = f . F.foldl' add zero {-# INLINE sum #-}@@ -94,11 +94,54 @@ data KahanSum = KahanSum {-# UNPACK #-} !Double {-# UNPACK #-} !Double deriving (Eq, Show, Typeable, Data) -derivingUnbox "KahanSum"- [t| KahanSum -> (Double, Double) |]- [| \ (KahanSum a b) -> (a, b) |]- [| \ (a, b) -> KahanSum a b |]+instance U.Unbox KahanSum+newtype instance U.MVector s KahanSum = MV_KahanSum (U.MVector s (Double, Double))+instance MVector U.MVector KahanSum where+ {-# INLINE GM.basicLength #-}+ {-# INLINE GM.basicUnsafeSlice #-}+ {-# INLINE basicOverlaps #-}+ {-# INLINE basicUnsafeNew #-}+ {-# INLINE basicInitialize #-}+ {-# INLINE basicUnsafeReplicate #-}+ {-# INLINE basicUnsafeRead #-}+ {-# INLINE basicUnsafeWrite #-}+ {-# INLINE basicClear #-}+ {-# INLINE basicSet #-}+ {-# INLINE GM.basicUnsafeCopy #-}+ {-# INLINE basicUnsafeMove #-}+ {-# INLINE basicUnsafeGrow #-}+ basicLength (MV_KahanSum mvec) = GM.basicLength mvec+ basicUnsafeSlice idx len (MV_KahanSum mvec) = MV_KahanSum (GM.basicUnsafeSlice idx len mvec)+ basicOverlaps (MV_KahanSum mvec) (MV_KahanSum mvec') = basicOverlaps mvec mvec'+ basicUnsafeNew len = MV_KahanSum <$> basicUnsafeNew len+ basicInitialize (MV_KahanSum mvec) = basicInitialize mvec+ basicUnsafeReplicate len val = MV_KahanSum <$> basicUnsafeReplicate len ((\ (KahanSum a b) -> (a, b)) val)+ basicUnsafeRead (MV_KahanSum mvec) idx = (\ (a, b) -> KahanSum a b) <$> basicUnsafeRead mvec idx+ basicUnsafeWrite (MV_KahanSum mvec) idx val = basicUnsafeWrite mvec idx ((\ (KahanSum a b) -> (a, b)) val)+ basicClear (MV_KahanSum mvec) = basicClear mvec+ basicSet (MV_KahanSum mvec) val = basicSet mvec ((\ (KahanSum a b) -> (a, b)) val)+ basicUnsafeCopy (MV_KahanSum mvec) (MV_KahanSum mvec') = GM.basicUnsafeCopy mvec mvec'+ basicUnsafeMove (MV_KahanSum mvec) (MV_KahanSum mvec') = basicUnsafeMove mvec mvec'+ basicUnsafeGrow (MV_KahanSum mvec) len = MV_KahanSum <$> basicUnsafeGrow mvec len +newtype instance U.Vector KahanSum = V_KahanSum (U.Vector (Double, Double))+instance Vector U.Vector KahanSum where+ {-# INLINE basicUnsafeFreeze #-}+ {-# INLINE basicUnsafeThaw #-}+ {-# INLINE G.basicLength #-}+ {-# INLINE G.basicUnsafeSlice #-}+ {-# INLINE basicUnsafeIndexM #-}+ {-# INLINE G.basicUnsafeCopy #-}+ {-# INLINE elemseq #-}+ basicUnsafeFreeze (MV_KahanSum mvec) = V_KahanSum <$> basicUnsafeFreeze mvec+ basicUnsafeThaw (V_KahanSum vec) = MV_KahanSum <$> basicUnsafeThaw vec+ basicLength (V_KahanSum vec) = G.basicLength vec+ basicUnsafeSlice idx len (V_KahanSum vec) = V_KahanSum (G.basicUnsafeSlice idx len vec)+ basicUnsafeIndexM (V_KahanSum vec) idx = (\ (a, b) -> KahanSum a b) <$> basicUnsafeIndexM vec idx+ basicUnsafeCopy (MV_KahanSum mvec) (V_KahanSum vec) = G.basicUnsafeCopy mvec vec+ elemseq (V_KahanSum vec) val = elemseq vec ((\ (KahanSum a b) -> (a, b)) val)++ instance Summation KahanSum where zero = KahanSum 0 0 add = kahanAdd@@ -106,6 +149,15 @@ instance NFData KahanSum where rnf !_ = () +-- | @since 0.3.0.0+instance Monoid KahanSum where+ mempty = zero+ mappend = (<>)++-- | @since 0.3.0.0+instance Semigroup KahanSum where+ s <> KahanSum s' _ = add s s'+ kahanAdd :: KahanSum -> Double -> KahanSum kahanAdd (KahanSum sum c) x = KahanSum sum' c' where sum' = sum + y@@ -122,11 +174,54 @@ data KBNSum = KBNSum {-# UNPACK #-} !Double {-# UNPACK #-} !Double deriving (Eq, Show, Typeable, Data) -derivingUnbox "KBNSum"- [t| KBNSum -> (Double, Double) |]- [| \ (KBNSum a b) -> (a, b) |]- [| \ (a, b) -> KBNSum a b |]+instance U.Unbox KBNSum+newtype instance U.MVector s KBNSum = MV_KBNSum (U.MVector s (Double, Double))+instance MVector U.MVector KBNSum where+ {-# INLINE GM.basicLength #-}+ {-# INLINE GM.basicUnsafeSlice #-}+ {-# INLINE basicOverlaps #-}+ {-# INLINE basicUnsafeNew #-}+ {-# INLINE basicInitialize #-}+ {-# INLINE basicUnsafeReplicate #-}+ {-# INLINE basicUnsafeRead #-}+ {-# INLINE basicUnsafeWrite #-}+ {-# INLINE basicClear #-}+ {-# INLINE basicSet #-}+ {-# INLINE GM.basicUnsafeCopy #-}+ {-# INLINE basicUnsafeMove #-}+ {-# INLINE basicUnsafeGrow #-}+ basicLength (MV_KBNSum mvec) = GM.basicLength mvec+ basicUnsafeSlice idx len (MV_KBNSum mvec) = MV_KBNSum (GM.basicUnsafeSlice idx len mvec)+ basicOverlaps (MV_KBNSum mvec) (MV_KBNSum mvec') = basicOverlaps mvec mvec'+ basicUnsafeNew len = MV_KBNSum <$> basicUnsafeNew len+ basicInitialize (MV_KBNSum mvec) = basicInitialize mvec+ basicUnsafeReplicate len val = MV_KBNSum <$> basicUnsafeReplicate len ((\ (KBNSum a b) -> (a, b)) val)+ basicUnsafeRead (MV_KBNSum mvec) idx = (\ (a, b) -> KBNSum a b) <$> basicUnsafeRead mvec idx+ basicUnsafeWrite (MV_KBNSum mvec) idx val = basicUnsafeWrite mvec idx ((\ (KBNSum a b) -> (a, b)) val)+ basicClear (MV_KBNSum mvec) = basicClear mvec+ basicSet (MV_KBNSum mvec) val = basicSet mvec ((\ (KBNSum a b) -> (a, b)) val)+ basicUnsafeCopy (MV_KBNSum mvec) (MV_KBNSum mvec') = GM.basicUnsafeCopy mvec mvec'+ basicUnsafeMove (MV_KBNSum mvec) (MV_KBNSum mvec') = basicUnsafeMove mvec mvec'+ basicUnsafeGrow (MV_KBNSum mvec) len = MV_KBNSum <$> basicUnsafeGrow mvec len +newtype instance U.Vector KBNSum = V_KBNSum (U.Vector (Double, Double))+instance Vector U.Vector KBNSum where+ {-# INLINE basicUnsafeFreeze #-}+ {-# INLINE basicUnsafeThaw #-}+ {-# INLINE G.basicLength #-}+ {-# INLINE G.basicUnsafeSlice #-}+ {-# INLINE basicUnsafeIndexM #-}+ {-# INLINE G.basicUnsafeCopy #-}+ {-# INLINE elemseq #-}+ basicUnsafeFreeze (MV_KBNSum mvec) = V_KBNSum <$> basicUnsafeFreeze mvec+ basicUnsafeThaw (V_KBNSum vec) = MV_KBNSum <$> basicUnsafeThaw vec+ basicLength (V_KBNSum vec) = G.basicLength vec+ basicUnsafeSlice idx len (V_KBNSum vec) = V_KBNSum (G.basicUnsafeSlice idx len vec)+ basicUnsafeIndexM (V_KBNSum vec) idx = (\ (a, b) -> KBNSum a b) <$> basicUnsafeIndexM vec idx+ basicUnsafeCopy (MV_KBNSum mvec) (V_KBNSum vec) = G.basicUnsafeCopy mvec vec+ elemseq (V_KBNSum vec) val = elemseq vec ((\ (KBNSum a b) -> (a, b)) val)++ instance Summation KBNSum where zero = KBNSum 0 0 add = kbnAdd@@ -134,6 +229,16 @@ instance NFData KBNSum where rnf !_ = () +-- | @since 0.3.0.0+instance Monoid KBNSum where+ mempty = zero+ mappend = (<>)++-- | @since 0.3.0.0+instance Semigroup KBNSum where+ s <> KBNSum s' c' = add (add s s') c'+ + kbnAdd :: KBNSum -> Double -> KBNSum kbnAdd (KBNSum sum c) x = KBNSum sum' c' where c' | abs sum >= abs x = c + ((sum - sum') + x)@@ -157,11 +262,53 @@ {-# UNPACK #-} !Double deriving (Eq, Show, Typeable, Data) -derivingUnbox "KB2Sum"- [t| KB2Sum -> (Double, Double, Double) |]- [| \ (KB2Sum a b c) -> (a, b, c) |]- [| \ (a, b, c) -> KB2Sum a b c |]+instance U.Unbox KB2Sum+newtype instance U.MVector s KB2Sum = MV_KB2Sum (U.MVector s (Double, Double, Double))+instance MVector U.MVector KB2Sum where+ {-# INLINE GM.basicLength #-}+ {-# INLINE GM.basicUnsafeSlice #-}+ {-# INLINE basicOverlaps #-}+ {-# INLINE basicUnsafeNew #-}+ {-# INLINE basicInitialize #-}+ {-# INLINE basicUnsafeReplicate #-}+ {-# INLINE basicUnsafeRead #-}+ {-# INLINE basicUnsafeWrite #-}+ {-# INLINE basicClear #-}+ {-# INLINE basicSet #-}+ {-# INLINE GM.basicUnsafeCopy #-}+ {-# INLINE basicUnsafeMove #-}+ {-# INLINE basicUnsafeGrow #-}+ basicLength (MV_KB2Sum mvec) = GM.basicLength mvec+ basicUnsafeSlice idx len (MV_KB2Sum mvec) = MV_KB2Sum (GM.basicUnsafeSlice idx len mvec)+ basicOverlaps (MV_KB2Sum mvec) (MV_KB2Sum mvec') = basicOverlaps mvec mvec'+ basicUnsafeNew len = MV_KB2Sum <$> basicUnsafeNew len+ basicInitialize (MV_KB2Sum mvec) = basicInitialize mvec+ basicUnsafeReplicate len val = MV_KB2Sum <$> basicUnsafeReplicate len ((\ (KB2Sum a b c) -> (a, b, c)) val)+ basicUnsafeRead (MV_KB2Sum mvec) idx = (\ (a, b, c) -> KB2Sum a b c) <$> basicUnsafeRead mvec idx+ basicUnsafeWrite (MV_KB2Sum mvec) idx val = basicUnsafeWrite mvec idx ((\ (KB2Sum a b c) -> (a, b, c)) val)+ basicClear (MV_KB2Sum mvec) = basicClear mvec+ basicSet (MV_KB2Sum mvec) val = basicSet mvec ((\ (KB2Sum a b c) -> (a, b, c)) val)+ basicUnsafeCopy (MV_KB2Sum mvec) (MV_KB2Sum mvec') = GM.basicUnsafeCopy mvec mvec'+ basicUnsafeMove (MV_KB2Sum mvec) (MV_KB2Sum mvec') = basicUnsafeMove mvec mvec'+ basicUnsafeGrow (MV_KB2Sum mvec) len = MV_KB2Sum <$> basicUnsafeGrow mvec len +newtype instance U.Vector KB2Sum = V_KB2Sum (U.Vector (Double, Double, Double))+instance Vector U.Vector KB2Sum where+ {-# INLINE basicUnsafeFreeze #-}+ {-# INLINE basicUnsafeThaw #-}+ {-# INLINE G.basicLength #-}+ {-# INLINE G.basicUnsafeSlice #-}+ {-# INLINE basicUnsafeIndexM #-}+ {-# INLINE G.basicUnsafeCopy #-}+ {-# INLINE elemseq #-}+ basicUnsafeFreeze (MV_KB2Sum mvec) = V_KB2Sum <$> basicUnsafeFreeze mvec+ basicUnsafeThaw (V_KB2Sum vec) = MV_KB2Sum <$> basicUnsafeThaw vec+ basicLength (V_KB2Sum vec) = G.basicLength vec+ basicUnsafeSlice idx len (V_KB2Sum vec) = V_KB2Sum (G.basicUnsafeSlice idx len vec)+ basicUnsafeIndexM (V_KB2Sum vec) idx = (\ (a, b, c) -> KB2Sum a b c) <$> basicUnsafeIndexM vec idx+ basicUnsafeCopy (MV_KB2Sum mvec) (V_KB2Sum vec) = G.basicUnsafeCopy mvec vec+ elemseq (V_KB2Sum vec) val = elemseq vec ((\ (KB2Sum a b c) -> (a, b, c)) val)+ instance Summation KB2Sum where zero = KB2Sum 0 0 0 add = kb2Add@@ -169,6 +316,16 @@ instance NFData KB2Sum where rnf !_ = () +-- | @since 0.3.0.0+instance Monoid KB2Sum where+ mempty = zero+ mappend = (<>)++-- | @since 0.3.0.0+instance Semigroup KB2Sum where+ s <> KB2Sum s' c' cc' = add (add (add s s') c') cc'++ kb2Add :: KB2Sum -> Double -> KB2Sum kb2Add (KB2Sum sum c cc) x = KB2Sum sum' c' cc' where sum' = sum + x@@ -185,7 +342,7 @@ -- | /O(n)/ Sum a vector of values. sumVector :: (Vector v Double, Summation s) => (s -> Double) -> v Double -> Double-sumVector f = f . foldl' add zero+sumVector f = f . G.foldl' add zero {-# INLINE sumVector #-} -- | /O(n)/ Sum a vector of values using pairwise summation.@@ -223,7 +380,7 @@ -- where s' = 'add' s x -- @ ----- In most instances, you can simply use the much more general 'sum'+-- In most instances, you can simply use the much more general 'Numeric.Sum.sum' -- function instead of writing a summation function by hand. -- -- @@@ -231,7 +388,7 @@ -- import Prelude hiding (sum) -- -- -- betterSumList :: [Double] -> Double--- betterSumList xs = 'sum' 'kbn' xs+-- betterSumList xs = 'Numeric.Sum.sum' 'kbn' xs -- @ -- Note well the use of 'seq' in the example above to force the
README.markdown view
@@ -1,7 +1,21 @@-# math-functions: efficient, special purpose mathematical functions+# math-functions: collection of tools for numeric computations -This package provides a number of special-purpose mathematical-functions used in statistical and numerical computing.+[](https://travis-ci.org/Shimuuar/math-functions)+[](https://ci.appveyor.com/project/Shimuuar/math-functions/branch/master)++This package provides collection of various tools for numeric+computations. Namely:++ - Number pure haskell implementations of special function which are used in+ statistical and numerical computing.++ - Compensated summation (Kahan summation) which allows to++ - Root finding for functions of single real variable++ - Series summation++ - Functions for comparing IEEE754 numbers Where possible, we give citations and computational complexity estimates for the algorithms used.
+ bench/bench.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE NumDecimals #-}+import Data.Default.Class+import qualified Data.Vector.Unboxed as U+import Text.Printf+import Test.Tasty.Bench+import System.Random (randomIO)++import qualified Numeric.Sum as Sum+import Numeric.SpecFunctions+import Numeric.Polynomial+import Numeric.RootFinding++++-- Uniformly sample logGamma performance between 10^-6 to 10^6+benchmarkLogGamma :: (Double -> Double) -> [Benchmark]+benchmarkLogGamma logG =+ [ bench (printf "%.3g" x) $ nf logG x+ | x <- [ m * 10**n | n <- [ -8 .. 8 ]+ , m <- [ 10**(i / tics) | i <- [0 .. tics-1] ]+ ]+ ]+ where tics = 3+{-# INLINE benchmarkLogGamma #-}+++-- Power of polynomial to be evaluated (In other words length of coefficients vector)+coef_size :: [Int]+coef_size = [ 1,2,3,4,5,6,7,8,9+ , 10, 30+ , 100, 300+ , 1000, 3000+ , 10000, 30000+ ]+{-# INLINE coef_size #-}++-- Precalculated coefficients+coef_list :: [U.Vector Double]+coef_list = [ U.replicate n 1.2 | n <- coef_size]+{-# NOINLINE coef_list #-}++++main :: IO ()+main = do+ v <- U.replicateM 1e6 randomIO :: IO (U.Vector Double)+ defaultMain+ [ bgroup "logGamma" $+ benchmarkLogGamma logGamma+ , bgroup "incompleteGamma" $+ [ bench (show p) $ nf (incompleteGamma p) p+ | p <- [ 0.1+ , 1, 3+ , 10, 30+ , 100, 300+ , 999, 1000+ ]+ ]+ , bgroup "factorial"+ [ bench (show n) $ nf factorial n+ | n <- [ 0, 1, 3, 6, 9, 11, 15+ , 20, 30, 40, 50, 60, 70, 80, 90, 100+ ]+ ]+ , bgroup "incompleteBeta"+ [ bench (show (p,q,x)) $ nf (incompleteBeta p q) x+ | (p,q,x) <- [ (10, 10, 0.5)+ , (101, 101, 0.5)+ , (1010, 1010, 0.5)+ , (10100, 10100, 0.5)+ , (100100, 100100, 0.5)+ , (1001000, 1001000, 0.5)+ , (10010000,10010000,0.5)+ ]+ ]+ , bgroup "log1p"+ [ bench (show x) $ nf log1p x+ | x <- [ -0.9+ , -0.5+ , -0.1+ , 0.1+ , 0.5+ , 1+ , 10+ , 100+ ] :: [Double]+ ]+ , bgroup "sinc" $+ bench "sin" (nf sin (0.55 :: Double))+ : [ bench (show x) $ nf sinc x+ | x <- [0, 1e-6, 1e-3, 0.5]+ ]+ , bgroup "erf & Co"+ [ bgroup "erf"+ [ bench (show x) $ nf erf x+ | x <- [0, 1.1, 100, 1000]+ ]+ , bgroup "erfc"+ [ bench (show x) $ nf erfc x+ | x <- [0, 1.1, 100, 1000]+ ]+ , bgroup "invErfc"+ [ bench (show x) $ nf erfc x+ | x <- [1e-9, 1e-6, 1e-3, 0.1, 1]+ ]+ ]+ , bgroup "expm1"+ [ bench (show x) $ nf expm1 (x :: Double)+ | x <- [-0.1, 0, 1, 19]+ ]+ , bgroup "poly"+ $ [ bench ("vector_"++show (U.length coefs)) $ nf (\x -> evaluatePolynomial x coefs) (1 :: Double)+ | coefs <- coef_list ]+ ++ [ bench ("unpacked_"++show n) $ nf (\x -> evaluatePolynomialL x (map fromIntegral [1..n])) (1 :: Double)+ | n <- coef_size ]+ , bgroup "RootFinding"+ [ bench "ridders sin" $ nf (ridders def (0,pi/2)) (\x -> sin x - 0.525)+ , bench "newton sin" $ nf (newtonRaphson def (0,1.2,pi/2)) (\x -> (sin x - 0.525,cos x))+ ]+ , bgroup "Sum"+ [ bench "naive" $ whnf U.sum v+ , bench "kahan" $ whnf (Sum.sumVector Sum.kahan) v+ , bench "kbn" $ whnf (Sum.sumVector Sum.kbn) v+ , bench "kb2" $ whnf (Sum.sumVector Sum.kb2) v+ ]+ ]
− benchmark/Summation.hs
@@ -1,15 +0,0 @@-import Criterion.Main-import Numeric.Sum as Sum-import System.Random.MWC-import qualified Data.Vector.Unboxed as U--main = do- gen <- createSystemRandom- v <- uniformVector gen 10000000 :: IO (U.Vector Double)- defaultMain [- bench "naive" $ whnf U.sum v- , bench "pairwise" $ whnf pairwiseSum v- , bench "kahan" $ whnf (sumVector kahan) v- , bench "kbn" $ whnf (sumVector kbn) v- , bench "kb2" $ whnf (sumVector kb2) v- ]
− benchmark/bench.hs
@@ -1,89 +0,0 @@-import Criterion.Main-import qualified Data.Vector.Unboxed as U-import Numeric.SpecFunctions-import Numeric.Polynomial-import Text.Printf---- Uniformly sample logGamma performance between 10^-6 to 10^6-benchmarkLogGamma logG =- [ bench (printf "%.3g" x) $ nf logG x- | x <- [ m * 10**n | n <- [ -8 .. 8 ]- , m <- [ 10**(i / tics) | i <- [0 .. tics-1] ]- ]- ]- where tics = 3-{-# INLINE benchmarkLogGamma #-}----- Power of polynomial to be evaluated (In other words length of coefficients vector)-coef_size :: [Int]-coef_size = [ 1,2,3,4,5,6,7,8,9- , 10, 30- , 100, 300- , 1000, 3000- , 10000, 30000- ]-{-# INLINE coef_size #-}---- Precalculated coefficients-coef_list :: [U.Vector Double]-coef_list = [ U.replicate n 1.2 | n <- coef_size]-{-# NOINLINE coef_list #-}----main :: IO ()-main = defaultMain- [ bgroup "logGamma" $- benchmarkLogGamma logGamma- , bgroup "logGammaL" $- benchmarkLogGamma logGammaL- , bgroup "incompleteGamma" $- [ bench (show p) $ nf (incompleteGamma p) p- | p <- [ 0.1- , 1, 3- , 10, 30- , 100, 300- , 999, 1000- ]- ]- , bgroup "factorial"- [ bench (show n) $ nf factorial n- | n <- [ 0, 1, 3, 6, 9, 11, 15- , 20, 30, 40, 50, 60, 70, 80, 90, 100- ]- ]- , bgroup "incompleteBeta"- [ bench (show (p,q,x)) $ nf (incompleteBeta p q) x- | (p,q,x) <- [ (10, 10, 0.5)- , (101, 101, 0.5)- , (1010, 1010, 0.5)- , (10100, 10100, 0.5)- , (100100, 100100, 0.5)- , (1001000, 1001000, 0.5)- , (10010000,10010000,0.5)- ]- ]- , bgroup "log1p"- [ bench (show x) $ nf log1p x- | x <- [ -0.9- , -0.5- , -0.1- , 0.1- , 0.5- , 1- , 10- , 100- ]- ]- , bgroup "sinc" $- bench "sin" (nf sin (0.55 :: Double))- : [ bench (show x) $ nf sinc x- | x <- [0, 1e-6, 1e-3, 0.5]- ]- , bgroup "poly"- $ [ bench ("vector_"++show (U.length coefs)) $ nf (\x -> evaluatePolynomial x coefs) (1 :: Double)- | coefs <- coef_list ]- ++ [ bench ("unpacked_"++show n) $ nf (\x -> evaluatePolynomialL x (map fromIntegral [1..n])) (1 :: Double)- | n <- coef_size ]- ]
changelog.md view
@@ -1,5 +1,136 @@-Changes in 0.1.7.0+## Changes in 0.3.4.4 + * Support for future versions of GHC. Monoid and Monad instances now have+ canonical form+++## Changes in 0.3.4.3+ + * Support for `QuickCheck >= 2.14`. Test no longer fail++ * Support for GHC<8.0 dropped+ ++## Changes in 0.3.4.2++ * Fixed crash in `invIncompleteBeta` (#68) for some inputs initial approximation+ was computed incorrectly.+++## Changes in 0.3.4.1++ * Precision of `incompleteGamma` improved.+++## Changes in 0.3.4.0++ * Dependency on `vector-th-unbox` is dropped. All instances are written by+ hand now.+++## Changes in 0.3.3.0++ * New implementation for `logGamma`. Now it's precise within 2 ulps at full+ range including zeros at 1 and 2.++ * Bug with precision loss of `invErf` for parameters near zero is fixed.++ * Fixed loss of precision in bundled `erf` near zero. (Affect primarily GHCJS)++ * `factorial` for now uses lookup table++ * `logFactorial` is optimized a bit (less number of terms is used)++ * `m_sqrt_eps` constant added.++ * Module `Numeric.SpecFunctions.Internal` is exposed.++ * Many improvements for test suite. Tables of expected function values are+ generated with mpmath, error estimates improved. Test suite itself is+ migrated to `tasty` from `test-framework`.+++## Changes in 0.3.2.1++ * Fixes build on windows for GHC<8.0+++## Changes in 0.3.2.0++ * GHCJS is now supported++ * Flag `system-expm1` is set to true by default. Only affects GHC<8.0++## Changes in 0.3.1.0++ * Exported data types for iteration steps in root finding++ * Defaults for root finding algorithm are documented+++## Changes in 0.3.0.2++ * Fix license field in cabal file+++## Changes in 0.3.0.0++ * `Semigroup` and `Monoid` instances added for data types from `Numeric.Sum`++ * API for finding roots of real functions reworked. 1) All algorithm+ parameters are now tweakable. 2) Functions for getting list of iterations+ added.++ * `Foldable` and `Traversable` instances for `Root` were added.++## Changes in 0.2.1.0++ * `log1p` and `expm1` are simply reexported from `GHC.Float`. They're methods+ of `Floating` type class.++ * On windows `expm1` is implemented in pure haskell for older GHCs.+++## Changes in 0.2.0.0++ * Bug fixes and documentation tweaks+++## Changes in 0.2.0.0++ * `logGamma` now uses Lancsoz approximation and same as `logGammaL`. Old+ implementation of `logGamma` moved to `Numeric.SpecFunctions.Extra.logGammaAS245`.++ * Precision of `logGamma` for z<1 improved.++ * New much more precise implementation for `incompleteGamma`++ * Dependency on `erf` package dropped. `erf` and `erfc` just do direct calls+ to C.++ * `Numeric.SpecFunctions.expm1` added++ * `Numeric.SpecFunctions.log1pmx` added.++ * `logGammaCorrection` exported in `Numeric.SpecFunctions.Extra`.++ * Module `Numeric.Series` added for working with infinite sequences, series+ summation and evaluation of continued fractions.++ * Module `statistics: Statistics.Math.RootFinding` copied to+ `Numeric.RootFinding`. Instances for `binary` and `aeson` dropped.++ * Root-finding using Newton-Raphson added++ * `Numeric.MathFunctions.Comparison.ulpDelta` added. It calculates signed+ distance between two doubles.++ * Other bug fixes.++++## Changes in 0.1.7.0+ * Module `statistics: Statistics.Function.Comparison` moved to `Numeric.MathFunctions.Comparison`. Old implementation if `within` compared negative numbers incorrectly.@@ -11,7 +142,7 @@ * Precision of `logFactorial` is slightly improved. -Changes in 0.1.6.0+## Changes in 0.1.6.0 * `logChoose` added for calculation of logarithm of binomial coefficient @@ -20,17 +151,17 @@ * `sinc` added -Changes in 0.1.5.3+## Changes in 0.1.5.3 * Fix for test suite on 32bit platform -Changes in 0.1.5+## Changes in 0.1.5 * Numeric.Sum: new module adds accurate floating point summation. -Changes in 0.1.4+## Changes in 0.1.4 * logFactorial type is genberalized. It accepts any `Integral` type @@ -38,7 +169,7 @@ are store in lists added -Changes in 0.1.3+## Changes in 0.1.3 * Error function and its inverse added.
math-functions.cabal view
@@ -1,50 +1,100 @@ name: math-functions-version: 0.1.7.0-cabal-version: >= 1.8-license: BSD3+version: 0.3.4.4+cabal-version: >= 1.10+license: BSD2 license-file: LICENSE author: Bryan O'Sullivan <bos@serpentine.com>,- Aleksey Khudyakov <alexey.skladnoy@gmail.com>-maintainer: Bryan O'Sullivan <bos@serpentine.com>-homepage: https://github.com/bos/math-functions-bug-reports: https://github.com/bos/math-functions/issues+ Alexey Khudyakov <alexey.skladnoy@gmail.com>+maintainer: Alexey Khudyakov <alexey.skladnoy@gmail.com>+homepage: https://github.com/haskell/math-functions+bug-reports: https://github.com/haskell/math-functions/issues category: Math, Numeric build-type: Simple-synopsis: Special functions and Chebyshev polynomials+synopsis: Collection of tools for numeric computations description:- This library provides implementations of special mathematical- functions and Chebyshev polynomials. These functions are often- useful in statistical and numerical computing. + This library contain collection of various utilities for numerical+ computing. So far there're special mathematical functions,+ compensated summation algorithm, summation of series, root finding+ for real functions, polynomial summation and Chebyshev+ polynomials. ++tested-with:+ GHC ==8.0.2+ || ==8.2.2+ || ==8.4.4+ || ==8.6.5+ || ==8.8.4+ || ==8.10.7+ || ==9.0.2+ || ==9.2.7+ || ==9.4.5+ || ==9.6.2++ extra-source-files:- changelog.md- README.markdown- benchmark/*.hs- tests/*.hs- tests/Tests/*.hs- tests/Tests/SpecFunctions/gen.py- doc/sinc.hs+ changelog.md+ README.markdown+ tests/Tests/SpecFunctions/gen.py+ tests/tables/generate.py+ tests/tables/shell.nix+ tests/tables/*.dat+ tests/tables/inputs/*.dat+ doc/sinc.hs +flag system-expm1+ description: Use expm1 provided by GHC. On GHCJS we don't have one so we+ have to use hand-coded one.+ default: True+ manual: True++flag system-erf+ description: Use erf and erfc provided by system. On GHCJS+ version provided by library is used regardless of+ flag for that lack of libc.+ default: True+ manual: True+ library- ghc-options: -Wall- build-depends: base >=3 && <5,- deepseq,- erf >= 2,- vector >= 0.7,- primitive,- vector-th-unbox+ default-language: Haskell2010+ other-extensions:+ BangPatterns+ CPP+ DeriveDataTypeable+ FlexibleContexts+ MultiParamTypeClasses+ ScopedTypeVariables+ TypeFamilies+ DeriveGeneric++ ghc-options: -Wall -O2+ build-depends: base >= 4.9 && < 5+ , deepseq+ , data-default-class >= 0.1.2.0+ , vector >= 0.11+ , primitive+ if flag(system-expm1) && !impl(ghcjs)+ cpp-options: -DUSE_SYSTEM_EXPM1+ if flag(system-erf) && !impl(ghcjs)+ cpp-options: -DUSE_SYSTEM_ERF exposed-modules: Numeric.MathFunctions.Constants Numeric.MathFunctions.Comparison Numeric.Polynomial Numeric.Polynomial.Chebyshev+ Numeric.RootFinding Numeric.SpecFunctions Numeric.SpecFunctions.Extra+ Numeric.SpecFunctions.Internal+ Numeric.Series Numeric.Sum other-modules:- Numeric.SpecFunctions.Internal+ Numeric.SpecFunctions.Compat -test-suite tests+test-suite math-function-tests+ default-language: Haskell2010+ other-extensions: ViewPatterns+ type: exitcode-stdio-1.0 ghc-options: -Wall -threaded if arch(i386)@@ -56,27 +106,50 @@ Tests.Helpers Tests.Chebyshev Tests.Comparison+ Tests.RootFinding Tests.SpecFunctions Tests.SpecFunctions.Tables Tests.Sum- build-depends:- math-functions,- base >=3 && <5,- deepseq,- primitive,- vector >= 0.7,- vector-th-unbox,- erf,- HUnit >= 1.2,- QuickCheck >= 2.7,- test-framework,- test-framework-hunit,- test-framework-quickcheck2+ if flag(system-erf) && !impl(ghcjs)+ cpp-options: -DUSE_SYSTEM_ERF+ build-depends: base >=4.5 && <5+ , math-functions+ , data-default-class >= 0.1.2.0+ , deepseq+ , primitive+ , vector >= 0.7+ , vector-th-unbox+ , erf+ , QuickCheck >= 2.7+ , tasty >= 1.2+ , tasty-hunit >= 0.10+ , tasty-quickcheck >= 0.10 +benchmark math-functions-bench+ type: exitcode-stdio-1.0+ if impl(ghcjs)+ buildable: False+ default-language: Haskell2010+ other-extensions:+ BangPatterns+ CPP+ DeriveDataTypeable+ FlexibleContexts+ MultiParamTypeClasses+ ScopedTypeVariables+ TemplateHaskell+ TypeFamilies+ DeriveGeneric+ ghc-options: -Wall -O2+ hs-source-dirs: bench+ Main-is: bench.hs+ build-depends: base >= 4.5 && < 5+ , math-functions+ , data-default-class+ , vector+ , random+ , tasty-bench >=0.3.4+ source-repository head type: git location: https://github.com/bos/math-functions--source-repository head- type: mercurial- location: https://bitbucket.org/bos/math-functions
tests/Tests/Chebyshev.hs view
@@ -1,12 +1,10 @@ {-# OPTIONS_GHC -fno-warn-type-defaults #-} -module Tests.Chebyshev (- tests- ) where+module Tests.Chebyshev ( tests ) where import Data.Vector.Unboxed (fromList)-import Test.Framework-import Test.Framework.Providers.QuickCheck2+import Test.Tasty+import Test.Tasty.QuickCheck (testProperty) import Test.QuickCheck (Arbitrary(..),counterexample,Property) import Tests.Helpers@@ -14,7 +12,7 @@ import Numeric.MathFunctions.Comparison -tests :: Test+tests :: TestTree tests = testGroup "Chebyshev polynomials" [ testProperty "Chebyshev 0" $ \a0 (Ch x) -> testCheb [a0] x
tests/Tests/Comparison.hs view
@@ -2,15 +2,15 @@ -- Tests for approximate comparison module Tests.Comparison (tests) where -import Test.Framework-import Test.Framework.Providers.QuickCheck2+import Test.Tasty+import Test.Tasty.QuickCheck import Tests.Helpers import Numeric.MathFunctions.Comparison import Numeric.MathFunctions.Constants (m_epsilon) -tests :: Test+tests :: TestTree tests = testGroup "Comparison" [ testProperty "addUlps 0" $ \x -> x == addUlps 0 x , testProperty "addUlps sym" $ \i x -> x == (addUlps (-i) . addUlps i) x
tests/Tests/Helpers.hs view
@@ -15,9 +15,8 @@ import Data.Complex import Data.Typeable -import qualified Test.HUnit as HU-import Test.Framework-import Test.Framework.Providers.HUnit+import Test.Tasty+import Test.Tasty.HUnit import Numeric.MathFunctions.Comparison @@ -71,8 +70,8 @@ -- HUnit helpers ---------------------------------------------------------------- -testAssertion :: String -> Bool -> Test-testAssertion str cont = testCase str $ HU.assertBool str cont+testAssertion :: String -> Bool -> TestTree+testAssertion str cont = testCase str $ assertBool str cont -testEquality :: (Show a, Eq a) => String -> a -> a -> Test-testEquality msg a b = testCase msg $ HU.assertEqual msg a b+testEquality :: (Show a, Eq a) => String -> a -> a -> TestTree+testEquality msg a b = testCase msg $ assertEqual msg a b
+ tests/Tests/RootFinding.hs view
@@ -0,0 +1,44 @@+-- |+module Tests.RootFinding ( tests ) where++import Data.Default.Class+import Test.Tasty+import Test.Tasty.HUnit++import Numeric.RootFinding+import Tests.Helpers+++tests :: TestTree+tests = testGroup "Root finding"+ [ testGroup "Ridders"+ [ testAssertion "sin x - 0.525 [exact]" $ testRiddersSin0_525 (AbsTol 0)+ , testAssertion "sin x - 0.525 [abs 1e-12]" $ testRiddersSin0_525 (AbsTol 1e-12)+ , testAssertion "sin x - 0.525 [abs 1e-6]" $ testRiddersSin0_525 (AbsTol 1e-6)+ , testAssertion "sin x - 0.525 [rel 1e-12]" $ testRiddersSin0_525 (RelTol 1e-12)+ , testAssertion "sin x - 0.525 [rel 1e-6]" $ testRiddersSin0_525 (RelTol 1e-6)+ ]+ , testGroup "Newton-Raphson"+ [ testAssertion "sin x - 0.525 [rel 1e-12]" $ testNewtonSin0_525 (RelTol 1e-12)+ , testAssertion "sin x - 0.525 [rel 1e-6]" $ testNewtonSin0_525 (RelTol 1e-6)+ , testAssertion "sin x - 0.525 [abs 1e-12]" $ testNewtonSin0_525 (AbsTol 1e-12)+ , testAssertion "sin x - 0.525 [abs 1e-6]" $ testNewtonSin0_525 (AbsTol 1e-6)+ , testAssertion "1/x - 0.5 [0]" $+ let Root r = newtonRaphson def{newtonTol=RelTol 0} (1,1000,1000)+ (\x -> (1/x - 0.5, -1/(x*x)))+ in r == 2+ ]+ ]+ where+ -- Exact root for equation: sin x - 0.525 = 0+ exactRoot = 0.5527151130967832+ --+ testRiddersSin0_525 tol+ = withinTolerance tol r exactRoot+ where+ Root r = ridders def{riddersTol = tol} (0, pi/2) (\x -> sin x - 0.525)+ --+ testNewtonSin0_525 tol+ = withinTolerance tol r exactRoot+ where+ Root r = newtonRaphson def{newtonTol=tol} (0, pi/4, pi/2) (\x -> (sin x - 0.525, cos x))
tests/Tests/SpecFunctions.hs view
@@ -1,106 +1,373 @@+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE ViewPatterns #-} -- | Tests for Statistics.Math module Tests.SpecFunctions ( tests ) where +import Control.Monad+import Data.List+import Data.Maybe import qualified Data.Vector as V import Data.Vector ((!))+import qualified Data.Vector.Unboxed as U import Test.QuickCheck hiding (choose,within)-import Test.Framework-import Test.Framework.Providers.QuickCheck2+import Test.Tasty+import Test.Tasty.QuickCheck (testProperty)+import Test.Tasty.HUnit import Tests.Helpers import Tests.SpecFunctions.Tables import Numeric.SpecFunctions-import Numeric.MathFunctions.Comparison (within)+import Numeric.SpecFunctions.Internal (factorialTable)+import Numeric.MathFunctions.Comparison (within,ulpDistance)+import Numeric.MathFunctions.Constants (m_epsilon,m_tiny) +erfTol,erfcTol,erfcLargeTol :: Int+-- Pure haskell implementation is not very good+#if !defined(USE_SYSTEM_ERF) || defined(__GHCJS__)+erfTol = 4+erfcTol = 4+erfcLargeTol = 64+-- Macos's erf is slightly worse that GNU one+#elif defined(darwin_HOST_OS)+erfTol = 2+erfcTol = 2+erfcLargeTol = 2+-- Windows' one is not very good too+#elif defined(mingw32_HOST_OS)+erfTol = 2+erfcTol = 2+erfcLargeTol = 4+#else+erfTol = 1+erfcTol = 2+erfcLargeTol = 2+#endif -tests :: Test+isGHCJS :: Bool+#if defined(__GHCJS__)+isGHCJS = True+#else+isGHCJS = False+#endif++isWindows :: Bool+#if defined(mingw32_HOST_OS)+isWindows = True+#else+isWindows = False+#endif+++tests :: TestTree tests = testGroup "Special functions"- [ testProperty "Gamma(x+1) = x*Gamma(x) [logGamma]" $ gammaReccurence logGamma 3e-8- , testProperty "Gamma(x+1) = x*Gamma(x) [logGammaL]" $ gammaReccurence logGammaL 2e-13- , testProperty "gamma(1,x) = 1 - exp(-x)" $ incompleteGammaAt1Check- , testProperty "0 <= gamma <= 1" $ incompleteGammaInRange- , testProperty "0 <= I[B] <= 1" $ incompleteBetaInRange- -- XXX FIXME DISABLED due to failures- -- , testProperty "invIncompleteGamma = gamma^-1" $ invIGammaIsInverse- -- , testProperty "invIncompleteBeta = B^-1" $ invIBetaIsInverse- -- , testProperty "gamma - increases" $- -- \s x y -> s > 0 && x > 0 && y > 0 ==> monotonicallyIncreases (incompleteGamma s) x y- , testProperty "invErfc = erfc^-1" $ invErfcIsInverse- , testProperty "invErf = erf^-1" $ invErfIsInverse- -- Unit tests- , testAssertion "Factorial is expected to be precise at 1e-15 level"- $ and [ eq 1e-15 (factorial (fromIntegral n :: Int))- (fromIntegral (factorial' n))- |n <- [0..170]]- , testAssertion "Log factorial is expected to be precise at 1e-15 level"- $ and [ eq 1e-15 (logFactorial (fromIntegral n :: Int))- (log $ fromIntegral $ factorial' n)- | n <- [2..170]]- , testAssertion "logGamma is expected to be precise at 1e-9 level [integer points]"- $ and [ eq 1e-9 (logGamma (fromIntegral n))- (logFactorial (n-1))- | n <- [3..10000::Int]]- , testAssertion "logGamma is expected to be precise at 1e-9 level [fractional points]"- $ and [ eq 1e-9 (logGamma x) lg | (x,lg) <- tableLogGamma ]- , testAssertion "logGammaL is expected to be precise at 1e-15 level"- $ and [ eq 1e-15 (logGammaL (fromIntegral n))- (logFactorial (n-1))- | n <- [3..10000::Int]]- -- FIXME: Too low!- , testAssertion "logGammaL is expected to be precise at 1e-10 level [fractional points]"- $ and [ eq 1e-10 (logGammaL x) lg | (x,lg) <- tableLogGamma ]- -- FIXME: loss of precision when logBeta p q ≈ 0.- -- Relative error doesn't work properly in this case.- , testAssertion "logBeta is expected to be precise at 1e-6 level"- $ and [ eq 1e-6 (logBeta p q)- (logGammaL p + logGammaL q - logGammaL (p+q))- | p <- [0.1,0.2 .. 0.9] ++ [2 .. 20]- , q <- [0.1,0.2 .. 0.9] ++ [2 .. 20]- ]- , testAssertion "digamma is expected to be precise at 1e-14 [integers]"- $ digammaTestIntegers 1e-14- -- Relative precision is lost when digamma(x) ≈ 0- , testAssertion "digamma is expected to be precise at 1e-12"- $ and [ eq 1e-12 r (digamma x) | (x,r) <- tableDigamma ]- -- FIXME: Why 1e-8? Is it due to poor precision of logBeta?- , testAssertion "incompleteBeta is expected to be precise at 1e-8 level"- $ and [ eq 1e-8 (incompleteBeta p q x) ib | (p,q,x,ib) <- tableIncompleteBeta ]- , testAssertion "incompleteBeta with p > 3000 and q > 3000"- $ and [ eq 1e-11 (incompleteBeta p q x) ib | (x,p,q,ib) <-- [ (0.495, 3001, 3001, 0.2192546757957825068677527085659175689142653854877723)- , (0.501, 3001, 3001, 0.5615652382981522803424365187631195161665429270531389)- , (0.531, 3500, 3200, 0.9209758089734407825580172472327758548870610822321278)- , (0.501, 13500, 13200, 0.0656209987264794057358373443387716674955276089622780)- ]- ]- , testAssertion "choose is expected to precise at 1e-12 level"- $ and [ eq 1e-12 (choose (fromIntegral n) (fromIntegral k)) (fromIntegral $ choose' n k)- | n <- [0..1000], k <- [0..n]]- , testAssertion "logChoose == log . choose"- $ and [ let n' = fromIntegral n- k' = fromIntegral k- in within 2 (logChoose n' k') (log $ choose n' k')- | n <- [0..1000], k <- [0..n]]+ [ testGroup "erf"+ [ -- implementation from numerical recipes loses precision for+ -- large arguments+ testCase "erfc table" $+ forTable "tests/tables/erfc.dat" $ \[x, exact] ->+ checkTabularPure erfcTol (show x) exact (erfc x)+ , testCase "erfc table [large]" $+ forTable "tests/tables/erfc-large.dat" $ \[x, exact] ->+ checkTabularPure erfcLargeTol (show x) exact (erfc x)+ --+ , testCase "erf table" $+ forTable "tests/tables/erf.dat" $ \[x, exact] -> do+ checkTabularPure erfTol (show x) exact (erf x)+ , testProperty "id = erfc . invErfc" invErfcIsInverse+ , testProperty "id = invErfc . erfc" invErfcIsInverse2+ , testProperty "invErf = erf^-1" invErfIsInverse+ ]+ --+ , testGroup "log1p & Co"+ [ testCase "expm1 table" $+ forTable "tests/tables/expm1.dat" $ \[x, exact] ->+ checkTabularPure 2 (show x) exact (expm1 x)+ , testCase "log1p table" $+ forTable "tests/tables/log1p.dat" $ \[x, exact] ->+ checkTabularPure 1 (show x) exact (log1p x)+ ]+ ----------------+ , testGroup "gamma function"+ [ testCase "logGamma table [fractional points" $+ forTable "tests/tables/loggamma.dat" $ \[x, exact] -> do+ checkTabularPure 2 (show x) exact (logGamma x)+ , testProperty "Gamma(x+1) = x*Gamma(x)" $ gammaReccurence+ , testCase "logGamma is expected to be precise at 1e-15 level" $+ forM_ [3..10000::Int] $ \n -> do+ let exact = logFactorial (n-1)+ val = logGamma (fromIntegral n)+ checkTabular 8 (show n) exact val+ ]+ ----------------+ , testGroup "incomplete gamma"+ [ testCase "incompleteGamma table" $+ forTable "tests/tables/igamma.dat" $ \[a,x,exact] -> do+ let err | a < 10 = 16+ | a <= 101 = case () of+ _| isGHCJS -> 64+ | isWindows -> 64+ | otherwise -> 32+ | a == 201 = 200+ | otherwise = 32+ checkTabularPure err (show (a,x)) exact (incompleteGamma a x)+ , testProperty "incomplete gamma - increases" $+ \(abs -> s) (abs -> x) (abs -> y) -> s > 0 ==> monotonicallyIncreases (incompleteGamma s) x y+ , testProperty "0 <= gamma <= 1" incompleteGammaInRange+ , testProperty "gamma(1,x) = 1 - exp(-x)" incompleteGammaAt1Check+ , testProperty "invIncompleteGamma = gamma^-1" invIGammaIsInverse+ ]+ ----------------+ , testGroup "beta function"+ [ testCase "logBeta table" $+ forTable "tests/tables/logbeta.dat" $ \[p,q,exact] ->+ let errEst+ -- For Stirling approx. errors are very good+ | b > 10 = 2+ -- Partial Stirling approx+ | a > 10 = case () of+ _| b >= 1 -> 4+ | otherwise -> 2 * est+ -- sum of logGamma+ | otherwise = case () of+ _| a <= 1 && b <= 1 -> 8+ | a >= 1 && b >= 1 -> 8+ | otherwise -> 2 * est+ where+ a = max p q+ b = min p q+ --+ est = ceiling+ $ abs (logGamma a) + abs (logGamma b) + abs (logGamma (a + b))+ / abs (logBeta a b)+ in checkTabularPure errEst (show (p,q)) exact (logBeta p q)+ , testCase "logBeta factorial" betaFactorial+ , testProperty "beta(1,p) = 1/p" beta1p+ -- , testProperty "beta recurrence" betaRecurrence+ ]+ ----------------+ , testGroup "incomplete beta"+ [ testCase "incompleteBeta table" $+ forM_ tableIncompleteBeta $ \(p,q,x,exact) ->+ checkTabular 64 (show (x,p,q)) (incompleteBeta p q x) exact+ , testCase "incompleteBeta table with p > 3000 and q > 3000" $+ forM_ tableIncompleteBetaP3000 $ \(x,p,q,exact) ->+ checkTabular 7000 (show (x,p,q)) (incompleteBeta p q x) exact+ --+ , testProperty "0 <= I[B] <= 1" incompleteBetaInRange+ , testProperty "ibeta symmetry" incompleteBetaSymmetry+ , testCase "Regression #68" $ do+ let a = 1+ b = 0.3+ p = 0.3+ x = invIncompleteBeta a b p+ assertBool "Inversion OK" $ incompleteBeta a b x `ulpDistance` p < 4+ -- XXX FIXME DISABLED due to failures+ -- , testProperty "invIncompleteBeta = B^-1" $ invIBetaIsInverse+ ]+ ----------------+ , testGroup "digamma"+ [ testAssertion "digamma is expected to be precise at 1e-14 [integers]"+ $ digammaTestIntegers 1e-14+ -- Relative precision is lost when digamma(x) ≈ 0+ , testCase "digamma is expected to be precise at 1e-12" $+ forTable "tests/tables/digamma.dat" $ \[x, exact] ->+ checkTabularPure 2048+ (show x) (digamma x) exact+ ]+ ----------------+ , testGroup "factorial"+ [ testCase "Factorial table" $+ forM_ [0 .. 170] $ \n -> do+ checkTabular 1+ (show n)+ (fromIntegral (factorial' n))+ (factorial (fromIntegral n :: Int))+ --+ , testCase "Log factorial from integer" $+ forM_ [2 .. 170] $ \n -> do+ checkTabular 1+ (show n)+ (log $ fromIntegral $ factorial' n)+ (logFactorial (fromIntegral n :: Int))+ , testAssertion "Factorial table is OK"+ $ U.length factorialTable == 171+ , testCase "Log factorial table" $+ forTable "tests/tables/factorial.dat" $ \[i,exact] ->+ checkTabularPure 3+ (show i) (logFactorial (round i :: Int)) exact+ ]+ ----------------+ , testGroup "combinatorics"+ [ testCase "choose table" $+ forM_ [0 .. 1000] $ \n ->+ forM_ [0 .. n] $ \k -> do+ checkTabular (if isWindows then 3072 else 2048)+ (show (n,k))+ (fromIntegral $ choose' n k)+ (choose (fromInteger n) (fromInteger k))+ --+ , testCase "logChoose == log . choose" $+ forM_ [0 .. 1000] $ \n ->+ forM_ [0 .. n] $ \k -> do+ checkTabular 2+ (show (n,k))+ (log $ choose n k)+ (logChoose n k)+ ] ---------------------------------------------------------------- -- Self tests- , testProperty "Self-test: 0 <= range01 <= 1" $ \x -> let f = range01 x in f <= 1 && f >= 0+ , testGroup "self-test"+ [ testProperty "Self-test: 0 <= range01 <= 1" $ \x -> let f = range01 x in f <= 1 && f >= 0+ ] ] ----------------------------------------------------------------+-- efr tests+----------------------------------------------------------------++roundtrip_erfc_invErfc,+ roundtrip_invErfc_erfc,+ roundtrip_erf_invErf+ :: (Double,Double)+#if !defined(USE_SYSTEM_ERF) || defined(__GHCJS__)+roundtrip_erfc_invErfc = (2,8)+roundtrip_invErfc_erfc = (8,4)+roundtrip_erf_invErf = (128,128)+#elif defined(darwin_HOST_OS)+roundtrip_erfc_invErfc = (4,4)+roundtrip_invErfc_erfc = (4,4)+roundtrip_erf_invErf = (2,2)+#elif defined(mingw32_HOST_OS)+roundtrip_erfc_invErfc = (4,4)+roundtrip_invErfc_erfc = (4,4)+roundtrip_erf_invErf = (4,4)+#else+roundtrip_erfc_invErfc = (2,2)+roundtrip_invErfc_erfc = (2,2)+roundtrip_erf_invErf = (1,1)+#endif++-- id ≈ erfc . invErfc+invErfcIsInverse :: Double -> Property+invErfcIsInverse ((*2) . range01 -> x)+ = (not $ isInfinite x) ==>+ ( counterexample ("x = " ++ show x )+ $ counterexample ("y = " ++ show y )+ $ counterexample ("x' = " ++ show x')+ $ counterexample ("calc.err = " ++ show (delta, delta-e'))+ $ counterexample ("ulps = " ++ show (ulpDistance x x'))+ $ ulpDistance x x' <= round delta+ )+ where+ (e,e') = roundtrip_erfc_invErfc+ delta = e' + e * abs ( y / x * 2 / sqrt pi * exp( -y*y ))+ y = invErfc x+ x' = erfc y++-- id ≈ invErfc . erfc+invErfcIsInverse2 :: Double -> Property+invErfcIsInverse2 x+ = (not $ isInfinite x') ==>+ (y > m_tiny) ==>+ (x /= 0) ==>+ counterexample ("x = " ++ show x )+ $ counterexample ("y = " ++ show y )+ $ counterexample ("x' = " ++ show x')+ $ counterexample ("calc.err = " ++ show delta)+ $ counterexample ("ulps = " ++ show (ulpDistance x x'))+ $ ulpDistance x x' <= delta+ where+ (e,e') = roundtrip_invErfc_erfc+ delta = round+ $ e' + e * abs (y / x / (2 / sqrt pi * exp( -x*x )))+ y = erfc x+ x' = invErfc y++-- id ≈ erf . invErf+invErfIsInverse :: Double -> Property+invErfIsInverse a+ = (x /= 0) ==>+ counterexample ("x = " ++ show x )+ $ counterexample ("y = " ++ show y )+ $ counterexample ("x' = " ++ show x')+ $ counterexample ("calc.err = " ++ show delta)+ $ counterexample ("ulps = " ++ show (ulpDistance x x'))+ $ ulpDistance x x' <= delta+ where+ (e,e') = roundtrip_erf_invErf+ delta = round+ $ e + e' * abs (y / x * 2 / sqrt pi * exp ( -y * y ))+ x | a < 0 = - range01 a+ | otherwise = range01 a+ y = invErf x+ x' = erf y++---------------------------------------------------------------- -- QC tests ---------------------------------------------------------------- +-- B(p,q) = (x - 1)!(y-1)! / (x + y - 1)!+betaFactorial :: IO ()+betaFactorial = do+ forM_ prod $ \(p,q,facP,facQ,facProd) -> do+ let exact = fromIntegral (facQ * facP)+ / fromIntegral facProd+ checkTabular 16 (show (p,q))+ (logBeta (fromIntegral p) (fromIntegral q))+ (log exact)+ where+ prod = [ (p,q,facP,facQ, factorial' (p + q - 1))+ | (p,facP) <- facList+ , (q,facQ) <- facList+ , p + q < 170+ , not (p == 1 && q== 1)+ ]+ facList = [(p,factorial' (p-1)) | p <- [1 .. 170]]++-- B(1,p) = 1/p+beta1p :: Double -> Property+beta1p (abs -> p)+ = p > 2 ==>+ counterexample ("p = " ++ show p)+ $ counterexample ("logB = " ++ show lb)+ $ counterexample ("err = " ++ show d)+ $ d <= 24+ where+ lb = logBeta 1 p+ d = ulpDistance lb (- log p)++{-+-- B(p+1,q) = B(p,q) · p/(p+q)+betaRecurrence :: Double -> Double -> Property+betaRecurrence (abs -> p) (abs -> q)+ = p > 0 && q > 0 ==>+ counterexample ("p = " ++ show p)+ $ counterexample ("q = " ++ show q)+ $ counterexample ("log B(p,q) = " ++ show (logBeta p q))+ $ counterexample ("log B(p+1,q) = " ++ show (logBeta (p+1) q))+ $ counterexample ("err = " ++ show d)+ $ d <= 128+ where+ logB = logBeta p q + log (p / (p + q))+ logB' = logBeta (p + 1) q+ d = ulpDistance logB logB'+-}+ -- Γ(x+1) = x·Γ(x)-gammaReccurence :: (Double -> Double) -> Double -> Double -> Property-gammaReccurence logG ε x =- (x > 0 && x < 100) ==> (abs (g2 - g1 - log x) < ε)+gammaReccurence :: Double -> Property+gammaReccurence x+ = x > 0 ==> err < errEst where- g1 = logG x- g2 = logG (x+1)+ g1 = logGamma x+ g2 = logGamma (x+1)+ err = abs (g2 - g1 - log x)+ -- logGamma apparently is not as precise for small x. See #59 for details+ errEst = max 1e-14+ $ 2 * m_epsilon * sum (map abs [ g1 , g2 , log x ]) -- γ(s,x) is in [0,1] range incompleteGammaInRange :: Double -> Double -> Property@@ -109,55 +376,52 @@ -- γ(1,x) = 1 - exp(-x) -- Since Γ(1) = 1 normalization doesn't make any difference-incompleteGammaAt1Check :: Double -> Property+incompleteGammaAt1Check :: Double -> Bool incompleteGammaAt1Check (abs -> x) =- x > 0 ==> (incompleteGamma 1 x + exp(-x)) ≈ 1- where- (≈) = eq 1e-13+ ulpDistance (incompleteGamma 1 x) (-expm1(-x)) < 16 -- invIncompleteGamma is inverse of incompleteGamma invIGammaIsInverse :: Double -> Double -> Property invIGammaIsInverse (abs -> a) (range01 -> p) =- a > 0 && p > 0 && p < 1 ==> ( counterexample ("a = " ++ show a )- $ counterexample ("p = " ++ show p )- $ counterexample ("x = " ++ show x )- $ counterexample ("p' = " ++ show p')- $ counterexample ("Δp = " ++ show (p - p'))- $ abs (p - p') <= 1e-12- )+ a > m_tiny && p > m_tiny && p < 1 && x > m_tiny ==>+ ( counterexample ("a = " ++ show a )+ $ counterexample ("p = " ++ show p )+ $ counterexample ("x = " ++ show x )+ $ counterexample ("p' = " ++ show p')+ $ counterexample ("err = " ++ show (ulpDistance p p'))+ $ counterexample ("est = " ++ show est)+ $ ulpDistance p p' <= est+ ) where x = invIncompleteGamma a p+ f' = exp ( log x * (a-1) - x - logGamma a) p' = incompleteGamma a x---- invErfc is inverse of erfc-invErfcIsInverse :: Double -> Property-invErfcIsInverse ((*2) . range01 -> p)- = counterexample ("p = " ++ show p )- $ counterexample ("x = " ++ show x )- $ counterexample ("p' = " ++ show p')- $ abs (p - p') <= 1e-14- where- x = invErfc p- p' = erfc x---- invErf is inverse of erf-invErfIsInverse :: Double -> Property-invErfIsInverse a- = counterexample ("p = " ++ show p )- $ counterexample ("x = " ++ show x )- $ counterexample ("p' = " ++ show p')- $ abs (p - p') <= 1e-14- where- x = invErf p- p' = erf x- p | a < 0 = - range01 a- | otherwise = range01 a+ -- FIXME: Test should be rechecked when #42 is fixed+ (e,e') = (32,32)+ est = round+ $ e' + e * abs (x / p * f') --- B(s,x) is in [0,1] range+-- I(x;p,q) is in [0,1] range incompleteBetaInRange :: Double -> Double -> Double -> Property incompleteBetaInRange (abs -> p) (abs -> q) (range01 -> x) = p > 0 && q > 0 ==> let i = incompleteBeta p q x in i >= 0 && i <= 1 +-- I(0.5; p,p) = 0.5+incompleteBetaSymmetry :: Double -> Property+incompleteBetaSymmetry (abs -> p) =+ p > 0 ==>+ counterexample ("p = " ++ show p)+ $ counterexample ("ib = " ++ show ib)+ $ counterexample ("err = " ++ show d)+ $ counterexample ("est = " ++ show est)+ $ d <= est+ where+ est | p < 1 = 80+ | p < 10 = 200+ | otherwise = round $ 6 * p+ d = ulpDistance ib 0.5+ ib = incompleteBeta p p 0.5+ -- invIncompleteBeta is inverse of incompleteBeta invIBetaIsInverse :: Double -> Double -> Double -> Property invIBetaIsInverse (abs -> p) (abs -> q) (range01 -> x) =@@ -210,3 +474,33 @@ -- Truncate double to [0,1] range01 :: Double -> Double range01 = abs . (snd :: (Integer, Double) -> Double) . properFraction+++readTable :: FilePath -> IO [[Double]]+readTable+ = fmap (fmap (fmap read . words) . lines)+ . readFile++forTable :: FilePath -> ([Double] -> Maybe String) -> IO ()+forTable path fun = do+ rows <- readTable path+ case mapMaybe fun rows of+ [] -> return ()+ errs -> assertFailure $ intercalate "---\n" errs++checkTabular :: Int -> String -> Double -> Double -> IO ()+checkTabular prec x exact val =+ case checkTabularPure prec x exact val of+ Nothing -> return ()+ Just s -> assertFailure s++checkTabularPure :: Int -> String -> Double -> Double -> Maybe String+checkTabularPure prec x exact val+ | within prec exact val = Nothing+ | otherwise = Just $ unlines+ [ " x = " ++ x+ , " expected = " ++ show exact+ , " got = " ++ show val+ , " ulps diff = " ++ show (ulpDistance exact val)+ , " err.est. = " ++ show prec+ ]
tests/Tests/SpecFunctions/Tables.hs view
@@ -1,38 +1,5 @@ module Tests.SpecFunctions.Tables where -tableLogGamma :: [(Double,Double)]-tableLogGamma =- [(0.000001250000000, 13.592366285131767256)- , (0.000068200000000, 9.5930266308318756785)- , (0.000246000000000, 8.3100370767447948595)- , (0.000880000000000, 7.0350813373524845318)- , (0.003120000000000, 5.7681293583655666168)- , (0.026700000000000, 3.6082588918892972707)- , (0.077700000000000, 2.5148371858768232556)- , (0.234000000000000, 1.3579557559432757774)- , (0.860000000000000, 0.098146578027685588141)- , (1.340000000000000, -0.11404757557207759189)- , (1.890000000000000, -0.042511642297870140539)- , (2.450000000000000, 0.25014296569217620014)- , (3.650000000000000, 1.3701041997380685178)- , (4.560000000000000, 2.5375143317949575561)- , (6.660000000000000, 5.9515377269550207018)- , (8.250000000000000, 9.0331869196051215454)- , (11.300000000000001, 15.814180681373947834)- , (25.600000000000001, 56.711261598328121636)- , (50.399999999999999, 146.12815158702164808)- , (123.299999999999997, 468.85500075897556371)- , (487.399999999999977, 2526.9846647543727158)- , (853.399999999999977, 4903.9359135978220365)- , (2923.300000000000182, 20402.93198938705973)- , (8764.299999999999272, 70798.268343590112636)- , (12630.000000000000000, 106641.7726498250704)- , (34500.000000000000000, 325976.34838781820145)- , (82340.000000000000000, 849629.79603036714252)- , (234800.000000000000000, 2668846.4390507955104)- , (834300.000000000000000, 10540830.912557533011)- , (1230000.000000000000000, 16017699.322315014899)- ] tableIncompleteBeta :: [(Double,Double,Double,Double)] tableIncompleteBeta = [(2.000000000000000, 3.000000000000000, 0.030000000000000, 0.0051864299999999988189)@@ -45,106 +12,12 @@ , (13.100000000000000, 9.800000000000001, 0.420000000000000, 0.071321857831804780226) , (13.100000000000000, 9.800000000000001, 0.920000000000000, 0.99999578339197070509) ]-tableDigamma :: [(Double,Double)]-tableDigamma =- [(10.0261172557341425, 2.2544954834170942704)- , (0.9070101446062873, -0.74152778337908598072)- , (3.4679213262860156, 1.0925031389314479036)- , (28.5703089405901878, 3.3347652650101657912)- , (5.9700184459319399, 1.7006665338476731897)- , (20.5303177686997920, 2.9973508205248808878)- , (5.6622605630542511, 1.6429280447671743559)- , (4.4741465342999014, 1.3824198603491071324)- , (21.4416006516504787, 3.0418326144933285349)- , (47.6946291432301663, 3.8542988022858128971)- , (11.2357450115053670, 2.37393979612347783)- , (0.3352840110772935, -3.1124447967622668187)- , (2.5037441860153118, 0.70499097759044615508)- , (0.5241560861477529, -1.8489960634174653631)- , (0.1972018552655726, -5.3635382066874592866)- , (0.8289440927562556, -0.90024805153750442344)- , (2.0717397641759350, 0.4680412969073853291)- , (9.1173553049782452, 2.1543380160183831507)- , (1.1815938184339669, -0.31262126373727594508)- , (7.3600347508772019, 1.9265946441432049152)- , (19.7457045917841398, 2.9574003365402390386)- , (4.1956416643620571, 1.3101672771843546617)- , (7.3868205159465790, 1.9304848277860633399)- , (1.2786090750546355, -0.19373178842778399078)- , (10.6498308581562604, 2.3178608134278069208)- , (10.6750266252851169, 2.3203381265132185796)- , (10.6883248506773985, 2.3216431742802625671)- , (14.3373372205836365, 2.6275879484098640937)- , (3.3932538441985769, 1.0672611106295626371)- , (11.4168205413938768, 2.3906538776946248959)- , (3.2500957742991048, 1.0170253699094919941)- , (2.7573211981404855, 0.82209952378707851217)- , (21.8943170241258827, 3.063216323919045081)- , (16.7950471612825254, 2.7910180230044043803)- , (9.2578640399661225, 2.1704940538770385317)- , (5.3213868642873896, 1.5748408574979930741)- , (9.4381079039564071, 2.1908443398518979706)- , (13.1568457441413429, 2.538458049596743038)- , (10.6478950333943825, 2.3176702242110884811)- , (6.4894496431749733, 1.7911554320176725774)- , (20.3998669454332315, 2.9908182167188113176)- , (3.6989463639934752, 1.1668268193484248041)- , (3.4716258279958572, 1.093739186127963281)- , (24.7013029455164919, 3.1864775907749920414)- , (1.1608524325026863, -0.33982067949719851896)- , (1.9482800424522431, 0.3888762195060542215)- , (30.4956621109554185, 3.4010990755913685923)- , (16.3105956379859052, 2.7608468922073350349)- , (10.6908820268137070, 2.3218939328714371939)- , (3.4369121607821915, 1.082096765647714065)- , (2.2914619096171260, 0.5953971130541900747)- , (24.1273989930028883, 3.1624816269998849982)- , (14.9455957898231535, 2.6705890837495616097)- , (32.2002179941400826, 3.4563650137673369578)- , (1.7232417075599473, 0.22682264125689588496)- , (9.9662376350778192, 2.248195612105357899)- , (10.9702870318273966, 2.348920912357223223)- , (18.8934063317711676, 2.912115343761407793)- , (8.6720493874148570, 2.1013420151521415846)- , (20.4905634096258815, 2.9953645521238549954)- , (1.4654265058258678, 0.0036653372399428492921)- , (15.4401781010745509, 2.7042406258657996077)- , (13.6688064138713390, 2.5780909087521290957)- , (2.4073661551765566, 0.65668881914974130964)- , (0.8108729056729371, -0.94026521559981879328)- , (29.5024809785193902, 3.367430902728568487)- , (7.5321882978878660, 1.9513375601887514854)- , (3.3716588961200955, 1.0598414578703589939)- , (2.9310065630306474, 0.89516303667430119351)- , (7.2023118361897769, 1.9033764996201536501)- , (3.1362387322050900, 0.97520764792577085966)- , (6.5709053027851487, 1.8046329737306385788)- , (3.7348491113356177, 1.1779005641199544741)- , (1.2328105814385013, -0.24823346907893503732)- , (7.9098387372709587, 2.0035651569967258823)- , (2.8590898311999715, 0.86554629114604864082)- , (2.1964374279534344, 0.54225028515290207842)- , (3.8933394033155189, 1.2253803767351847398)- , (10.7410508007627694, 2.3268008547643748152)- , (2.4921048837305193, 0.69927782909414781809)- , (2.2101710538553756, 0.55010424351998354897)- , (14.0357118427322334, 2.6055587167248708269)- , (4.1320729121597584, 1.2929216807716104043)- , (0.2766365979680845, -3.8108738889017752527)- , (27.9448247140513644, 3.3122329205038494315)- , (9.3081256750537182, 2.1762105230057038341)- , (1.4222181352589696, -0.038843893649701873028)- , (1.5107587188614726, 0.046499571962236106726)- , (3.3467578222470555, 1.0512176183500512305)- , (12.2373583939228876, 2.4630788434421742039)- , (0.9385094944630431, -0.68317598609698348966)- , (5.8655552400886410, 1.6814385243672138603)- , (17.1377048621110468, 2.8118219246156086477)- , (4.0502102843199079, 1.2702685434611069581)- , (2.2041235084734976, 0.54665320805956585382)- , (0.9498749870396368, -0.66283138696545962354)- , (5.5020466797149687, 1.6115010556650317675)- , (1.8741725410778542, 0.33826100356492333487)- , (14.1730624058772161, 2.6156503142962224118)- , (1.0704026637921555, -0.46701211139417769802)++-- (x, p, q, exact)+tableIncompleteBetaP3000 :: [(Double,Double,Double,Double)]+tableIncompleteBetaP3000 =+ [ (0.495, 3001, 3001, 0.2192546757957825068677527085659175689142653854877723)+ , (0.501, 3001, 3001, 0.5615652382981522803424365187631195161665429270531389)+ , (0.531, 3500, 3200, 0.9209758089734407825580172472327758548870610822321278)+ , (0.501, 13500, 13200, 0.0656209987264794057358373443387716674955276089622780) ]
− tests/Tests/SpecFunctions_flymake.hs
@@ -1,206 +0,0 @@-{-# LANGUAGE ViewPatterns #-}--- | Tests for Statistics.Math-module Tests.SpecFunctions (- tests- ) where--import qualified Data.Vector as V-import Data.Vector ((!))--import Test.QuickCheck hiding (choose)-import Test.Framework-import Test.Framework.Providers.QuickCheck2--import Tests.Helpers-import Tests.SpecFunctions.Tables-import Numeric.SpecFunctions---tests :: Test-tests = testGroup "Special functions"- [ testProperty "Gamma(x+1) = x*Gamma(x) [logGamma]" $ gammaReccurence logGamma 3e-8- , testProperty "Gamma(x+1) = x*Gamma(x) [logGammaL]" $ gammaReccurence logGammaL 2e-13- , testProperty "gamma(1,x) = 1 - exp(-x)" $ incompleteGammaAt1Check- , testProperty "0 <= gamma <= 1" $ incompleteGammaInRange- , testProperty "0 <= I[B] <= 1" $ incompleteBetaInRange- -- XXX FIXME DISABLED due to failures- -- , testProperty "invIncompleteGamma = gamma^-1" $ invIGammaIsInverse- -- , testProperty "invIncompleteBeta = B^-1" $ invIBetaIsInverse- -- , testProperty "gamma - increases" $- -- \s x y -> s > 0 && x > 0 && y > 0 ==> monotonicallyIncreases (incompleteGamma s) x y- , testProperty "invErfc = erfc^-1" $ invErfcIsInverse- , testProperty "invErf = erf^-1" $ invErfIsInverse- -- Unit tests- , testAssertion "Factorial is expected to be precise at 1e-15 level"- $ and [ eq 1e-15 (factorial (fromIntegral n :: Int))- (fromIntegral (factorial' n))- |n <- [0..170]]- , testAssertion "Log factorial is expected to be precise at 1e-15 level"- $ and [ eq 1e-15 (logFactorial (fromIntegral n :: Int))- (log $ fromIntegral $ factorial' n)- | n <- [2..170]]- , testAssertion "logGamma is expected to be precise at 1e-9 level [integer points]"- $ and [ eq 1e-9 (logGamma (fromIntegral n))- (logFactorial (n-1))- | n <- [3..10000::Int]]- , testAssertion "logGamma is expected to be precise at 1e-9 level [fractional points]"- $ and [ eq 1e-9 (logGamma x) lg | (x,lg) <- tableLogGamma ]- , testAssertion "logGammaL is expected to be precise at 1e-15 level"- $ and [ eq 1e-15 (logGammaL (fromIntegral n))- (logFactorial (n-1))- | n <- [3..10000::Int]]- -- FIXME: Too low!- , testAssertion "logGammaL is expected to be precise at 1e-10 level [fractional points]"- $ and [ eq 1e-10 (logGammaL x) lg | (x,lg) <- tableLogGamma ]- -- FIXME: loss of precision when logBeta p q ≈ 0.- -- Relative error doesn't work properly in this case.- , testAssertion "logBeta is expected to be precise at 1e-6 level"- $ and [ eq 1e-6 (logBeta p q)- (logGammaL p + logGammaL q - logGammaL (p+q))- | p <- [0.1,0.2 .. 0.9] ++ [2 .. 20]- , q <- [0.1,0.2 .. 0.9] ++ [2 .. 20]- ]- , testAssertion "digamma is expected to be precise at 1e-14 [integers]"- $ digammaTestIntegers 1e-14- -- Relative precision is lost when digamma(x) ≈ 0- , testAssertion "digamma is expected to be precise at 1e-12"- $ and [ eq 1e-12 r (digamma x) | (x,r) <- tableDigamma ]- -- FIXME: Why 1e-8? Is it due to poor precision of logBeta?- , testAssertion "incompleteBeta is expected to be precise at 1e-8 level"- $ and [ eq 1e-8 (incompleteBeta p q x) ib | (p,q,x,ib) <- tableIncompleteBeta ]- , testAssertion "incompleteBeta with p > 3000 and q > 3000"- $ and [ eq 1e-11 (incompleteBeta p q x) ib | (x,p,q,ib) <-- [ (0.495, 3001, 3001, 0.2192546757957825068677527085659175689142653854877723)- , (0.501, 3001, 3001, 0.5615652382981522803424365187631195161665429270531389)- , (0.531, 3500, 3200, 0.9209758089734407825580172472327758548870610822321278)- , (0.501, 13500, 13200, 0.0656209987264794057358373443387716674955276089622780)- ]- ]- , testAssertion "choose is expected to precise at 1e-12 level"- $ and [ eq 1e-12 (choose (fromIntegral n) (fromIntegral k)) (fromIntegral $ choose' n k)- | n <- [0..300], k <- [0..n]]- ----------------------------------------------------------------- -- Self tests- , testProperty "Self-test: 0 <= range01 <= 1" $ \x -> let f = range01 x in f <= 1 && f >= 0- ]--------------------------------------------------------------------- QC tests--------------------------------------------------------------------- Γ(x+1) = x·Γ(x)-gammaReccurence :: (Double -> Double) -> Double -> Double -> Property-gammaReccurence logG ε x =- (x > 0 && x < 100) ==> (abs (g2 - g1 - log x) < ε)- where- g1 = logG x- g2 = logG (x+1)---- γ(s,x) is in [0,1] range-incompleteGammaInRange :: Double -> Double -> Property-incompleteGammaInRange (abs -> s) (abs -> x) =- x >= 0 && s > 0 ==> let i = incompleteGamma s x in i >= 0 && i <= 1---- γ(1,x) = 1 - exp(-x)--- Since Γ(1) = 1 normalization doesn't make any difference-incompleteGammaAt1Check :: Double -> Property-incompleteGammaAt1Check (abs -> x) =- x > 0 ==> (incompleteGamma 1 x + exp(-x)) ≈ 1- where- (≈) = eq 1e-13---- invIncompleteGamma is inverse of incompleteGamma-invIGammaIsInverse :: Double -> Double -> Property-invIGammaIsInverse (abs -> a) (range01 -> p) =- a > 0 && p > 0 && p < 1 ==> ( printTestCase ("a = " ++ show a )- $ printTestCase ("p = " ++ show p )- $ printTestCase ("x = " ++ show x )- $ printTestCase ("p' = " ++ show p')- $ printTestCase ("Δp = " ++ show (p - p'))- $ abs (p - p') <= 1e-12- )- where- x = invIncompleteGamma a p- p' = incompleteGamma a x---- invErfc is inverse of erfc-invErfcIsInverse :: Double -> Property-invErfcIsInverse ((*2) . range01 -> p)- = printTestCase ("p = " ++ show p )- $ printTestCase ("x = " ++ show x )- $ printTestCase ("p' = " ++ show p')- $ abs (p - p') <= 1e-14- where- x = invErfc p- p' = erfc x---- invErf is inverse of erf-invErfIsInverse :: Double -> Property-invErfIsInverse a- = printTestCase ("p = " ++ show p )- $ printTestCase ("x = " ++ show x )- $ printTestCase ("p' = " ++ show p')- $ abs (p - p') <= 1e-14- where- x = invErf p- p' = erf x- p | a < 0 = - range01 a- | otherwise = range01 a---- B(s,x) is in [0,1] range-incompleteBetaInRange :: Double -> Double -> Double -> Property-incompleteBetaInRange (abs -> p) (abs -> q) (range01 -> x) =- p > 0 && q > 0 ==> let i = incompleteBeta p q x in i >= 0 && i <= 1---- invIncompleteBeta is inverse of incompleteBeta-invIBetaIsInverse :: Double -> Double -> Double -> Property-invIBetaIsInverse (abs -> p) (abs -> q) (range01 -> x) =- p > 0 && q > 0 ==> ( printTestCase ("p = " ++ show p )- $ printTestCase ("q = " ++ show q )- $ printTestCase ("x = " ++ show x )- $ printTestCase ("x' = " ++ show x')- $ printTestCase ("a = " ++ show a)- $ printTestCase ("err = " ++ (show $ abs $ (x - x') / x))- $ abs (x - x') <= 1e-12- )- where- x' = incompleteBeta p q a- a = invIncompleteBeta p q x---- Table for digamma function:------ Uses equality ψ(n) = H_{n-1} - γ where--- H_{n} = Σ 1/k, k = [1 .. n] - harmonic number--- γ = 0.57721566490153286060 - Euler-Mascheroni number-digammaTestIntegers :: Double -> Bool-digammaTestIntegers eps- = all (uncurry $ eq eps) $ take 3000 digammaInt- where- ok approx exact = approx- -- Harmonic numbers starting from 0- harmN = scanl (\a n -> a + 1/n) 0 [1::Rational .. ]- gam = 0.57721566490153286060- -- Digamma values- digammaInt = zipWith (\i h -> (digamma i, realToFrac h - gam)) [1..] harmN---------------------------------------------------------------------- Unit tests--------------------------------------------------------------------- Lookup table for fact factorial calculation. It has fixed size--- which is bad but it's OK for this particular case-factorial_table :: V.Vector Integer-factorial_table = V.generate 2000 (\n -> product [1..fromIntegral n])---- Exact implementation of factorial-factorial' :: Integer -> Integer-factorial' n = factorial_table ! fromIntegral n---- Exact albeit slow implementation of choose-choose' :: Integer -> Integer -> Integer-choose' n k = factorial' n `div` (factorial' k * factorial' (n-k))---- Truncate double to [0,1]-range01 :: Double -> Double-range01 = abs . (snd :: (Integer, Double) -> Double) . properFraction
tests/Tests/Sum.hs view
@@ -4,54 +4,68 @@ import Control.Applicative ((<$>)) import Numeric.Sum as Sum+import Numeric.MathFunctions.Comparison import Prelude hiding (sum)-import Test.Framework (Test, testGroup)-import Test.Framework.Providers.QuickCheck2 (testProperty)+import Test.Tasty (TestTree, testGroup)+import Test.Tasty.QuickCheck import Test.QuickCheck (Arbitrary(..)) import qualified Prelude -t_sum :: ([Double] -> Double) -> [Double] -> Bool-t_sum f xs = f xs == trueSum xs+-- Test that summation result is same as exact sum. That should pass+-- if we're effectively working with quad precision+t_sum :: ([Double] -> Double) -> [Double] -> Property+t_sum f xs+ = counterexample ("APPROX = " ++ show approx)+ $ counterexample ("EXACT = " ++ show exact)+ $ counterexample ("DELTA = " ++ show (approx - exact))+ $ counterexample ("ULPS = " ++ show (ulpDistance approx exact))+ $ approx == exact+ where+ approx = f xs+ exact = trueSum xs -t_sum_error :: ([Double] -> Double) -> [Double] -> Bool-t_sum_error f xs = abs (ts - f xs) <= abs (ts - Prelude.sum xs)- where ts = trueSum xs+-- Test that summation has smaller error than naive summation or no+-- worse than given number of ulps. If we're close enough to exact+-- answer naive may get ahead+t_sum_error :: ([Double] -> Double) -> [Double] -> Property+t_sum_error f xs+ = counterexample ("APPROX = " ++ show approx)+ $ counterexample ("NAIVE = " ++ show naive)+ $ counterexample ("EXACT = " ++ show exact)+ $ counterexample ("A-EXACT = " ++ show (approx - exact))+ $ counterexample ("N-EXACT = " ++ show (naive - exact))+ $ counterexample ("ULPS[A] = " ++ show (ulpDistance approx exact))+ $ counterexample ("ULPS[N] = " ++ show (ulpDistance naive exact))+ $ abs (exact - approx) <= abs (exact - naive)+ where+ naive = Prelude.sum xs+ approx = f xs+ exact = trueSum xs -t_sum_shifted :: ([Double] -> Double) -> [Double] -> Bool+t_sum_shifted :: ([Double] -> Double) -> [Double] -> Property t_sum_shifted f = t_sum_error f . zipWith (+) badvec trueSum :: (Fractional b, Real a) => [a] -> b trueSum xs = fromRational . Prelude.sum . map toRational $ xs badvec :: [Double]-badvec = cycle [1,1e16,-1e16]--tests :: Test-tests = testGroup "Summation" [- testGroup "ID" [- -- plain summation loses precision quickly- -- testProperty "t_sum" $ t_sum (sum id)-- -- tautological tests:- -- testProperty "t_sum_error" $ t_sum_error (sum id)- -- testProperty "t_sum_shifted" $ t_sum_shifted (sum id)- ]- , testGroup "Kahan" [- -- tests that cannot pass:- -- testProperty "t_sum" $ t_sum (sum kahan)- -- testProperty "t_sum_error" $ t_sum_error (sum kahan)+badvec = cycle [1, 1e14, -1e14] - -- kahan summation only beats normal summation with large values+tests :: TestTree+tests = testGroup "Summation"+ [ testGroup "Kahan" [+ -- Kahan summation only beats naive summation when truly+ -- catastrophic cancellation occurs testProperty "t_sum_shifted" $ t_sum_shifted (sum kahan) ] , testGroup "KBN" [- testProperty "t_sum" $ t_sum (sum kbn)- , testProperty "t_sum_error" $ t_sum_error (sum kbn)+ testProperty "t_sum" $ t_sum (sum kbn)+ , testProperty "t_sum_error" $ t_sum_error (sum kbn) , testProperty "t_sum_shifted" $ t_sum_shifted (sum kbn) ] , testGroup "KB2" [- testProperty "t_sum" $ t_sum (sum kb2)- , testProperty "t_sum_error" $ t_sum_error (sum kb2)+ testProperty "t_sum" $ t_sum (sum kb2)+ , testProperty "t_sum_error" $ t_sum_error (sum kb2) , testProperty "t_sum_shifted" $ t_sum_shifted (sum kb2) ] ]
+ tests/tables/digamma.dat view
@@ -0,0 +1,100 @@+0.197201855265572601 -5.36353820668745935029747601615+0.276636597968084486 -3.81087388890177491030754285155+0.335284011077293498 -3.1124447967622667468330567897+0.524156086147752887 -1.84899606341746529768044821951+0.810872905672937128 -0.940265215599818752300070120231+0.828944092756255579 -0.900248051537504354273935908761+0.907010144606287261 -0.741527783379085906959358391336+0.938509494463043104 -0.683175986096983427084112663083+0.949874987039636798 -0.662831386965459515115038753247+1.07040266379215554 -0.467012111394177697833676022223+1.16085243250268633 -0.339820679497198485836573986862+1.18159381843396694 -0.312621263737275924710663353641+1.23281058143850131 -0.24823346907893502549890678883+1.2786090750546355 -0.193731788427783977056204734786+1.42221813525896956 -0.038843893649701872615640632517+1.46542650582586775 0.00366533723994284963834490595323+1.51075871886147262 0.0464995719622361082451139254445+1.72324170755994732 0.226822641256895899078956211385+1.87417254107785425 0.338261003564923382943928764507+1.94828004245224307 0.38887621950605425204120609915+2.07173976417593497 0.468041296907385368466598288957+2.19643742795343444 0.542250285152902084122008914803+2.20412350847349758 0.546653208059565962943473863608+2.2101710538553756 0.550104243519983636768405555283+2.29146190961712604 0.595397113054190168496841537206+2.40736615517655661 0.656688819149741350959819388008+2.4921048837305193 0.699277829094147836099148996888+2.50374418601531179 0.704990977590446164149772088594+2.75732119814048549 0.822099523787078617172802756555+2.85908983119997151 0.865546291146048711343523363417+2.93100656303064744 0.895163036674301209754294133335+3.13623873220508997 0.9752076479257708969046015033+3.25009577429910479 1.01702536990949211527269006123+3.34675782224705554 1.05121761835005134945847611956+3.37165889612009551 1.0598414578703592149680573688+3.3932538441985769 1.06726111062956277728053737266+3.43691216078219153 1.08209676564771414050742176188+3.46792132628601557 1.09250313893144797211152003168+3.47162582799585717 1.09373918612796345648547437833+3.69894636399347521 1.16682681934842484771542558119+3.7348491113356177 1.17790056411995461615245851807+3.89333940331551887 1.22538037673518477436649482656+4.05021028431990793 1.27026854346110716895135737047+4.13207291215975836 1.29292168077161050313322367267+4.1956416643620571 1.31016727718435472608971472775+4.47414653429990139 1.38241986034910726583063574044+5.32138686428738961 1.57484085749799321848744371947+5.50204667971496875 1.61150105566503189336396668933+5.66226056305425107 1.64292804476717453462817301983+5.86555524008864104 1.68143852436721396383991888714+5.97001844593193987 1.70066653384767331900906288566+6.4894496431749733 1.79115543201767262664620703721+6.57090530278514873 1.80463297373063859451634850422+7.20231183618977688 1.90337649962015369732423252434+7.36003475087720194 1.9265946441432050535516922088+7.38682051594657896 1.93048482778606341739317533547+7.53218829788786604 1.95133756018875167069535170292+7.90983873727095865 2.00356515699672615492904664867+8.67204938741485698 2.10134201515214160801903874729+9.1173553049782452 2.15433801601838351542866862711+9.2578640399661225 2.17049405387703858411650054505+9.30812567505371824 2.1762105230057042363658026808+9.43810790395640709 2.19084433985189810424955497281+9.96623763507781923 2.2481956121053579454249968661+10.0261172557341425 2.25449548341709430968524702132+10.6478950333943825 2.31767022421108863180490995716+10.6498308581562604 2.31786081342780719548728745151+10.6750266252851169 2.32033812651321861408382227283+10.6883248506773985 2.32164317428026292499726425007+10.690882026813707 2.32189393287143745191892116281+10.7410508007627694 2.32680085476437514118204346104+10.9702870318273966 2.34892091235722347964601480543+11.235745011505367 2.37393979612347785666497654903+11.4168205413938768 2.39065387769462509679455086511+12.2373583939228876 2.46307884344217456241911777262+13.1568457441413429 2.53845804959674307171479804783+13.668806413871339 2.57809090875212923177837641843+14.0357118427322334 2.6055587167248710332175559538+14.1730624058772161 2.61565031429622257130659679926+14.3373372205836365 2.62758794840986426423575493422+14.9455957898231535 2.67058908374956187451811972576+15.4401781010745509 2.70424062586579988264163166737+16.3105956379859052 2.76084689220733507123929597054+16.7950471612825254 2.7910180230044044437007734304+17.1377048621110468 2.8118219246156087324719221538+18.8934063317711676 2.91211534376140785660681168885+19.7457045917841398 2.95740033654023926429106830845+20.3998669454332315 2.99081821671881165020641919936+20.4905634096258815 2.99536455212385500538854033731+20.530317768699792 2.99735082052488125727009668569+21.4416006516504787 3.04183261449332856756203712284+21.8943170241258827 3.06321632391904530637570065709+24.1273989930028883 3.1624816269998852320903875449+24.7013029455164919 3.18647759077499208125237209655+27.9448247140513644 3.31223292050384944876144363468+28.5703089405901878 3.33476526501016588303429632363+29.5024809785193902 3.36743090272856852624133851041+30.4956621109554185 3.40109907559136890345335719191+32.2002179941400826 3.4563650137673370556437148476+47.6946291432301663 3.85429880228581328950508489245
+ tests/tables/erf.dat view
@@ -0,0 +1,68 @@+-3 -0.99997790950300141455862722387+-2.5 -0.99959304798255504106043578426+-2.39999999999999991 -0.99931148610335492111445002519+-2.29999999999999982 -0.998856823402643347524080071797+-2.20000000000000018 -0.998137153702018110141441361147+-2.10000000000000009 -0.997020533343667015714309417558+-2 -0.995322265018952734162069256367+-1.89999999999999991 -0.992790429235257467237215967132+-1.80000000000000004 -0.989090501635730716146239560398+-1.69999999999999996 -0.983790458590774560841312945809+-1.60000000000000009 -0.976348383344644015521780192085+-1.5 -0.966105146475310727066976261646+-1.39999999999999991 -0.952285119762648796399623216609+-1.30000000000000004 -0.934007944940652445850185361578+-1.19999999999999996 -0.910313978229635368365931793847+-1.10000000000000009 -0.880205069574081729657259509256+-1 -0.842700792949714869341220635083+-0.900000000000000022 -0.79690821242283213966466616034+-0.800000000000000044 -0.742100964707660512589787355613+-0.699999999999999956 -0.677801193837418442276858154351+-0.599999999999999978 -0.603856090847925905082306758574+-0.5 -0.520499877813046537682746653892+-0.400000000000000022 -0.428392355046668476454109627308+-0.299999999999999989 -0.328626759459127416189617985318+-0.200000000000000011 -0.222702589210478466176453031209+-0.100000000000000006 -0.112462916018284898404712251014+-0.0800000000000000017 -0.0900781258410181625905329636245+-0.0599999999999999978 -0.0676215943933084395829299907792+-0.0400000000000000008 -0.0451111061451247530278113625549+-0.0200000000000000004 -0.0225645746918449446939601857765+0 0.0+1.00000000000000006e-09 0.0000000011283791670955126437972828086+1.00000000000000002e-08 0.0000000112837916709551255989210176294+9.99999999999999955e-08 0.000000112837916709550876157098069735+9.99999999999999955e-07 0.00000112837916709513639644583929108+1.00000000000000008e-05 0.0000112837916705790002729896536198+0.000100000000000000005 0.000112837916333424874893546334052+0.00100000000000000002 0.00112837879096923640343756413937+0.0200000000000000004 0.0225645746918449446939601857765+0.0400000000000000008 0.0451111061451247530278113625549+0.0599999999999999978 0.0676215943933084395829299907792+0.0800000000000000017 0.0900781258410181625905329636245+0.100000000000000006 0.112462916018284898404712251014+0.200000000000000011 0.222702589210478466176453031209+0.299999999999999989 0.328626759459127416189617985318+0.400000000000000022 0.428392355046668476454109627308+0.5 0.520499877813046537682746653892+0.599999999999999978 0.603856090847925905082306758574+0.699999999999999956 0.677801193837418442276858154351+0.800000000000000044 0.742100964707660512589787355613+0.900000000000000022 0.79690821242283213966466616034+1 0.842700792949714869341220635083+1.10000000000000009 0.880205069574081729657259509256+1.19999999999999996 0.910313978229635368365931793847+1.30000000000000004 0.934007944940652445850185361578+1.39999999999999991 0.952285119762648796399623216609+1.5 0.966105146475310727066976261646+1.60000000000000009 0.976348383344644015521780192085+1.69999999999999996 0.983790458590774560841312945809+1.80000000000000004 0.989090501635730716146239560398+1.89999999999999991 0.992790429235257467237215967132+2 0.995322265018952734162069256367+2.10000000000000009 0.997020533343667015714309417558+2.20000000000000018 0.998137153702018110141441361147+2.29999999999999982 0.998856823402643347524080071797+2.39999999999999991 0.99931148610335492111445002519+2.5 0.99959304798255504106043578426+3 0.99997790950300141455862722387
+ tests/tables/erfc-large.dat view
@@ -0,0 +1,9 @@+2.10000000000000009 0.00297946665633298428569058244218+2.20000000000000018 0.00186284629798188985855863885328+2.29999999999999982 0.00114317659735665247591992820336+2.39999999999999991 0.000688513896645078885549974809715+2.5 0.000406952017444958939564215739975+3 0.0000220904969985854413727761295823+3.5 0.000000743098372341412745523683756096+11 1.44086613794369468033980970286e-54+23 4.44126594808805724407488442895e-232
+ tests/tables/erfc.dat view
@@ -0,0 +1,56 @@+-3 1.99997790950300141455862722387+-2.5 1.99959304798255504106043578426+-2.39999999999999991 1.99931148610335492111445002519+-2.29999999999999982 1.9988568234026433475240800718+-2.20000000000000018 1.99813715370201811014144136115+-2.10000000000000009 1.99702053334366701571430941756+-2 1.99532226501895273416206925637+-1.89999999999999991 1.99279042923525746723721596713+-1.80000000000000004 1.9890905016357307161462395604+-1.69999999999999996 1.98379045859077456084131294581+-1.60000000000000009 1.97634838334464401552178019208+-1.5 1.96610514647531072706697626165+-1.39999999999999991 1.95228511976264879639962321661+-1.30000000000000004 1.93400794494065244585018536158+-1.19999999999999996 1.91031397822963536836593179385+-1.10000000000000009 1.88020506957408172965725950926+-1 1.84270079294971486934122063508+-0.900000000000000022 1.79690821242283213966466616034+-0.800000000000000044 1.74210096470766051258978735561+-0.699999999999999956 1.67780119383741844227685815435+-0.599999999999999978 1.60385609084792590508230675857+-0.5 1.52049987781304653768274665389+-0.400000000000000022 1.42839235504666847645410962731+-0.299999999999999989 1.32862675945912741618961798532+-0.200000000000000011 1.22270258921047846617645303121+-0.100000000000000006 1.11246291601828489840471225101+-0.0800000000000000017 1.09007812584101816259053296362+-0.0599999999999999978 1.06762159439330843958292999078+-0.0400000000000000008 1.04511110614512475302781136255+-0.0200000000000000004 1.02256457469184494469396018578+0 1.0+0.0200000000000000004 0.977435425308155055306039814223+0.0400000000000000008 0.954888893854875246972188637445+0.0599999999999999978 0.932378405606691560417070009221+0.0800000000000000017 0.909921874158981837409467036376+0.100000000000000006 0.887537083981715101595287748986+0.200000000000000011 0.777297410789521533823546968791+0.299999999999999989 0.671373240540872583810382014682+0.400000000000000022 0.571607644953331523545890372692+0.5 0.479500122186953462317253346108+0.599999999999999978 0.396143909152074094917693241426+0.699999999999999956 0.322198806162581557723141845649+0.800000000000000044 0.257899035292339487410212644387+0.900000000000000022 0.20309178757716786033533383966+1 0.157299207050285130658779364917+1.10000000000000009 0.119794930425918270342740490744+1.19999999999999996 0.0896860217703646316340682061529+1.30000000000000004 0.0659920550593475541498146384224+1.39999999999999991 0.047714880237351203600376783391+1.5 0.0338948535246892729330237383541+1.60000000000000009 0.0236516166553559844782198079153+1.69999999999999996 0.0162095414092254391586870541911+1.80000000000000004 0.0109094983642692838537604396016+1.89999999999999991 0.0072095707647425327627840328679+2 0.00467773498104726583793074363275+2.0009765625 0.00465759175242884900812001805563
+ tests/tables/expm1.dat view
@@ -0,0 +1,13 @@+-0.100000000000000006 -0.0951625819640404318586076157831+-0.0100000000000000002 -0.00995016625083194663218954549896+-0.00100000000000000002 -0.000999500166625008352740518267226+-0.000100000000000000005 -0.00009999500016666250487502635345+-1.00000000000000008e-05 -0.00000999995000016666706802319220777+-9.99999999999999955e-07 -0.000000999999500000166621373157086085+0 0.0+9.99999999999999955e-07 0.00000100000050000016662145639991564+1.00000000000000008e-05 0.0000100000500001666679013728861547+0.000100000000000000005 0.000100005000166670838209320899283+0.00100000000000000002 0.0010005001667083416888932627983+0.0100000000000000002 0.0100501670841680577524243853135+0.100000000000000006 0.105170918075647630946638823459
+ tests/tables/factorial.dat view
@@ -0,0 +1,20000 @@+0 0.0+1 0.0+2 0.693147180559945309417232121458+3 1.79175946922805500081247735838+4 3.1780538303479456196469416013+5 4.78749174278204599424770093452+6 6.5792512120101009950601782929+7 8.52516136106541430016553103635+8 10.6046029027452502284172274007+9 12.8018274800814696112077178746+10 15.1044125730755152952257093293+11 17.5023078458738858392876529072+12 19.9872144956618861495173623871+13 22.5521638531234228855708498286+14 25.1912211827386815000934346935+15 27.8992713838408915660894392637+16 30.6718601060806728037583677495+17 33.5050734501368888840079023674+18 36.3954452080330535762156249627+19 39.3398841871994940362246523946+20 42.3356164607534850296598759707+21 45.3801388984769080261604739511+22 48.4711813518352238796396496505+23 51.6066755677643735704464024823+24 54.7847293981123191900933440836+25 58.0036052229805199392948627501+26 61.2617017610020019847655823131+27 64.5575386270063310589513180238+28 67.8897431371815349828911350102+29 71.2570389671680090100744070426+30 74.6582363488301643854876437342+31 78.0922235533153106314168080587+32 81.557959456115037178502968666+33 85.0544670175815174139601574809+34 88.5808275421976788036269242202+35 92.1361756036870924833330362969+36 95.7196945421432024849579910137+37 99.3306124547874269293260866847+38 102.968198614513812698752346238+39 106.631760260643459126201078917+40 110.320639714757395429053534614+41 114.034211781461703232920297987+42 117.771881399745071538838128089+43 121.533081515438633962310970602+44 125.317271149356895125207378423+45 129.12393363912721488259862823+46 132.952575035616309882822613184+47 136.802722637326368469643563853+48 140.673923648234259398707737576+49 144.565743946344886008918443063+50 148.477766951773032067537193851+51 152.409592584497357839181973706+52 156.36083630307878519406992539+53 160.331128216630907028214394529+54 164.320112263195181411817362361+55 168.327445448427652330480065273+56 172.35279713916280156383711438+57 176.395848406997351715241387049+58 180.456291417543771051841891203+59 184.533828861449490502457941577+60 188.62817342367159118728841039+61 192.739047287844902436039799493+62 196.866181672889993991386195939+63 201.009316399281526679282039157+64 205.168199482641198535785431885+65 209.34258675253683564643967866+66 213.532241494563261191314099596+67 217.736934113954227250984171593+68 221.956441819130333950068170454+69 226.190548323727593332270168522+70 230.43904356577695232139351272+71 234.701723442818267742722967253+72 238.978389561834323053765154091+73 243.268849002982714182857262949+74 247.572914096186883936642590741+75 251.890402209723194377239354644+76 256.221135550009525456082846319+77 260.564940971863209305250142641+78 264.921649798552801042116107441+79 269.291097651019822536289052982+80 273.673124285693704148558740801+81 278.067573440366142914139721749+82 282.474292687630396027423717243+83 286.893133295426993950899189467+84 291.32395009427030756623425169+85 295.766601350760624021084545641+86 300.220948647014131753974620276+87 304.686856765668715472553137545+88 309.164193580146921944866777487+89 313.652829949879061783184593028+90 318.152639620209326849993074957+91 322.663499126726176891151915142+92 327.185287703775217200793132216+93 331.717887196928473138117541778+94 336.261181979198477034355724569+95 340.815058870799017868965511334+96 345.379407062266854107446917178+97 349.9541180407702369295636388+98 354.539085519440808849191576408+99 359.13420536957539877604401046+100 363.73937555556349014407999337+101 368.354496072404749594964191637+102 372.979468885689020676026203613+103 377.614197873918656446794805928+104 382.258588773060029111099989734+105 386.912549123217552482201347047+106 391.575988217329619625763048308+107 396.248817051791525799067447125+108 400.930948278915745492087647079+109 405.622296161144889192464963531+110 410.322776526937305420544898563+111 415.032306728249639556308239471+112 419.750805599544734099082520701+113 424.478193418257074667664652194+114 429.214391866651570128486156985+115 433.95932399501482019389366915+116 438.712914186121184839911405425+117 443.47508812091894095875538334+118 448.245772745384605718788665835+119 453.024896238496135104143553197+120 457.812387981278181098391254131+121 462.608178526874922186515141287+122 467.412199571608178744683762512+123 472.224383926980596239945771122+124 477.04466549258563310470939969+125 481.872979229887934228511677689+126 486.709261136839412225824753028+127 491.553448223298003498872193836+128 496.405478487217620664792818686+129 501.265290891579292779660906436+130 506.132825342034875199732385332+131 511.008022665236026743881809344+132 515.890824587822397598173462401+133 520.781173716044151363287842577+134 525.679013515995062732375146695+135 530.584288294433492181161641739+136 535.496943180169544189662872721+137 540.416924105997669104978062849+138 545.344177791154873796597293039+139 550.278651724285565553786077958+140 555.220294146894869852326654277+141 560.169054037273038130542850184+142 565.124881094874298861289536838+143 570.087725725134206141404967858+144 575.057539024710206761864386817+145 580.034272767130781163648418183+146 585.017879388839117602157759162+147 590.008311975617853903763709886+148 595.0055242493819689669662698+149 600.009470555327428107958698075+150 605.020105849423683857972694099+151 610.037385686238608186768930399+152 615.061266207084884575029654195+153 620.091704128477320038069679287+154 625.12865673089094919665420773+155 630.172081847810195817184131388+156 635.221937855059732863467328309+157 640.278183660408040920891773545+158 645.340778693435007724481951208+159 650.409682895655239250021665584+160 655.484856710889066171708585525+161 660.5662610758735291676206911+162 665.653857411105913242618904169+163 670.747607611912675576683836535+164 675.847474039736873999385064151+165 680.953419513637454609443012299+166 686.065407301993997842335716644+167 691.183401114410752949595467421+168 696.307365093814011874347761766+169 701.437263808737085346454736649+170 706.573062245787347110722262721+171 711.714725802290006953521780627+172 716.862220279103459995829087383+173 722.015511873601238942762587772+174 727.174567172815767970758337162+175 732.339353146739282025065208572+176 737.509837141777433806796080636+177 742.685986874351262948807376247+178 747.867770424643348096542423909+179 753.055156230484103092720228339+180 758.248113081374313468945942389+181 763.446610112640139215785029428+182 768.650616799716934566361101734+183 773.860102952558355506507736074+184 779.075038710167341125566185271+185 784.295394535245665944535040275+186 789.521141208958867191276681958+187 794.752249825813453815588160154+188 799.988691788643403021243575066+189 805.23043880370304540053466352+190 810.477462875863531544561682407+191 815.729736303910161417411632359+192 820.987231675937942965310270325+193 826.249921864842828517165201378+194 831.517780023906156648699155121+195 836.790779582469903450748647133+196 842.068894241700420679793816863+197 847.352097970438409186573614192+198 852.640365001132944422843280365+199 857.933669825857436818253401657+200 863.231987192405473495706616688+201 868.535292100464549246771933921+202 873.84355979786575400707336431+203 879.156765776907541339361989086+204 884.474885770751757729841233183+205 889.79789574989016590830875589+206 895.125771918679746988494590326+207 900.458490711945116062091833632+208 905.796028791646434035814249559+209 911.138363043611245039885220569+210 916.485470574328713720403810004+211 921.83732870780478021614576627+212 927.193914982476792669124699651+213 932.555207148186217781849399421+214 937.921183163208069264571030359+215 943.291821191335732062644632206+216 948.667099599019897065082064281+217 954.046996952560356616116581349+218 959.431492015349445625911129923+219 964.820563745165946446398484017+220 970.214191291518307983895651171+221 975.612353993036060800198673231+222 981.01503137490834024537924626+223 986.42220314636845900401535147+224 991.833849198223498856206864821+225 997.249949600427918988198873961+226 1002.67048459970020486619823758+227 1008.09543461718160754121161915+228 1013.52478024613604831145035606+229 1018.95850224969028795989159167+230 1024.39658155861348333471633595+231 1029.83899926913527687527887751+232 1035.28573664080158683071384591+233 1040.73677509436728739601607078+234 1046.19209620972498882427728082+235 1051.65168172386914778569899082+236 1057.11551352889475785514950544+237 1062.58357367002988904071769622+238 1068.0558443437013637354898157+239 1073.5323078956328744024529793+240 1079.01294681897486570611791235+241 1084.49774375246552070158432367+242 1089.98668147862220709912544295+243 1095.47974292196275555610166913+244 1100.97691114725595742368752248+245 1106.4781693578006844084989873+246 1111.98350089373304721317822803+247 1117.4928892303610244092407429+248 1123.00631797652600658342160359+249 1128.52377087299071419829232105+250 1134.04523179085296063151183117+251 1139.57068472998474451773041641+252 1145.10011381749616782446072387+253 1150.63350330622368805932942028+254 1156.17083757324222464179409321+255 1161.7121011184006507880396324+256 1167.25727856288021326337748937+257 1172.80635464777543306172928369+258 1178.35931423269705048601460356+259 1183.91614229439658823548805197+260 1189.47682392541211596497676299+261 1195.0413443327348093749505255+262 1200.60968883649590622851718163+263 1206.18184286867367077960310789+264 1211.75779197181998694331199307+265 1217.33752179780620915205722155+266 1222.92101810658790822658883384+267 1228.50826676498815775630189462+268 1234.09925374549901443480643086+269 1239.69396512510085354102638404+270 1245.29238708409922829923011121+271 1250.89450590497892919932698128+272 1256.50030797127492651724544438+273 1262.1097797664598862497995298+274 1267.72290787284795647453195205+275 1273.3396789705145277677954143+276 1278.96007983623167776883187661+277 1284.58409734241901626870127416+278 1290.2117184561096533353072912+279 1295.842930237931018964026946+280 1301.47771984110026857198475444+281 1307.11607451043401433709139276+282 1312.75798158137212792472482079+283 1318.40342847901536554937080794+284 1324.05240271717657158953472671+285 1329.70489189744522211553975872+286 1335.36088370826507470507242186+287 1341.02036592402469581404453797+288 1346.68332640416064174392118905+289 1352.34975309227307390442025829+290 1358.01963401525359361562152178+291 1363.69295728242508612913348864+292 1369.36971108469336787706006174+293 1375.049883693710435182999902+294 1380.73346346104911679402308484+295 1386.42043881738893661923989455+296 1392.11079827171299699185968659+297 1397.80453041051569661010736588+298 1403.50162389702110106051702627+299 1409.20206747041178748737726655+300 1414.90584994506798854680849469+301 1420.61296020981686427538668995+302 1426.32338722719173391360015837+303 1432.03712003270110305587960187+304 1437.75414773410732475355755779+305 1443.47445951071473637690970623+306 1449.19804461266711714936696344+307 1454.92489236025431430296542601+308 1460.65499214322788877096718657+309 1466.38833342012563423313103412+310 1472.1249057176048261630781899+311 1477.86469862978406029727418547+312 1483.60770181759354265297461451+313 1489.35390500813369586965337982+314 1495.10329799404194923649505718+315 1500.85587063286758229899165973+316 1506.61161284645449441199906951+317 1512.37051462033177502619883168+318 1518.13256600311195186115577818+319 1523.89775710589679643240099379+320 1529.66607810169056866350514585+321 1535.43751922482058452820478991+322 1541.2120707703649928335341276+323 1546.98972309358764937379268965+324 1552.77046660937997875820813484+325 1558.55429179170971624346314095+326 1564.34118917307642388694530544+327 1570.13114934397367727871786713+328 1575.92416295235782101083632687+329 1581.72022070312319290276263028+330 1587.51931335758371882223781055+331 1593.32143173296078172302242739+332 1599.12656670187727026533236386+333 1604.93470919185771409249095+334 1610.7458501848344145091679329+335 1616.55998071665948094343876423+336 1622.37709187662268517760829069+337 1628.19717480697504690211315725+338 1634.02022070245806568363736425+339 1639.84622080983851594361474098+340 1645.67516642744872301729949918+341 1651.50704890473223980729060708+342 1657.34185964179484495950735711+343 1663.17959008896078487482341534+344 1669.02023174633418322654795422+345 1674.86377616336554298335071162+346 1680.71021493842326723970144413+347 1686.55953971837012643205512097+348 1692.41174219814460076946810249+349 1698.26681412034702793266758401+350 1704.12474727483048729639168754+351 1709.98553349829635310663091069+352 1715.84916467389445019777901488+353 1721.71563273082774696517473499+354 1727.58492964396152141660326273+355 1733.45704743343693721253347659+356 1739.33197816428896766968575638+357 1745.20971394606860674643588897+358 1751.09024693246930705203092553+359 1756.97356932095758592507901841+360 1762.85967335240774161072196458+361 1768.74855131074062253074001945+362 1774.64019552256639358699633861+363 1780.534598356831244366515471+364 1786.43175222446798502650877543+365 1792.33164957805047653020164362+366 1798.23428291145184277976551008+367 1804.13964475950641305138494202+368 1810.04772769767534397986062334+369 1815.95852434171587116651787718+370 1821.87202734735414129490396431+371 1827.78822940996157643415378619+372 1833.70712326423472299031266+373 1839.6287016838785385316483946+374 1845.55295748129307046537710492+375 1851.47988350726348128057462816+376 1857.40947265065337579564727519+377 1863.34171783810138655888403466+378 1869.27661203372097424759235524+379 1875.21414823880340059540959182+380 1881.15431949152383204885384283+381 1887.09711886665053301329652888+382 1893.04253947525710819556371095+383 1898.99057446443775418555676549+384 1904.94121701702548104287263557+385 1910.89446035131326526664069123+386 1916.8502977207780961279128544+387 1922.80872241380787793417618739+388 1928.76972775343115137512737325+389 1934.73330709704959766797599349+390 1940.69945383617328977944271762+391 1946.66816139615865555049900507+392 1952.63942323594911808896140692+393 1958.61323284781837932450607617+394 1964.58958375711631314070310562+395 1970.5684695220174350094768105+396 1976.54988373327191555516370879+397 1982.53382001395910596824714082+398 1988.52027201924354367307449423+399 1994.50923343613340712958411965+400 2000.5006979832413891164545668+401 2006.49465941054795830230524589+402 2012.49111149916697936278779524+403 2018.49004806111366234477044701+404 2024.49146293907481241448910952+405 2030.4953500061813515546708498+406 2036.50170316578308419637670669+407 2042.51051635122567918480674594+408 2048.52178352562984088470322216+409 2054.53549868167264263041674437+410 2060.5516558413709961183014992+411 2066.57024905586723072501193456+412 2072.59127240521675711461500112+413 2078.61471999817778987033640424+414 2084.64058597200310425335087967+415 2090.66886449223380255142711122+416 2096.69954975249506583456675927+417 2102.73263597429386728315078943+418 2108.76811740681862359663899256+419 2114.80598832674076132767192648+420 2120.84624303801817531760774804+421 2126.88887587170055673519646427+422 2132.93388118573656854035565265+423 2138.9812533647828465099670938+424 2145.0309868200148042723632593+425 2151.08307598893922110181431258+426 2157.13751533520859152395624448+427 2163.19429934843721607781298632+428 2169.25342254401901286995184938+429 2175.31487946294702984146252564+430 2181.37866467163463794895335961+431 2187.44477276173838573670102641+432 2193.51319834998249604855569061+433 2199.58393607798498589527597518+434 2205.65698061208539075572772437+435 2211.73232664317407484890700098+436 2217.80996888652310916811878167+437 2223.88990208161869931893456193+438 2229.97212099199514544883914815+439 2236.05662040507031679883236028+440 2242.14339513198262364574675955+441 2248.23244000742946963874795552+442 2254.3237498895071677644682097+443 2260.41731965955230340255421695+444 2266.51314422198452815715202211+445 2272.61121850415076837007059698+446 2278.71153745617083243812393431+447 2284.81409605078440127051160782+448 2290.91888928319938643212035329+449 2297.02591217094164072537387509+450 2303.13515975370600616678311635+451 2309.2466270932086845147118233+452 2315.36030927304091570212841903+453 2321.47620139852394972231990057+454 2327.59429859656529770675051427+455 2333.71459601551624812251011379+456 2339.83708882503063420216608282+457 2345.9617722159248389013592142+458 2352.08864140003902385921768193+459 2358.21769161009956901365295226+460 2364.34891809958270969789492866+461 2370.48231614257935821626765386+462 2376.61788103366109706624742754+463 2382.75560808774733114032727472+464 2388.89549263997358640517947524+465 2395.03753004556094271710464413+466 2401.18171567968658859182410113+467 2407.32804493735548590335363242+468 2413.47651323327313264103207457+469 2419.62711600171941200580749931+470 2425.77984869642351627664644144+471 2431.93470679043993402546613191+472 2438.09168577602548940433387865+473 2444.25078116451742237186866474+474 2450.41198848621249886685408764+475 2456.57530329024714007606463374+476 2462.74072114447856008025398534+477 2468.90823763536690129718894496+478 2475.07784836785835727356934067+479 2481.2495489652692725086860185+480 2487.42333506917120912176818368+481 2493.59920233927697030218976679+482 2499.77714645332757060707341023+483 2505.95716310698014329438076105+484 2512.13924801369677500133911245+485 2518.3233969046342581980565934+486 2524.50960552853475196445005171+487 2530.69786965161734175517996254+488 2536.88818505747048893218304801+489 2543.08054754694536095764322561+490 2549.27495293805003325187192255+491 2555.47139706584455383060611287+492 2561.66987578233686194470258573+493 2567.87038495637955205213539238+494 2574.07292047356747455761513937+495 2580.27747823613616485906833276+496 2586.48405416286109234266642557+497 2592.69264418895772106910123284+498 2598.90324426598237399338918243+499 2605.11585036173389265867427356+500 2611.33045846015608440131101581+501 2617.54706456124094919996601182+502 2623.76566468093267839560182918+503 2629.9862548510324176020205903+504 2636.20883111910378621816812988+505 2642.43338954837914604365308748+506 2648.65992621766661158793901601+507 2654.88843722125779475144123613+508 2661.11891866883627664332314118+509 2667.35136668538679938615800504+510 2673.58577741110517084182077635+511 2679.82214700130887527601823795+512 2686.06047162634838306077332704+513 2692.30074747151915259496809018+514 2698.54297073697431770273711662+515 2704.78713763763805384810647827+516 2711.03324440311961658180903026+517 2717.28128727762804571269192451+518 2723.53126251988752877158260504+519 2729.78316640305341740991135067+520 2736.03699521462889044881729381+521 2742.29274525638225736690618951+522 2748.55041284426489608629718414+523 2754.80999430832981898710732732+524 2761.07148599265086115009121557+525 2767.33488425524248489579333222+526 2773.60018546798019475629649061+527 2779.86738601652155708247518955+528 2786.13648230022781855560130685+529 2792.40747073208611793721481251+530 2798.68034773863228545537727311+531 2804.95510975987422428878381395+532 2811.23175324921586867273265837+533 2817.51027467338171321265290919+534 2823.79067051234190805178320209+535 2830.07293725923791459968836024+536 2836.3570714203087165876101286+537 2842.64306951481758127518317826+538 2848.93092807497936569082036357+539 2855.22064364588836284509301263+540 2861.51221278544668291271397192+541 2867.80563206429316443428415753+542 2874.10089806573281064379825972+543 2880.398007385666746082032592+544 2886.69695663252268870936828723+545 2892.99774242718593278434636301+546 2899.30036140293083782631768055+547 2905.60481020535281903195041318+548 2911.91108549230083456610006755+549 2918.21918393381036519764194712+550 2924.52910221203688180032264149+551 2930.84083702118979628751494095+552 2937.15438506746689159796863539+553 2943.46974306898922639724693367+554 2949.78690775573651020653356334+555 2956.10587586948294471689766358+556 2962.42664416373352709292091275+557 2968.74920940366081111483233968+558 2975.0735683660421220529692266+559 2981.39971783919722121249555656+560 2987.72765462292641612987059712+561 2994.05737552844911244557732055+562 3000.388877378342803520101191+563 3006.72215700648249390210202799+564 3013.05721125798055279915268814+565 3019.39403698912699374233557896+566 3025.73263106733017667639879823+567 3032.07299037105792874708513192+568 3038.41511178977908009666628282+569 3044.75899222390541101764846763+570 3051.10462858473400685307073175+571 3057.45201779439001706980069795+572 3063.80115678576981496875059321+573 3070.1520425024845545329957884+574 3076.50467189880412095138513664+575 3082.85904193960147139139340814+576 3089.21514960029736263068729134+577 3095.57299186680546219216386665+578 3101.932565735477839662080168+579 3108.29386821305083490533034429+580 3114.6568963165912999259488399+581 3121.02164707344321115452966487+582 3127.38811752117464897745886385+583 3133.75630470752514135566527657+584 3140.12620569035336841300908179+585 3146.49781753758522490645381904+586 3152.87113732716223752181089142+587 3159.24616214699033397011119192+588 3165.62288909488896089055160689+589 3172.00131527854054759648979864+590 3178.38143781544031273112384047+591 3184.76325383284641092929888304+592 3191.14676046773041661133590719+593 3197.53195486672814206388252694+594 3203.91883418609078699154743835+595 3210.30739559163641675150308504+596 3216.69763625870176651132997756+597 3223.08955337209436859813534409+598 3229.48314412604500033441281648+599 3235.87840572416044968322301566+600 3242.27533537937659605207147592+601 3248.67393031391180363134455643+602 3255.07418775922062466933998381+603 3261.47610495594781011180054628+604 3267.87967915388262505943124682+605 3274.28490761191346652215589331+606 3280.69178759798278097385256894+607 3287.10031638904227923600254117+608 3293.51049127100844624309772921+609 3299.92230953871834326678159922+610 3306.33576849588570019955097978+611 3312.75086545505729552242541789+612 3319.16759773756962160429990723+613 3325.58596267350583300373963982+614 3332.00595760165297546675533451+615 3338.42757986945949333661810245+616 3344.85082683299301311403709514+617 3351.27569585689840092803466682+618 3357.70218431435609169961574649+619 3364.13028958704068780184378188+620 3370.56000906507982504120816978+621 3376.99134014701330380620065832+622 3383.42428023975248324981388601+623 3389.85882675853993639323705429+624 3396.29497712690936405835471546+625 3402.73272877664576555675775279+626 3409.17207914774586408285375022+627 3415.61302568837878477831996647+628 3422.05556585484698345457887595+629 3428.49969711154742397919650624+630 3434.94541693093300235111034091+631 3441.39272279347421550838907894+632 3447.84161218762107293081372085+633 3454.29208260976524911795092235+634 3460.74413156420247504156791664+635 3467.19775656309516668921611678+636 3473.6529551264352888335902954+637 3480.10972478200745217985448833+638 3486.56806306535224206051693606+639 3493.02796751972977686463688107+640 3499.48943569608349440515826525+641 3505.95246515300416444499167179+642 3512.41705345669412561910854797+643 3518.88319818093174500637311647+644 3525.35089690703609862111968629+645 3531.82014722383187111058853337+646 3538.29094672761447296026432754+647 3544.76329302211537352491939676+648 3551.23718371846764821875207407+649 3557.71261643517173821343006802+650 3564.18958879806142100810230625+651 3570.66809844026999025053206856+652 3577.14814300219664320343146516+653 3583.62972013147307426484441624+654 3590.11282748293027296603421005+655 3596.59746271856552488478439339+656 3603.08362350750961392632008525+657 3609.57130752599422443820268458+658 3616.06051245731954163954622012+659 3622.55123599182204885875009397+660 3629.04347582684252008764250636+661 3635.53722966669420637348319595+662 3642.03249522263121458368504491+663 3648.5292702128170770913833122+664 3655.02755236229351094311048079+665 3661.5273394029493650828256203+666 3668.02862907348975421940143857+667 3674.53141911940537793739146343+668 3681.03570729294202366348567845+669 3687.5414913530702521135170289+670 3694.04876906545526385720509235+671 3700.55753820242694565001842503+672 3707.06779654295009519360518362+673 3713.57954187259482299818409478+674 3720.09277198350713003210619346+675 3726.60748467437965985549344783+676 3733.12367775042262394643488696+677 3739.6413490233348989396755789+678 3746.16049631127529450907018775+679 3752.68111743883399063629226211+680 3759.20321023700414301939425243+681 3765.72677254315365538580287924+682 3772.25180220099711748521121927+683 3778.77829706056790754859406441+684 3785.30625497819045801022804656+685 3791.83567381645268330014399602+686 3798.36655144417856852487728638+687 3804.89888573640091786471376722+688 3811.43267457433426152585553822+689 3817.9679158453479200960534948+690 3824.50460744293922516227348432+691 3831.04274726670689505888124239+692 3837.58233322232456462464920702+693 3844.12336322151446785660699382+694 3850.66583518202127235837790278+695 3857.20974702758606449016744704+696 3863.75509668792048413699766067+697 3870.30188209868100802111395866+698 3876.85010120144338049373067231+699 3883.39975194367719075042814242+700 3889.95083227872059542356947807+701 3896.50334016575518551406982649+702 3903.05727356978099663372628177+703 3909.61263046159166153810340487+704 3916.16940881774970393866874118+705 3922.72760662056197259148569642+706 3929.28722185805521466829864866+707 3935.84825252395178742428819967+708 3942.41069661764550718513395952+709 3948.97455214417763468429915658+710 3955.53981711421299578964660256+711 3962.10648954401623666661003858+712 3968.67456745542821243317955048+713 3975.24404887584250836991546764+714 3981.81493183818209275608283236+715 3988.38721438087610041079902271+716 3994.96089454783674602581129139+717 4001.53597038843636638416970022+718 4008.11243995748459056663502522+719 4014.69030131520563725516151129+720 4021.26955252721573825022168958+721 4027.85019166450068732609564464+722 4034.43221680339351355553093162+723 4041.01562602555227824239258818+724 4047.60041741793799460806613946+725 4054.18658907279266938445093016+726 4060.77413908761746547338729467+727 4067.36306556515098483929974764+728 4073.95336661334767080871028419+729 4080.54504034535632895708175561+730 4087.13808487949876577019185592+731 4093.73249833924854427391423306+732 4100.32827885320985583289533164+733 4106.92542455509650732516448034+734 4113.5239335837110229062011444+735 4120.12380408292385958240785446+736 4126.72503420165273582030076789+737 4133.32762209384207242403278347+738 4139.93156591844254492010726944+739 4146.53686383939074669432442831+740 4153.14351402558896213212774756+741 4159.75151465088504901958550767+742 4166.36086389405242946825256167+743 4172.97155993877018863311118051+744 4179.58360097360328049868728644+745 4186.19698519198284001428047405+746 4192.81171079218660086503344077+747 4199.42777597731941817129940347+748 4206.04517895529389541444534591+749 4212.66391793881111489285509747+750 4219.28399114534147101746985283+751 4225.90539679710560576172536623+752 4232.52813312105544558621524539+753 4239.15219834885533916382907586+754 4245.77759071686329523648306746+755 4252.40430846611231993988006309+756 4259.03234984229185293800561579+757 4265.66171309572930171428794156+758 4272.29239648137167337152241027+759 4278.92439825876730329778635191+760 4285.55771669204768006064783504+761 4292.19235004990936589700321379+762 4298.82829660559601217086313196+763 4305.46555463688046917634580115+764 4312.10412242604698966803021535+765 4318.74399825987352550567099977+766 4325.38518042961411680508128643+767 4332.02766723098137299175082424+768 4338.67145696412904515848392645+769 4345.3165479336346891330162833+770 4351.96293844848241866620157108+771 4358.61062682204574815594861063+772 4365.25961137207052432663800592+773 4371.90989042065794628825415749+774 4378.56146229424767340393472259+775 4385.21432532360102039906540559+776 4391.86847784378423914943382357+777 4398.52391819415188659030251722+778 4405.18064471833027819256836958+779 4411.83865576420102645644416038+780 4418.49794968388466387732811664+781 4425.15852483372434984271951475+782 4431.82037957426966092319303432+783 4438.48351227026046402456204206+784 4445.14792129061087187244167603+785 4451.8136050083932803044668806+786 4458.48056180082248684942878197+787 4465.14879004923989007656535942+788 4471.81828813909776920217962099+789 4478.4890544599436434446607925+790 4485.16108740540471062285172949+791 4491.83438537317236449653921373+792 4498.50894676498679035164334414+793 4505.18476998662163833644822069+794 4511.86185344786877405894888484+795 4518.54019556252310595908935855+796 4525.21979474836748897333394409+797 4531.90064942715770401264903789+798 4538.58275802460751277857589542+799 4545.26611897037378744564638071+800 4551.95073069804171474193405998+801 4558.636591645110073963042366+802 4565.32370025297658845831027721+803 4572.01205496692335013146432964+804 4578.70165423610231650136411112+805 4585.39249651352087987187697603+806 4592.08458025602750816327685991+807 4598.77790392429745696089205833+808 4605.47246598281855234002795296+809 4612.16826489987704402946320543+810 4618.86529914754352847906217783+811 4625.5635672016589414002625585+812 4632.26306754182061935138564752+813 4638.96379865136842994287776283+814 4645.6657590173709702407250342+815 4652.3689471306118329493907259+816 4659.07336148557593995870443424+817 4665.77900058043594284218630419+818 4672.48586291703868989731705852+819 4679.19394700089175932126638918+820 4685.90325134115005811856837613+821 4692.61377445060248634018332436+822 4699.32551484565866625631099184+823 4706.03847104633573606822086481+824 4712.75264157624520776724116349+825 4719.46802496257988875189987097+826 4726.18461973610086681703850621+827 4732.90242443112455813152284405+828 4739.6214375855098178239545516+829 4746.34165774064511279854399034+830 4753.06308344143575640603745402+831 4759.78571323629120459730209681+832 4766.50954567711241318985897698+833 4773.23457931927925588031921708+834 4779.96081272163800263832047936+835 4786.68824444648885812018098947+836 4793.41687305957355974308642472+837 4800.14669713006303506320132476+838 4806.8777152305451181036514908+839 4813.60992593701232428085731961+840 4820.34332782884968358021037329+841 4827.07791948882263163457691735+842 4833.8136995030649583615828657+843 4840.55066646106681381808474926+844 4847.28881895566277093266116977+845 4854.02815558301994477936890399+846 4860.76867494262616805839757725+847 4867.51037563727822245162681715+848 4874.25325627307012552344021478+849 4880.99731545938147283948144716+850 4887.74255180886583497834973257+851 4894.48896393743920911352458107+852 4901.23655046426852484508374508+853 4907.98531001176020396303354499+854 4914.73524120554877382630751896+855 4921.4863426744855340437077962+856 4928.23861305062727614526389138+857 4934.99205096922505593466593329+858 4941.74665506871301821559384167+859 4948.50242399069727358691081811+860 4955.2593563799448270038188842+861 4962.01745088437255780418624555+862 4968.77670615503625090135114448+863 4975.53712084611967884678474638+864 4982.2986936149237344680566427+865 4989.06142312185561378959090242+866 4995.82530803041804894572841912+867 5002.59034700719859079762273359+868 5009.3565387218589409674917149+869 5016.12388184712433300572660402+870 5022.89237505877296240832311274+871 5029.66201703562546520404667218+872 5036.432806459534444832675685+873 5043.20474201537404703758289709+874 5049.97782239102958249781590948+875 5056.75204627738719692672354022+876 5063.52741236832358836604535856+877 5070.30391936069577140623738617+878 5077.08156595433088806564783042+879 5083.86035085201606506298291592+880 5090.64027275948831721931454732+881 5097.42133038542449672767880015+882 5104.20352244143128803009722823+883 5110.98684764203524804362182511+884 5117.77130470467289147875931141+885 5124.55689234968082099537136636+886 5131.34360930028590194287460574+887 5138.13145428259548143327765439+888 5144.92042602558765149729269166+889 5151.71052326110155607544548521+890 5158.50174472382774159778129221+891 5165.29408915129855090742421673+892 5172.08755528387856028489478619+893 5178.88214186475505933172476429+894 5185.67784763992857347352966992+895 5192.47467135820342884430823369+896 5199.27261177117835931533421128+897 5206.07166763323715543358969679+898 5212.8718377015393550362604507+899 5219.67312073601097530937288706+900 5226.47551549933528606019936044+901 5233.2790207569436239745933642+902 5240.08363527700624763193930327+903 5246.88935783042323305191274377+904 5253.69618719081540954874657162+905 5260.504122134515335670186418+906 5267.31316144055831499979513165+907 5274.12330389067345160273110061+908 5280.93454826927474489657894643+909 5287.74689336345222373025363517+910 5294.56033796296311945543046681+911 5301.37488086022307777637381819+912 5308.19052085029740916544701935+913 5315.00725673089237763298443515+914 5321.82508730234652764159479865+915 5328.64401136762204895634219233+916 5335.46402773229617922361789217+917 5342.28513520455264407287266893+918 5349.10733259517313453672517138+919 5355.93061871752882158629778941+920 5362.75499238757190757995699794+921 5369.58045242382721442495070575+922 5376.40699764738380825274066306+923 5383.23462688188666041012360503+924 5390.06333895352834456952061084+925 5396.89313269104076976309022517+926 5403.72400692568694914658730448+927 5410.55596049125280430014639726+928 5417.3889922240390048744158299+929 5424.22310096285284339170662665+930 5431.05828554900014501304902767+931 5437.89454482627721208326876059+932 5444.7318776409628032674054497+933 5451.57028284181014709299669051+934 5458.40975928003898971394345392+935 5465.25030580932767671285569145+936 5472.09192128580526875995136573+937 5478.93460456804369094774770632+938 5485.77835451704991562194036318+939 5492.62316999625817853001437373+940 5499.46904987152222811027054798+941 5506.31599301110760774508208188+942 5513.16399828568397080331900447+943 5520.01306456831742829799252068+944 5526.86319073446292898627749954+945 5533.71437566195667174016934732+946 5540.56661823100855001712136554+947 5547.41991732419462826109049422+948 5554.27427182644965006549314924+949 5561.12968062505957793063874554+950 5567.98614260965416444926652376+951 5574.84365667219955475486153117+952 5581.70222170699092006846811489+953 5588.5618366106451221807541312+954 5595.42250028209340870710632294+955 5602.28421162257413895455703222+956 5609.14696953562554024035466006+957 5616.01077292707849450299512091+958 5622.87562070504935504752903086+959 5629.74151177993279326794957373+960 5636.60844506439467519044897103+961 5643.47641947336496768230729968+962 5650.34543392403067417214611491+963 5657.2154873358287997282410042+964 5664.08657863043934534254187977+965 5670.95870673177833126899757015+966 5677.83187056599084926572215309+967 5684.70606906144414359147453881+968 5691.58130114872072060785012233+969 5698.45756576061148683950392962+970 5705.3348618321089153456386427+971 5712.21318830040024025689825604+972 5719.09254410486067933270894647+973 5725.97292818704668439500308413+974 5732.85433949068921949515022709+975 5739.73677696168706667180047843+976 5746.62023954810015915822079602+977 5753.50472620014294189857378169+978 5760.39023587017775923345119141+979 5767.27676751270826961583095053+980 5774.16432008437288721947687959+981 5781.05289254393825030264468652+982 5787.94248385229271619079610897+983 5794.83309297243988274285544624+984 5801.72471886949213616636915121+985 5808.61736051066422504774970787+986 5815.51101686526686046459974664+987 5822.40568690470034204792129529+988 5829.30136960244820986281827441+989 5836.19806393407092197709786976+990 5843.09576887719955758796829526+991 5849.99448341152954557781674551+992 5856.89420651881441837083207044+993 5863.79493718285959096301193252+994 5870.69667438951616499886397192+995 5877.59941712667475776887485254+996 5884.50316438425935600258003425+997 5891.40791515422119433282075772+998 5898.31366843053265830752308098+999 5905.22042320918121182607691236+1000 5912.12817848816334887813088673+1001 5919.03693326747856946335167049+1002 5925.94668654912337957142389862+1003 5932.85743733708531510228948361+1004 5939.7691846373369896073425331+1005 5946.68192745783016573300860966+1006 5953.5956648084898502488446029+1007 5960.51039570120841254299809947+1008 5967.42611914983972646856287118+1009 5974.342834170193335425059992+1010 5981.26053978002864055996218172+1011 5988.17923499904911197586229351+1012 5995.09891884889652282956545417+1013 6002.01959035314520621005826508+1014 6008.94124853729633468297771732+1015 6015.86389242877222238986710143+1016 6022.7875210569106495911662386+1017 6029.71213345295920954253886057+1018 6036.63772865006967759479095655+1019 6043.56430568329240240828042251+1020 6050.49186358957071917336042594+1021 6057.42040140773538472903657267+1022 6064.3499181784990344726512664+1023 6071.28041294445066095403761953+1024 6078.21188475005011404820994075+1025 6085.14433264162262260127822279+1026 6092.07775566735333744489021805+1027 6099.01215287728189567511665104+1028 6105.94752332329700609230290959+1029 6112.88386605913105569901421306+1030 6119.82118014035473715380080683+1031 6126.75946462437169707910521194+1032 6133.69871857041320512222499605+1033 6140.63894103953284366883196044+1034 6147.58013109460121810913208681+1035 6154.52228780030068755733008945+1036 6161.46541022312011592563800211+1037 6168.40949743134964325463892583+1038 6175.35454849507547720238490357+1039 6182.3005624861747045951718995+1040 6189.24753847831012294349507476+1041 6196.19547554692509182724399685+1042 6203.14437276923840405475012467+1043 6210.09422922423917650084790569+1044 6217.04504399268176052965613244+1045 6223.99681615708067190832786278+1046 6230.94954480170554011855523808+1047 6237.90322901257607697314996484+1048 6244.85786787745706444555108522+1049 6251.81346048585336162063897749+1050 6258.77000592900493067575832626+1051 6265.72750329988188180137311033+1052 6272.68595169317953697129350083+1053 6279.64535020531351247292796922+1054 6286.60569793441482010852390029+1055 6293.56699398032498697886661588+1056 6300.52923744459119376140996531+1057 6307.49242743046143139531155435+1058 6314.45656304287967608634229213+1059 6321.42164338848108254513325749+1060 6328.3876675755871953727129502+1061 6335.35463471420117850777482123+1062 6342.32254391600306265059859419+1063 6349.29139429434501057902932294+1064 6356.26118496424660027239539948+1065 6363.23191504239012575972085858+1066 6370.20358364711591560905834152+1067 6377.17618989841766897523700672+1068 6384.14973291793780912378453174+1069 6391.12421182896285434924416226+1070 6398.09962575641880620656655253+1071 6405.07597382686655497471193037+1072 6412.05325516849730227205093085+1073 6419.03146891112800074360229855+1074 6426.01061418619681074059258034+1075 6432.99069012675857391326694152+1076 6439.97169586748030363832135894+1077 6446.95363054463669220276469707+1078 6453.93649329610563466645457825+1079 6460.92028326136376932598353792+1080 6467.90499958148203470302172933+1081 6474.89064139912124298064943283+1082 6481.87720785852766981163685056+1083 6488.86469810552866042305015066+1084 6495.85311128752825194198148498+1085 6502.84244655350281186761676138+1086 6509.83270305399669261526832578+1087 6516.82387994111790205841041979+1088 6523.81597636853378999516334713+1089 6530.80899149146675046607772476+1090 6537.80292446668993985047303267+1091 6544.79777445252301066898492849+1092 6551.79354060882786102037347815+1093 6558.79022209700439958103959106+1094 6565.78781807998632609608955581+1095 6572.78632772223692729117766923+1096 6579.78575018974488813474455573+1097 6586.7860846500201183806539031+1098 6593.78733027208959432161301479+1099 6600.78948622649321568414281277+1100 6607.79255168527967759624073926+1101 6614.79652582200235755925541644+1102 6621.80140781171521735586494802+1103 6628.80719683096871982642140336+1104 6635.81389205780576044629232991+1105 6642.82149267175761363719611131+1106 6649.82999785383989374589164171+1107 6656.8394067865485306239441408+1108 6663.84971865385575974264800259+1109 6670.86093264120612677754437357+1110 6677.87304793551250659732570593+1111 6684.88606372515213659227184778+1112 6691.89997919996266427771232906+1113 6698.91479355123820910835739618+1114 6705.93050597172543843968605524+1115 6712.94711565561965757292291978+1116 6719.96462179856091382047703882+1117 6726.98302359763011452905512067+1118 6734.00232025134515899799868275+1119 6741.02251095965708423072966259+1120 6748.04359492394622445752193527+1121 6755.06557134701838436814701308+1122 6762.08843943310102599327096863+1123 6769.1121983878394691738063381+1124 6776.13684741829310555774744066+1125 6783.16238573293162606434020914+1126 6790.18881254163126175575827825+1127 6797.21612705567103805677573657+1128 6804.24432848772904226324362884+1129 6811.27341605187870428049201209+1130 6818.30338896358509053309213504+1131 6825.33424643970121098772413975+1132 6832.36598769846433923120459114+1133 6839.39861195949234554603513703+1134 6846.43211844378004292613870285+1135 6853.46650637369554597575284376+1136 6860.50177497297664263475122677+1137 6867.5379234667271786739637086+1138 6874.57495108141345490436312553+1139 6881.61285704486063704428273214+1140 6888.65164058624917818912222838+1141 6895.69130093611125382829251349+1142 6902.73183732632720935443971181+1143 6909.77324899012202001027764309+1144 6916.81553516206176321864477048+1145 6923.85869507805010324168676541+1146 6930.90272797532478811534919273+1147 6937.94763309245415880564645272+1148 6944.99340966933367053345303308+1149 6952.04005694718242621484133285+1150 6959.08757416853972196426683647+1151 6966.13596057726160460817624873+1152 6973.18521541851744115688736405+1153 6980.23533793878650018286094672+1154 6987.28632738585454505375475415+1155 6994.33818300881043896891805504+1156 7001.39090405804276174825158852+1157 7008.4444897852364383226228915+1158 7015.49893944336937887529029991+1159 7022.55425228670913058405071644+1160 7029.61042757080954091408644417+1161 7036.6674645525074324117450224+1162 7043.72536248991928894974307949+1163 7050.78412064243795337454074782+1164 7057.84373827072933650688717892+1165 7064.90421463672913744679016313+1166 7071.96554900363957513441380797+1167 7079.02774063592613111865767344+1168 7086.09078879931430348541871078+1169 7093.1546927607863718977838143+1170 7100.21945178857817370064578367+1171 7107.28506515217589104247901685+1172 7114.35153212231284896725332136+1173 7121.41885197096632442970485404+1174 7128.48702397135436618742238666+1175 7135.556047397932625523444856+1176 7142.62592152639119775330250309+1177 7149.69664563365147447066884548+1178 7156.76821899786300648602426936+1179 7163.84064089840037741296418384+1180 7170.91391061586008785701545779+1181 7177.98802743205745016205426867+1182 7185.06299063002349366964654336+1183 7192.13879949400188044685887099+1184 7199.21545330944583143831312726+1185 7206.29295136301506299848207738+1186 7213.37129294257273376044592924+1187 7220.45047733718240179755119988+1188 7227.53050383710499203463334341+1189 7234.61137173379577386568337882+1190 7241.69308031990134893505625763+1191 7248.7756288892566490395349349+1192 7255.85901673688194410877905954+1193 7262.94324315897986022190089141+1194 7270.02830745293240761812349006+1195 7277.11420891729801865968741299+1196 7284.20094685180859570538211751+1197 7291.28852055736656885328698816+1198 7298.37692933604196351151441945+1199 7305.46617249106947775595367948+1200 7312.55624932684556943421937187+1201 7319.64715914892555297521220958+1202 7326.73890126402070586390252221+1203 7333.83147497999538474114844653+1204 7340.92487960586415108856110603+1205 7348.01911445178890645862827668+1206 7355.11417882907603721050607128+1207 7362.21007205017356871208506043+1208 7369.30679342866832896913299309+1209 7376.40434227928312164251089009+1210 7383.5027179178739084146527687+1211 7390.60191966142700066669162183+1212 7397.70194682805626042780552958+1213 7404.80279873700031055854793074+1214 7411.9044747086197541301151351+1215 7419.00697406439440296169212062+1216 7426.11029612692051527820454078+1217 7433.21444021990804245099067281+1218 7440.31940566817788478409177494+1219 7447.42519179765915630904299691+1220 7454.53179793538645855122960959+1221 7461.63922340949716323105489408+1222 7468.74746754922870386334656431+1223 7475.85652968491587621860809739+1224 7482.96640914798814760989981885+1225 7490.077105270966974969312043+1226 7497.18861738746313167816900771+1227 7504.30094483217404311527777516+1228 7511.41408694088113088771070197+1229 7518.5280430504471657087835201+1230 7525.64281249881362888806352017+1231 7532.75839462499808239841379839+1232 7539.8747887690915474852500232+1233 7546.9919942722558917833557038+1234 7554.1100104767212249067705076+1235 7561.22883672578330247743378181+1236 7568.3484723638009385584320936+1237 7575.4689167361934264578653187+1238 7582.59016918943796786951058621+1239 7589.71222907106711031662723456+1240 7596.83509572966619286540885458+1241 7603.95876851487080007475049806+1242 7611.08324677736422414916021872+1243 7618.20852986887493526180429379+1244 7625.3346171421740600148347536+1245 7632.4615079510728680043062304+1246 7639.5892016504202664571466308+1247 7646.71769759610030290780274535+1248 7653.84699514502967588233763863+1249 7660.97709365515525355791152077+1250 7668.10799248545160036573179023+1251 7675.23969099591851150571106562+1252 7682.37218854757855534122429517+1253 7689.50548450247462364250745235+1254 7696.63957822366748964739090072+1255 7703.77446907523337390821024529+1256 7710.91015642226151789388638689+1257 7718.04663963085176531631456605+1258 7725.18391806811215115034942846+1259 7732.32199110215649831681957067+1260 7739.46085810210202199815063746+1261 7746.60051843806694155632084653+1262 7753.74097148116810002301681668+1263 7760.88221660351859113200077815+1264 7768.02425317822539386384265217+1265 7775.16708057938701447331210792+1266 7782.31069818209113596986654154+1267 7789.45510536241227502181098132+1268 7796.60030149740944625484520773+1269 7803.74628596512383391585189411+1270 7810.89305814457647087291732638+1271 7818.04061741576592492271325407+1272 7825.18896315966599237650466482+1273 7832.33809475822339889618376424+1274 7839.48801159435550755186518929+1275 7846.63871305194803407271148781+1276 7853.79019851585276926279116767+1277 7860.94246737188530855390415754+1278 7868.09551900682278866744133467+1279 7875.24935280840163135747586584+1280 7882.40396816531529420741448214+1281 7889.55936446721202845266646923+1282 7896.71554110469264380191710789+1283 7903.87249746930828022972054911+1284 7911.03023295355818671325465741+1285 7918.18874695088750688620721105+1286 7925.34803885568507158288901168+1287 7932.50810806328119824579493317+1288 7939.66895396994549716995873511+1289 7946.83057597288468455757158315+1290 7953.99297347024040235645766236+1291 7961.15614586108704485612304335+1292 7968.32009254542959201521606964+1293 7975.48481292420144949435898168+1294 7982.65030639926229536843128302+1295 7989.81657237339593349250549077+1296 7996.9836102503081534957554002+1297 8004.15141943462459737777583572+1298 8011.31999933188863268187106179+1299 8018.4893493485592322199865916+1300 8025.65946889200886032407606195+1301 8032.83035737052136559881114445+1302 8040.00201419328988015065813887+1303 8047.17443877041472526845994907+1304 8054.3476305129013235307765778+1305 8061.52158883265811731535109964+1306 8068.69631314249449368618128283+1307 8075.87180285611871563378963653+1308 8083.04805738813585964439666247+1309 8090.22507615404575957381349341+1310 8097.40285857024095680198090887+1311 8104.58140405400465664419193437+1312 8111.76071202350869099514485835+1313 8118.94078189781148718208254406+1314 8126.12161309685604300338237551+1315 8133.30320504146790792906906111+1316 8140.48555715335317043982982877+1317 8147.66866885509645148121828613+1318 8154.85253957015890400983939211+1319 8162.03716872287621860841359472+1320 8169.22255573845663514672323923+1321 8176.40870004297896046554884194+1322 8183.59560106339059206080676365+1323 8190.78325822750554774520320485+1324 8197.97167096400250126482228593+1325 8205.16083870242282384816827374+1326 8212.35076087316863166528377315+1327 8219.54143690750083917466692322+1328 8226.73286623753721833581132392+1329 8233.92504829625046366529257642+1330 8241.11798251746626311442494805+1331 8248.31166833586137474661077878+1332 8255.50610518696170919260382917+1333 8262.70129250714041786200583601+1334 8269.89722973361598688941309299+1335 8277.0939163044503367937269131+1336 8284.29135165854692782923836025+1337 8291.48953523564887100719366294+1338 8298.68846647633704476664224551+1339 8305.88814482202821727346433527+1340 8313.08856971497317432656963084+1341 8320.28974059825485285035254959+1342 8327.49165691578647995258311439+1343 8334.69431811230971752700559455+1344 8341.89772363339281238000958526+1345 8349.10187292542875186083029777+1346 8356.30676543563342497482644106+1347 8363.51240061204378895947520809+1348 8370.71877790351604130281453888+1349 8377.92589675972379718415302085+1350 8385.13375663115627231695750735+1351 8392.34235696911647117391779114+1352 8399.55169722571938057427646239+1353 8406.76177685389016861360041458+1354 8413.97259530736238891625833864+1355 8421.18415204067619019095596804+1356 8428.39644650917653106976780902+1357 8435.60947816901140021119061222+1358 8442.82324647713004164782991871+1359 8450.03775089128118535941664548+1360 8457.25299087001128305193586792+1361 8464.4689658726627491237347097+1362 8471.68567535937220679956056863+1363 8478.90311879106873941356479133+1364 8486.12129562947214682239036348+1365 8493.34020533709120692954520823+1366 8500.55984737722194230234528551+1367 8507.78022121394589186279386169+1368 8515.00132631212838763384507596+1369 8522.2231621374168365225812673+1370 8529.44572815623900712191444888+1371 8536.6690238358013215125028255+1372 8543.89304864408715204665334797+1373 8551.11780204985512309606098807+1374 8558.34328352263741774531470103+1375 8565.56949253273808941317892261+1376 8572.79642855123137838373792573+1377 8580.02409104996003322956844129+1378 8587.25247950153363710918362999+1379 8594.48159337932693892106878007+1380 8601.71143215747818929670600171+1381 8608.94199531088748141506169484+1382 8616.17328231521509662108668503+1383 8623.40529264687985483085465546+1384 8630.63802578305746970603985221+1385 8637.8714812016789085805100091+1386 8645.10565838142875712188502801+1387 8652.3405568017435887109861643+1388 8659.57617594281033852217430539+1389 8666.81251528556468228764939781+1390 8674.04957431168941972885617419+1391 8681.28735250361286263821406044+1392 8688.5258493445072275944615062+1393 8695.76506431828703329497698023+1394 8703.00499690960750248851051035+1395 8710.24564660386296849183092448+1396 8717.48701288718528627386487024+1397 8724.72909524644224809097425463+1398 8731.97189316923600365708895686+1399 8739.21540614390148483248152723+1400 8746.459633659504834815040095+1401 8753.70457520584184181796487153+1402 8760.95023027343637721788245208+1403 8768.19659835353883815744059401+1404 8775.44367893812459458651428141+1405 8782.69147151989244072622167906+1406 8789.93997559226305094001603429+1407 8797.18919064937743999618670427+1408 8804.43911618609542770616927269+1409 8811.68975169799410792313117315+1410 8818.94109668136632188536536051+1411 8826.19315063321913588909036736+1412 8833.44591305127232327532055172+1413 8840.69938343395685071553548743+1414 8847.95356128041336878094227056+1415 8855.20844609049070678018901704+1416 8862.46403736474437185045200901+1417 8869.72033460443505228688281291+1418 8876.97733731152712509546524209+1419 8884.23504498868716775439527341+1420 8891.49345713928247416915995152+1421 8898.75257326737957480655392904+1422 8906.01239287774276099293459718+1423 8913.27291547583261336207876052+1424 8920.53414056780453443806550454+1425 8927.79606766050728533867129588+1426 8935.05869626148152658482444515+1427 8942.32202587895836300172685274+1428 8949.58605602185789269731144958+1429 8956.85078619978776010376394119+1430 8964.11621592304171306789736366+1431 8971.38234470259816397622756851+1432 8978.64917205011875490065706931+1433 8985.91669747794692675073370971+1434 8993.18492049910649241850935066+1435 9000.45384062730021390208222611+1436 9007.72345737690838339396478324+1437 9014.99377026298740832047670631+1438 9022.26477880126840031842042449+1439 9029.53648250815576813535372506+1440 9036.80888090072581443983113547+1441 9044.08197349672533652804250306+1442 9051.35575981457023091333369024+1443 9058.63023937334410178515051859+1444 9065.9054116927968733240030377+1445 9073.18127629334340585910286627+1446 9080.45783269606211585538175494+1447 9087.73508042269359971665465416+1448 9095.01301899563926139174543757+1449 9102.29164793795994377044803361+1450 9109.57096677337456385625005644+1451 9116.85097502625875170280010307+1452 9124.1316722216434931011536997+1453 9131.41305788521377600488643549+1454 9138.69513154330724068021612058+1455 9145.97789272291283356832884677+1456 9153.26134095166946484715661544+1457 9160.54547575786466967990673043+1458 9167.83029667043327313769543398+1459 9175.1158032189560587836902933+1460 9182.40199493365844090621762574+1461 9189.68887134540914038834278181+1462 9196.97643198571886420148239106+1463 9204.26467638673898851065871481+1464 9211.55360408126024537905704552+1465 9218.84321460271141305959764511+1466 9226.13350748515800986128402593+1467 9233.42448226330099157813944877+1468 9240.71613847247545246859334495+1469 9248.00847564864932977322896389+1470 9255.30149332842211175885290607+1471 9262.59519104902354927689632488+1472 9269.88956834831237082420647044+1473 9277.184624764775001094335906+1474 9284.4803598375242830074851537+1475 9291.77677310629820320730272274+1476 9299.07386411145862101279444083+1477 9306.37163239399000081364174983+1478 9313.67007749549814789727614083+1479 9320.96919895820894769610419272+1480 9328.26899632496710844332474409+1481 9335.56946913923490722582657076+1482 9342.87061694509093942270156299+1483 9350.17243928722887151795479776+1484 9357.47493571095619727603908388+1485 9364.77810576219299726888752251+1486 9372.08194898747070174316337347+1487 9379.38646493393085681649205079+1488 9386.69165314932389399148538884+1489 9393.99751318200790297641342595+1490 9401.30404458094740780142384568+1491 9408.61124689571214621925389819+1492 9415.91911967647585237942409704+1493 9423.22766247401504276494725079+1494 9430.53687483970780538063044561+1495 9437.84675632553259218209144522+1496 9445.15730648406701473465461978+1497 9452.46852486848664309133495615+1498 9459.78041103256380787916193983+1499 9467.09296453066640558313813477+1500 9474.40618491775670701717012225+1501 9481.72007174939016897135209522+1502 9489.03462458171424902502484074+1503 9496.34984297146722351507508199+1504 9503.66572647597700864898219327+1505 9510.98227465315998475216114786+1506 9518.29948706151982363919221046+1507 9525.61736326014631909856934416+1508 9532.93590280871422048064056788+1509 9540.25510526748206937845457423+1510 9547.57497019729103939126880199+1511 9554.89549715956377896051485131+1512 9562.21668571630325726805763613+1513 9569.53853543009161318662498629+1514 9576.86104586408900727232454418+1515 9584.18421658203247678920474702+1516 9591.50804714823479375585644785+1517 9598.83253712758332600409130689+1518 9606.15768608553890123977248066+1519 9613.48349358813467409591235047+1520 9620.80995920197499616819106572+1521 9628.13708249423428902308853108+1522 9635.46486303265592016886114195+1523 9642.7933003855510819796330699+1524 9650.12239412179767356291022019+1525 9657.45214381083918556086312796+1526 9664.78254902268358787576302927+1527 9672.11360932790222030999313837+1528 9679.44532429762868611109478468+1529 9686.77769350355774841234551318+1530 9694.11071651794422955940352973+1531 9701.44439291360191331358998145+1532 9708.77872226390244992241750024+1533 9716.11370414277426404801020707+1534 9723.44933812470146554409697701+1535 9730.78562378472276307229619891+1536 9738.12256069843038054844653324+1537 9745.46014844196897640977427441+1538 9752.79838659203456569372386338+1539 9760.13727472587344491931387176+1540 9767.47681242128111976191639166+1541 9774.81699925660123551239321648+1542 9782.15783481072451031155748816+1543 9789.49931866308767115096461601+1544 9796.84145039367239263107124343+1545 9804.18422958300423846783585031+1546 9811.527655812151605738869234+1547 9818.8717286627246718602776088+1548 9826.21644771687434428537540603+1549 9833.56181255729121291647904251+1550 9840.90782276720450522102695762+1551 9848.25447793038104404330509711+1552 9855.60177763112420810309074721+1553 9862.94972145427289517256119617+1554 9870.29830898520048792284712194+1555 9877.64753980981382243164387684+1556 9884.99741351455215934332696132+1557 9892.34792968638615767305095218+1558 9899.69908791281685124634397511+1559 9907.05088778187462776574248859+1560 9914.40332888211821049604367696+1561 9921.75641080263364255978513492+1562 9929.11013313303327383459376515+1563 9936.46449546345475044407790609+1564 9943.81949738456000683396865778+1565 9951.17513848753426042524818243+1566 9958.53141836408500883603442229+1567 9965.88833660644102966402320229+1568 9973.24589280735138282132006838+1569 9980.6040865600844154135254568+1570 9987.96291745842676915496789349+1571 9995.32238509668239031201088911+1572 10002.6824890696715421663900226+1573 10010.0432289727298199905673972+1574 10017.4046044017071685271212068+1575 10024.7666149529669019642185687+1576 10032.1292602233847263992500623+1577 10039.492539810347764782734562+1578 10046.8564533117535843346329656+1579 10054.2210003260092264252393056+1580 10061.5861804520302389128474747+1581 10068.9519932892397109304214189+1582 10076.3184384375673101135261353+1583 10083.6855154974483222618061693+1584 10091.0532240698226934263275319+1585 10098.4215637561340744151280534+1586 10105.790534158328867709350162+1587 10113.1601348788552767823589129+1588 10120.5303655206623578142768092+1589 10127.9012256871990737943955435+1590 10135.2727149824133510039532493+1591 10142.6448330107511378717941875+1592 10150.0175793771554661954560052+1593 10157.3909536870655147202577913+1594 10164.7649555464156750689901172+1595 10172.1395845616346200148360921+1596 10179.5148403396443740901801818+1597 10186.8907224878593865239891369+1598 10194.2672306141856065004768543+1599 10201.6443643270195607317923503+1600 10209.0221232352474333374972617+1601 10216.4005069482441480236264077+1602 10223.7795150758724525541519459+1603 10231.1591472284820055076985342+1604 10238.5394030169084653123836776+1605 10245.9202820524725815516840809+1606 10253.3017839469792885342553655+1607 10260.6839083127168011206589159+1608 10268.0666547624557127999759295+1609 10275.4500229094480960093149224+1610 10282.8340123674266046892450194+1611 10290.2186227506035790682133143+1612 10297.6038536736701526690304303+1613 10304.9897047517953615305341466+1614 10312.3761756006252556375665772+1615 10319.7632658362820125524258986+1616 10327.1509750753630532409790253+1617 10334.5393029349401600866469196+1618 10341.9282490325585970854994042+1619 10349.3178129862362322157214187+1620 10356.7079944144626619747376232+1621 10364.0987929361983380773071087+1622 10371.4902081708736963079247214+1623 10378.8822397383882875208901523+1624 10386.2748872591099107814304734+1625 10393.6681503538737486412862389+1626 10401.0620286439815045421955863+1627 10408.4565217512005423407349991+1628 10415.8516292977630279479995026+1629 10423.2473509063650730776290801+1630 10430.643686200165881095712004+1631 10438.0406348027868949661195816+1632 10445.438196338310947284850522+1633 10452.8363704312814123969867294+1634 10460.2351567067013605898858315+1635 10467.6345547900327143562591525+1636 10475.0345643071954067208071389+1637 10482.4351848845665416241074481+1638 10489.8364161489795563574740109+1639 10497.2382577277233860425283828+1640 10504.6407092485416301492476018+1641 10512.0437703396317210462755797+1642 10519.44744062964409457730776+1643 10526.8517197476813626573813935+1644 10534.2566073232974878829262931+1645 10541.6621029864969601494533559+1646 10549.0682063677339752707804609+1647 10556.4749170979116155937175858+1648 10563.8822348083810326021551166+1649 10571.2901591309406315045213728+1650 10578.6986896978352577985973124+1651 10586.1078261417553858076982406+1652 10593.517568095836309182254108+1653 10600.9279151936573333608416527+1654 10608.3388670692409699847432227+1655 10615.7504233570521332601285988+1656 10623.1625836919973382619775385+1657 10630.5753477094239011738820635+1658 10637.9887150451191414578887344+1659 10645.4026853353095859485622779+1660 10652.8172582166601748654729737+1661 10660.2324333262734697383311536+1662 10667.6482103016888632390130285+1663 10675.0645887808817909147428306+1664 10682.4815684022629448167169428+1665 10689.8991488046774890184762883+1666 10697.3173296274042770183537605+1667 10704.736110510155071020343905+1668 10712.1554910930737630877623994+1669 10719.5754710167355981640831359+1670 10726.9960499221463989553608782+1671 10734.4172274507417926686675503+1672 10741.8390032443864396009902177+1673 10749.2613769453732635730587341+1674 10756.6843481964226842025908662+1675 10764.1079166406818510114624569+1676 10771.532081921723879361329855+1677 10778.9568436835470882122514302+1678 10786.3822015705742396988744912+1679 10793.8081552276517805187733528+1680 10801.2347043000490851275436386+1681 10808.6618484334577007352771654+1682 10816.0895872739905940990609416+1683 10823.5179204681814001061629102+1684 10830.9468476629836721425860907+1685 10838.3763685057701342416917166+1686 10845.8064826443319350076108323+1687 10853.2371897268779033081825964+1688 10860.668489402033805732176249+1689 10868.1003813188416058055723312+1690 10875.5328651267587249616972975+1691 10882.9659404756573052600241405+1692 10890.3996070158234738484700459+1693 10897.8338643979566091640404219+1694 10905.2687122731686088666868939+1695 10912.70415029298315950126503+1696 10920.1401781093350078824956597+1697 10927.5767953745692341978516736+1698 10935.0140017414405268233101381+1699 10942.4517968631124588469274375+1700 10949.8901803931567662952129551+1701 10957.329151985552628057294534+1702 10964.7687112946859475018866146+1703 10972.2088579753486357820895261+1704 10979.6495916827378968230659222+1705 10987.0909120724555139876577894+1706 10994.5328188005071384150248215+1707 11001.9753115233015790274022515+1708 11009.4183898976500942000934576+1709 11016.8620535807656850898298108+1710 11024.3063022302623906166473202+1711 11031.7511355041545840944466426+1712 11039.1965530608562715054199699+1713 11046.6425545591803914135451813+1714 11054.0891396583381165123644553+1715 11061.5363080179381568022812729+1716 11068.9840592979860643926264134+1717 11076.4323931588835399237601463+1718 11083.8813092614277406044943548+1719 11091.3308072668105898601347953+1720 11098.7808868366180885864600935+1721 11106.2315476328296280049704148+1722 11113.6827893178173041147550083+1723 11121.1346115543452337363440265+1724 11128.5870140055688721429261575+1725 11136.0399963350343322743296742+1726 11143.4935582066777055291805083+1727 11150.9476992848243841306668971+1728 11158.4024192341883850613560255+1729 11165.8577177198716755625238931+1730 11173.313594407363500193475385+1731 11180.7700489625397094463472055+1732 11188.2270810516620899119019544+1733 11195.6846903413776959918371779+1734 11203.1428764987181831531487245+1735 11210.6016391910991427201031606+1736 11218.0609780863194381993893741+1737 11225.5208928525605431340347956+1738 11232.9813831583858804816869168+1739 11240.4424486727401635128759632+1740 11247.904089064948738224889704+1741 11255.3663040047169272669064434+1742 11262.829093162129375372047235+1743 11270.2924562076493962920233052+1744 11277.7563928121183212300695501+1745 11285.220902646754848767869791+1746 11292.6859853831543962821942352+1747 11300.1516406932884528469842923+1748 11307.6178682495039336166345368+1749 11315.0846677245225356862361948+1750 11322.5520387914400954245610577+1751 11330.0199811237259472755791946+1752 11337.4884943952222840243182451+1753 11344.9575782801435185228864263+1754 11352.427232453075646872495686+1755 11359.8974565889756130573356685+1756 11367.3682503631706750261633449+1757 11374.8396134513577722174872829+1758 11382.3115455296028945242396005+1759 11389.7840462743404526938426612+1760 11397.2571153623726501595915247+1761 11404.7307524708688562992870704+1762 11412.2049572773649811170685554+1763 11419.6797294597628513444081613+1764 11427.1550686963295879562438215+1765 11434.6309746656969850982403009+1766 11442.1074470468608904211821299+1767 11449.5844855191805868185155669+1768 11457.0620897623781755630702853+1769 11464.5402594565379608390049465+1770 11472.0189942821058356650342335+1771 11479.4982939198886692050082827+1772 11486.9781580510536954619287542+1773 11494.458586357127903351499042+1774 11501.9395785199974281513193228+1775 11509.421134221906944321850296+1776 11516.9032531454590596952825654+1777 11524.3859349736137110284616596+1778 11531.8691793896875609160316853+1779 11539.3529860773533960599735503+1780 11546.8373547206395268917265894+1781 11554.322285003929188543095267+1782 11561.8077766119599431621554236+1783 11569.293829229823083570387277+1784 11576.7804425429630382572750786+1785 11584.2676162371767777086259705+1786 11591.7553499986132220648731807+1787 11599.2436435137726501056412369+1788 11606.7324964695061095568633746+1789 11614.2219085530148287167537621+1790 11621.711879451849629396949558+1791 11629.2024088539103411751501698+1792 11636.6934964474452169555933795+1793 11644.1851419210503498337202555+1794 11651.6773449636690912613929731+1795 11659.1701052645914705090418253+1796 11666.6634225134536154211298113+1797 11674.1572964002371744613352557+1798 11681.6517266152687400438649242+1799 11689.1467128492192731473220713+1800 11696.6422547931035292075657768+1801 11704.1383521382794852860098038+1802 11711.6350045764477685098210397+1803 11719.1322117996510857804893654+1804 11726.6299735002736547472525366+1805 11734.1282893710406360418713508+1806 11741.6271591050175667712620234+1807 11749.1265823956097952645042958+1808 11756.6265589365619170707553558+1809 11764.1270884219572122046111635+1810 11771.628170546217083635468242+1811 11779.1298050041004970174504162+1812 11786.6319914907034216564763619+1813 11794.1347297014582727110551631+1814 11801.6380193321333546234083642+1815 11809.1418600788323057775282559+1816 11816.6462516379935443807933338+1817 11824.1511937063897155657730322+1818 11831.6566859811271397088649531+1819 11839.1627281596452619624188865+1820 11846.6693199397161029970129503+1821 11854.1764610194437109505581677+1822 11861.6841510972636145809187512+1823 11869.1923898719422776187462639+1824 11876.7011770425765543172366971+1825 11884.2105123085931461955303247+1826 11891.7203953697480599724849726+1827 11899.2308259261260666875640878+1828 11906.7418036781401620055916835+1829 11914.2533283265310277021368982+1830 11921.765399572366494326301524+1831 11929.2780171170410050376944322+1832 11936.7911806622750806143873642+1833 11944.3048899101147856286570476+1834 11951.8191445629311957873290564+1835 11959.3339443234198664335492477+1836 11966.8492888946003022068189823+1837 11974.3651779798154278581406766+1838 11981.8816112827310602171305268+1839 11989.3985885073353813079655046+1840 11996.9161093579384126110419453+1841 12004.4341735391714904672332243+1842 12011.9527807559867426216441642+1843 12019.4719307136565659037699132+1844 12026.9916231177731050409771027+1845 12034.5118576742477326022351159+1846 12042.03263408931053006903529+1847 12049.5539520695097700304458215+1848 12057.0758113217113994992600594+1849 12064.5982115530985243462057444+1850 12072.1211524711708948491925909+1851 12079.6446337837443923545854078+1852 12087.1686551989505170474997192+1853 12094.6932164252358768281265703+1854 12102.2183171713616772911028952+1855 12109.7439571464032128049534764+1856 12117.2701360597493586886401412+1857 12124.7968536211020644822634218+1858 12132.3241095404758483089714507+1859 12139.8519035281972923251403692+1860 12147.3802352949045392559000023+1861 12154.9091045515467900130879884+1862 12162.4385110093838023927249534+1863 12169.9684543799853908491126872+1864 12177.4989343752309273426666084+1865 12185.0299507073088432586031024+1866 12192.5615030887161323936115753+1867 12200.0935912322578550076502968+1868 12207.6262148510466429380142923+1869 12215.1593736585022057728327059+1870 12222.6930673683508380811621755+1871 12230.227295694624927696851854+1872 12237.7620583516624650533647604+1873 12245.2973550541065535667491709+1874 12252.8331855169049210639627436+1875 12260.3695494553094322537610262+1876 12267.9064465848756022373709152+1877 12275.4438766214621110561785235+1878 12282.9818392812303192736697662+1879 12290.5203342806437845888707949+1880 12298.0593613364677794785442013+1881 12305.5989201657688098654056628+1882 12313.1390104859141348096344288+1883 12320.6796320145712872209597347+1884 12328.2207844697075955886138894+1885 12335.7624675695897067264514082+1886 12343.3046810327831095305421566+1887 12350.8474245781516597465550321+1888 12358.3906979248571057442572431+1889 12365.9345007923586152964627393+1890 12373.4788329004123033597718192+1891 12381.0236939690707608544523726+1892 12388.569083718682584440821623+1893 12396.1150018698919072894956062+1894 12403.661448143637930842881967+1895 12411.2084222611544575652999629+1896 12418.7559239439694246791198501+1897 12426.3039529139044388843220729+1898 12433.8525088930743120588849013+1899 12441.4015916038865979374173481+1900 12448.9512007690411297654623584+1901 12456.5013361115295589269033943+1902 12464.0519973546348945419156338+1903 12471.6031842219310440329110777+1904 12479.1548964372823546559348936+1905 12486.707133724843155994978339+1906 12494.2598958090573034166815874+1907 12501.8131824146577224829077306+1908 12509.3669932666659543186771544+1909 12516.9213280903917019329593795+1910 12524.4761866114323774898273209+1911 12532.0315685556726505274867591+1912 12539.587473649283997122701619+1913 12547.1439016187242499981434352+1914 12554.7008521907371495702011282+1915 12562.258325092351895934794942+1916 12569.8163200508827017887460841+1917 12577.3748367939283462842612744+1918 12584.9338750493717298140990493+1919 12592.493434545379429724992275+1920 12600.0535150104012569569089045+1921 12607.6141161731698136057405706+1922 12615.1752377627000514070161313+1923 12622.7368795082888311382447831+1924 12630.2990411395144829375008305+1925 12637.8617223862363675358696455+1926 12645.4249229785944384013817669+1927 12652.9886426470088047920694809+1928 12660.5528811221792957157875886+1929 12668.1176381350850247944474023+1930 12675.6829134169839560303203248+1931 12683.2487066994124704720746474+1932 12690.8150177141849337782164625+1933 12698.3818461933932646756128164+1934 12705.9491918694065043107824343+1935 12713.5170544748703864916465266+1936 12721.0854337427069088174393422+1937 12728.6543294061139046944852579+1938 12736.2237411985646162355562974+1939 12743.7936688538072680405310476+1940 12751.3641121058646418560829928+1941 12758.9350706890336521121333073+1942 12766.5065443378849223328101528+1943 12774.0785327872623624196634968+1944 12781.6510357722827468048914193+1945 12789.2240530283352934723407989+1946 12796.7975842910812438440521687+1947 12804.3716292964534435301254079+1948 12811.946187780655923939689783+1949 12819.5212594801634847507686791+1950 12827.0968441317212772368361626+1951 12834.672941472344388447869291+1952 12842.2495512393174262437068407+1953 12849.8266731701941051775318482+1954 12857.404307002796833227302066+1955 12864.9824524752162993729591128+1956 12872.5611093258110620172537546+1957 12880.1402772932071382480313844+1958 12887.7199561162975939398283756+1959 12895.3001455342421346926365719+1960 12902.8808452864666976056997331+1961 12910.4620551126630438842122979+1962 12918.043774752788352276797337+1963 12925.6260039470648133416470607+1964 12933.2087424359792245392157153+1965 12940.7919899602825861493611439+1966 12948.3757462609896980108377133+1967 12955.9600110793787570810497043+1968 12963.5447841569909558139806414+1969 12971.1300652356300813542203894+1970 12978.7158540573621155450181782+1971 12986.3021503645148357482960228+1972 12993.8889538996774164745632937+1973 13001.4762644057000318206794559+1974 13009.0640816256934587134182367+1975 13016.6524053030286809567927009+1976 13024.2412351813364940811069122+1977 13031.8305710045071109917060312+1978 13039.4204125166897684154028587+1979 13047.0107594622923341425649593+1980 13054.6016115859809150628526169+1981 13062.1929686326794659926039568+1982 13069.7848303475693992918696392+1983 13077.377196476089195269105574+1984 13084.9700667639340133715381311+1985 13092.5634409570553041592223224+1986 13100.1573188016604220608194166+1987 13107.7517000442122389091264044+1988 13115.3465844314287582543956759+1989 13122.9419717102827304534891885+1990 13130.5378616280012685329173012+1991 13138.1342539320654648238183318+1992 13145.7311483702100083669407456+1993 13153.3285446904228030856957249+1994 13160.9264426409445867253536804+1995 13168.5248419702685505564640652+1996 13176.1237424271399598405836206+1997 13183.7231437605557750564039455+1998 13191.323045719764273884375009+1999 13198.9234480542646739479269435+2000 13206.52435051380675630939815+2001 13214.1257528483904897187834201+2002 13221.727654808265655613421436+2003 13229.3300561439314738667466426+2004 13236.9329566061362292842361029+2005 13244.5363559458768988446875413+2006 13252.1402539143987796849703584+2007 13259.7446502631951178263969541+2008 13267.3495447440067376408672357+2009 13274.9549371088216720549447046+2010 13282.5608271098747934900280133+2011 13290.1672144996474455367873655+2012 13297.7740990308670753620405908+2013 13305.3814804565068668462491687+2014 13312.9893585297853744498198974+2015 13320.5977330041661578064033085+2016 13328.2066036333574170413853124+2017 13335.8159701713116288137739253+2018 13343.4258323722251830796882782+2019 13351.0361899905380205756624346+2020 13358.6470427809332710199818565+2021 13366.2583904983368920302756496+2022 13373.8702328979173087555929936+2023 13381.4825697350850542211974155+2024 13389.0954007654924103843178083+2025 13396.7087257450330498991003079+2026 13404.322544429841678589010351+2027 13411.9368565762936786249394132+2028 13419.5516619410047524072760976+2029 13427.1669602808305671502063862+2030 13434.7827513528664001665130025+2031 13442.3990349144467848511489396+2032 13450.0158107231451573618653089+2033 13457.6330785367735039951787352+2034 13465.2508381133820092559685893+2035 13472.8690892112587046189993878+2036 13480.4878315889291179806687159+2037 13488.1070650051559237992860355+2038 13495.7267892189385939221927336+2039 13503.3470039895130490980387363+2040 13510.9677090763513111725359719+2041 13518.5889042391611559660139045+2042 13526.2105892378857668311072834+2043 13533.8327638327033888889111554+2044 13541.4554277840269839419430813+2045 13549.0785808525038860622573628+2046 13556.7022227990154578530609481+2047 13564.3263533846767473821855165+2048 13571.9509723708361457857750698+2049 13579.5760795190750455405531602+2050 13587.2016745912074994030386743+2051 13594.8277573492798800140838674+2052 13602.4543275555705401671130947+2053 13610.0813849725894737384454324+2054 13617.7089293630779772780890975+2055 13625.3369604900083122594002922+2056 13632.9654781165833679860037829+2057 13640.5944820062363251543772046+2058 13648.2239719226303200705057402+2059 13655.8539476296581095190184668+2060 13663.4844088914417362832222927+2061 13671.1153554723321953144540188+2062 13678.746787136909100549175656+2063 13686.3787036499803523722427124+2064 13694.0111047765818057247797287+2065 13701.6439902819769388551018911+2066 13709.2773599316565227111260876+2067 13716.9112134913382909727192894+2068 13724.5455507269666107224366479+2069 13732.1803714047121537531061835+2070 13739.8156752909715685107214183+2071 13747.4514621523671526711077622+2072 13755.0877317557465263488329069+2073 13762.7244838681823059368359103+2074 13770.3617182569717785752540661+2075 13777.999434689636577247931057+2076 13785.6376329339223565050942669+2077 13793.2763127577984688106935032+2078 13800.9154739294576415128977312+2079 13808.5551162173156544362507633+2080 13816.1952393900110180939911706+2081 13823.8358432164046525190459976+2082 13831.4769274655795667122121519+2083 13839.1184919068405387060436278+2084 13846.7605363097137962429669877+2085 13854.4030604439466980661517772+2086 13862.0460640795074158216667903+2087 13869.6895469865846165704573259+2088 13877.3335089355871459086827848+2089 13884.9779496971437116949581556+2090 13892.622869042102568383047118+2091 13900.2682667415312019585586613+2092 13907.9141425667160154782032687+2093 13915.5604962891620152101688617+2094 13923.2073276805924973741808206+2095 13930.8546365129487354798145138+2096 13938.5024225583896682616328663+2097 13946.1506855892915882097255817+2098 13953.7994253782478306942307061+2099 13961.4486416980684636824232789+2100 13969.0983343217799780469598598+2101 13976.7485030226249784638717533+2102 13984.3991475740618748989037695+2103 13992.0502677497645746807993632+2104 13999.7018633236221751601369858+2105 14007.3539340697386569523264614+2106 14015.0064797624325777633781619+2107 14022.6595001762367667970617099+2108 14030.3129950858980197420748731+2109 14037.9669642663767943378472414+2110 14045.6214074928469065176071891+2111 14053.276324540695227127344523+2112 14060.9317151855213792193051045+2113 14068.5875792031374359186576069+2114 14076.2439163695676188619764281+2115 14083.9007264610479972061886286+2116 14091.5580092540261872066365985+2117 14099.2157645251610523629119794+2118 14106.8739920513224041311201769+2119 14114.5326916095907032012385967+2120 14122.1918629772567613382355215+2121 14129.8515059318214437856203177+2122 14137.5116202509953722300994209+2123 14145.1722057126986283260162955+2124 14152.8332620950604577782573006+2125 14160.4947891764189749823091132+2126 14168.1567867353208682201570741+2127 14175.8192545505211054107175164+2128 14183.4821924009826404135008251+2129 14191.1456000658761198842056476+2130 14198.8094773245795906809483388+2131 14206.4738239566782078198353722+2132 14214.1386397419639429785900873+2133 14221.8039244604352935469487685+2134 14229.4696778922969922225446658+2135 14237.135899817959717151002167+2136 14244.8025900180398026089669241+2137 14252.4697482733589502288013137+2138 14260.1373743649439407636781763+2139 14267.8054680740263463918093387+2140 14275.4740291820422435585489611+2141 14283.1430574706319263551152879+2142 14290.8125527216396204326778979+2143 14298.482514717113197450561059+2144 14306.1529432393038900573172916+2145 14313.8238380706660074034287272+2146 14321.495198993856651184397327+2147 14329.167025791735432212988486+2148 14336.8393182473641875193959999+2149 14344.5120761440066979780998152+2150 14352.1852992651284064601914085+2151 14359.8589873943961365099450626+2152 14367.5331403156778115444167121+2153 14375.2077578130421745748554286+2154 14382.8828396707585084487159989+2155 14390.558385673296356611064425+2156 14398.2343956053252443841715383+2157 14405.9108692517144007640932696+2158 14413.5878063975324807330394614+2159 14421.2652068280472880863364368+2160 14428.9430703287254987727918604+2161 14436.6213966852323847472737338+2162 14444.3001856834315383343186694+2163 14451.9794371093845971015878697+2164 14459.6591507493509692419925196+2165 14467.3393263897875594633135635+2166 14475.0199638173484953841440957+2167 14482.7010628188848544349858366+2168 14490.3826231814443912633344031+2169 14498.0646446922712656415913048+2170 14505.7471271388057708766438134+2171 14513.4300703086840627199570516+2172 14521.1134739897378887770258481+2173 14528.7973379699943184150370806+2174 14536.4816620376754731675964067+2175 14544.1664459811982576353764427+2176 14551.8516895891740908815466022+2177 14559.5373926504086383208479505+2178 14567.2235549539015441011795602+2179 14574.9101762888461639765659772+2180 14582.5972564446292986703785173+2181 14590.2847952108309277276862155+2182 14597.9727923772239438556153434+2183 14605.6612477337738877505994895+2184 14613.3501610706386834114052713+2185 14621.0395321781683739368218108+2186 14628.7293608469048578069051559+2187 14636.4196468675816256466718725+2188 14644.1103900311234974711390694+2189 14651.8015901286463604106111343+2190 14659.4932469514569069151164798+2191 14667.1853602910523734369005979+2192 14674.8779299391202795898847165+2193 14682.5709556875381677850023389+2194 14690.2644373283733433403289183+2195 14697.9583746538826150649228898+2196 14705.6527674565120363152992336+2197 14713.347615528896646523459696+2198 14721.0429186638602131954067261+2199 14728.73867665441497437907112+2200 14736.4348892937613816005862786+2201 14744.1315563752878432678448975+2202 14751.8286776925704685402768068+2203 14759.5262530393728116637895702+2204 14767.2242822096456167698163339+2205 14774.9227649975265631374182892+2206 14782.6217011973400109173919767+2207 14790.3210906035967473173345135+2208 14798.0209330109937332466226722+2209 14805.7212282144138504202645736+2210 14813.4219760089256489205855871+2211 14821.1231761897830952157128479+2212 14828.8248285524253206338256104+2213 14836.5269328924763702921414594+2214 14844.2294890057449524796111906+2215 14851.9324966882241884922979572+2216 14859.6359557360913629204190511+2217 14867.3398659457076743860314552+2218 14875.0442271136179867303450583+2219 14882.7490390365505806496501732+2220 14890.4543015114169057788487377+2221 14898.1600143353113332215813087+2222 14905.8661773055109085259446827+2223 14913.572790219475105104797688+2224 14921.2798528748455780996554014+2225 14928.9873650694459186871747356+2226 14936.6953266012814088272370349+2227 14944.4037372685387764516359935+2228 14952.1125968695859510923818847+2229 14959.8219052029718199486357488+2230 14967.5316620674259843912898454+2231 14975.2418672618585169042133199+2232 14982.952520585359718461184671+2233 14990.6636218371998763375352394+2234 14998.3751708168290223555305534+2235 15006.0871673238766915625189862+2236 15013.7996111581516813408797804+2237 15021.5125021196418109488050931+2238 15029.2258400085136814909533051+2239 15036.9396246251124363180134159+2240 15044.6538557699615218542229207+2241 15052.3685332437624488518841286+2242 15060.0836568473945540719264385+2243 15067.7992263819147623895646372+2244 15075.5152416485573493241058249+2245 15083.231702448733703991960106+2246 15090.9486085840320924819127076+2247 15098.6659598562174216517177044+2248 15106.3837560672310033450760391+2249 15114.1019970191903190280630269+2250 15121.8206825143887848440730275+2251 15129.5398123552955170863514522+2252 15137.2593863445550980871867535+2253 15144.9794042849873425228375121+2254 15152.6998659795870641332722025+2255 15160.4207712315238428558016688+2256 15168.1421198441417923716867932+2257 15175.863911620959328064806278+2258 15183.5861463656689353914718934+2259 15191.3088238821369386604809691+2260 15199.0319439744032702224983242+2261 15206.7555064466812400678622389+2262 15214.4795111033573058319114758+2263 15222.203957748990843206932749+2264 15229.9288461883139167598304325+2265 15237.6541762262310511546226733+2266 15245.3799476678190027788704514+2267 15253.1061603183265317731484909+2268 15260.8328139831741744626692889+2269 15268.5599084679540161901738724+2270 15276.2874435784294645492052455+2271 15284.0154191205350230168828165+2272 15291.7438349003760649852984316+2273 15299.4726907242286081906569572+2274 15307.2019863985390895392866711+2275 15314.93172172992414032964703+2276 15322.661896525170361869463679+2277 15330.3925105912341014871228659+2278 15338.1235637352412289364597047+2279 15345.8550557644869131940770163+2280 15353.5869864864353996483337447+2281 15361.3193557087197876791442108+2282 15369.052163239141808627731728+2283 15376.785408885671604155482352+2284 15384.5190924564475049910467824+2285 15392.2532137597758100648406731+2286 15399.9877726041305660300958365+2287 15407.722768798153347169617053+2288 15415.4582021506530356874014125+2289 15423.1940724706056023842793269+2290 15430.930379567153887716738554+2291 15438.6671232496073832380947715+2292 15446.404303327442013421174431+2293 15454.1419196102999178616778013+2294 15461.8799719079892338613922934+2295 15469.6184600304838793904283231+2296 15477.3573837879233364276521356+2297 15485.0967429906124346784921714+2298 15492.8365374490211356692977033+2299 15500.5767669737843172174306179+2300 15508.3174313757015582762733536+2301 15516.0585304657369241543381367+2302 15523.8000640550187521076647811+2303 15531.5420319548394373046964372+2304 15539.2844339766552191628247847+2305 15547.0272699320859680557982692+2306 15554.770539632914972391189084+2307 15562.514242891088726057116686+2308 15570.2583795187167162374277256+2309 15578.002949328071211594534345+2310 15585.747952131587050819114878+2311 15593.4933877418614315458830464+2312 15601.239255971653699634633812+2313 15608.9855566338851388157760968+2314 15616.7322895416387606995646319+2315 15624.4794545081590951482452384+2316 15632.2270513468519810103298789+2317 15639.9750798712843572162198485+2318 15647.7235398951840542343974972+2319 15655.472431232439585887408894+2320 15663.2217536970999415268618538+2321 15670.9715071033743785666657537+2322 15678.721691265632215373741564+2323 15686.4723059984026245154325151+2324 15694.2233511163744263628478043+2325 15701.9748264343958830493737326+2326 15709.726731767474492783588633+2327 15717.4790669307767845158199249+2328 15725.2318317396281129575835881+2329 15732.9850260095124539531483129+2330 15740.7386495560722002024685292+2331 15748.4927021951079573347324681+2332 15756.247183742578340331773345+2333 15764.0020940145997703005936917+2334 15771.7574328274462715942547893+2335 15779.5131999975492692803850799+2336 15787.2693953414973869565633494+2337 15795.0260186760362449118343854+2338 15802.7830698180682586336167211+2339 15810.5405485846524376592639724+2340 15818.2984547930041847715431739+2341 15826.0567882604950955372954031+2342 15833.8155488046527581885458684+2343 15841.5747362431605538453325117+2344 15849.3343503938574570795240483+2345 15857.0943910747378368189002324+2346 15864.8548581039512575907689972+2347 15872.6157512998022811043969734+2348 15880.3770704807502681715317382+2349 15888.1388154654091809642959912+2350 15895.9009860725473856097356926+2351 15903.6635821210874551203060302+2352 15911.4266034301059726595809094+2353 15919.1900498188333351424734839+2354 15926.9539211066535571692570584+2355 15934.7182171131040752926775082+2356 15942.4829376578755526174501642+2357 15950.2480825608116837314359136+2358 15958.0136516419089999677930602+2359 15965.7796447213166749974032795+2360 15973.5460616193363307508717855+2361 15981.3129021564218436694036082+2362 15989.0801661531791512838596512+2363 15996.8478534303660591212979707+2364 16004.6159638088920479383074776+2365 16012.384497109818081280443023+2366 16020.1534531543564133670725827+2367 16027.9228317638703973009489995+2368 16035.6926327598742936018204879+2369 16043.462855964033079063395843+2370 16051.2335011981622559329820252+2371 16059.0045682842276614131135215+2372 16066.7760570443452774844946055+2373 16074.547967300781041049577335+2374 16082.3202988759506543960998378+2375 16090.0930515924193959799111432+2376 16097.8662252729019315264105189+2377 16105.639819740262125449930968+2378 16113.4138348175128525903982355+2379 16121.1882703278158102665983573+2380 16128.9631260944813306453884682+2381 16136.7384019409681934261872627+2382 16144.5140976908834388400831721+2383 16152.2902131679821809628999912+2384 16160.066748196167421341561348+2385 16167.8437025994898629330970669+2386 16175.6210762021477243556361309+2387 16183.3988688284865544507325916+2388 16191.1770803029990471563724223+2389 16198.955710450324856690010946+2390 16206.734759095250413040992101+2391 16214.5142260627087377717024401+2392 16222.2941111777792601268143767+2393 16230.0744142656876334499748162+2394 16237.855135151805551907296919+2395 16245.6362736616505675170143561+2396 16253.4178296208859074846590195+2397 16261.1998028553202918431247501+2398 16268.9821931909077513969812422+2399 16276.7650004537474459704038743+2400 16284.5482244700834829580867988+2401 16292.3318650663047361785082098+2402 16300.1159220689446650289182796+2403 16307.9003953046811339414218308+2404 16315.6852846003362321395293756+2405 16323.470589782876093694551718+2406 16331.2563106794107178812148745+2407 16339.0424471171937898318736187+2408 16346.8289989236225014887035104+2409 16354.615965926237372853252808+2410 16362.4033479527220735327372108+2411 16370.1911448309032445824619058+2412 16377.9793563887503206437569325+2413 16385.7679824543753523768134008+2414 16393.557022856032829187809622+2415 16401.3464774221195022497177322+2416 16409.136345981174207816182897+2417 16416.9266283618776908278687017+2418 16424.7173243930524288106638308+2419 16432.5084339036624560651466445+2420 16440.2999567228131881467057553+2421 16448.0918926797512466357161989+2422 16455.8842416038642841971722842+2423 16463.6770033246808099291796855+2424 16471.4701776718700149997108254+2425 16479.2637644752415985710290657+2426 16487.0577635647455940111886989+2427 16494.8521747704721953920191966+2428 16502.6469979226515842730036331+2429 16510.4422328516537567704626627+2430 16518.2378793879883509114568804+2431 16526.033937362304474271821846+2432 16533.8304066053905318977514983+2433 16541.6272869481740545103471242+2434 16549.4245782217215269925504883+2435 16557.2222802572382171578811585+2436 16565.0203928860680048003994928+2437 16572.8189159396932110253181783+2438 16580.6178492497344278596866324+2439 16588.4171926479503481425739929+2440 16596.2169459662375956941778377+2441 16604.0171090366305557632871807+2442 16611.8176816913012057525296973+2443 16619.6186637625589462208345316+2444 16627.4200550828504321625434339+2445 16635.2218554847594045626043709+2446 16643.0240648010065222272831361+2447 16650.8266828644491938898298769+2448 16658.6297095080814105905388305+2449 16666.4331445650335783306409403+2450 16674.2369878685723509994703966+2451 16682.0412392521004635743475118+2452 16689.8458985491565655926217086+2453 16697.6509655934150548953197574+2454 16705.456440218685911641845757+2455 16713.2623222589145325951807066+2456 16721.0686115481815656770308656+2457 16728.8753079207027447923754415+2458 16736.6824112108287249228654917+2459 16744.4899212530449174885272582+2460 16752.2978378819713259772244904+2461 16760.106160932362381841335642+2462 16767.9148902391067806611031524+2463 16775.7240256372273185741133458+2464 16783.5335669618807289703668028+2465 16791.3435140483575194524003687+2466 16799.1538667320818090599232815+2467 16806.9646248486111657584312015+2468 16814.7757882336364441912632374+2469 16822.5873567229816236945683556+2470 16830.3993301526036465746488619+2471 16838.2117083585922566471499348+2472 16846.0244911771698380375654787+2473 16853.8376784446912542425318527+2474 16861.65126999764368745138231+2475 16869.4652656726464781274362627+2476 16877.2796653064509648484987623+2477 16885.0944687359403244060468542+2478 16892.9096757981294121625807346+2479 16900.7252863301646026666189023+2480 16908.5413001693236305248177544+2481 16916.3577171530154315306973375+2482 16924.1745371187799840494562131+2483 16931.9917599042881506583596505+2484 16939.8093853473415200421866033+2485 16947.6274132858722491432221699+2486 16955.4458435579429055652834771+2487 16963.2646760017463102312681611+2488 16971.083910455605380293715853+2489 16978.9035467579729722978743045+2490 16986.7235847474317255967630134+2491 16994.5440242626939060177284332+2492 17002.3648651426012497799860657+2493 17010.1861072261248076626459537+2494 17018.0077503523647894227193004+2495 17025.8297943605504084626051509+2496 17033.6522390900397267465572763+2497 17041.4750843803194999656326014+2498 17049.2983300710050229506237157+2499 17057.121976001839975332479201+2500 17064.9460220126962674497167026+2501 17072.7704679435738865023348551+2502 17080.5953136346007429517313626+2503 17088.4205589260325171661357115+2504 17096.2462036582525063110661732+2505 17104.0722476717714714843219285+2506 17111.8986908072274850950223178+2507 17119.7255329053857784862063871+2508 17127.5527738071385898005070676+2509 17135.3804133535050120884154861+2510 17143.2084513856308416586520628+2511 17151.0368877447884266701622081+2512 17158.8657222723765159652555818+2513 17166.6949548099201081434090274+2514 17174.5245851990703008752544387+2515 17182.3546132816041404562739592+2516 17190.1850388994244715997260537+2517 17198.0158618945597874683271277+2518 17205.8470821091640799442145021+2519 17213.6786993855166901367176813+2520 17221.5107135660221591274659802+2521 17229.3431244932100789523616966+2522 17237.1759320097349438199491377+2523 17245.009135958376001565710927+2524 17252.8427361820371053418241293+2525 17260.6767325237465655419098462+2526 17268.5111248266570019603110398+2527 17276.3459129340451961854344474+2528 17284.1810966893119442266935536+2529 17292.0166759359819093745906824+2530 17299.8526505177034752934773703+2531 17307.6890202782485993465332712+2532 17315.525785061512666152504937+2533 17323.3629447115143413737468999+2534 17331.2004990723954257351085718+2535 17339.0384479884207092732115512+2536 17346.8767913039778258156630098+2537 17354.7155288635771076897519027+2538 17362.5546605118514406601758212+2539 17370.3941860935561190953473721+2540 17378.2341054535687013618300365+2541 17386.0744184368888654464545216+2542 17393.9151248886382648056676814+2543 17401.7562246540603844416671365+2544 17409.5977175785203972048757793+2545 17417.4396035075050203223114025+2546 17425.2818822866223721514077341+2547 17433.1245537616018291588442117+2548 17440.9676177782938831239428689+2549 17448.811074182669998566191746+2550 17456.6549228208224703964552767+2551 17464.4991635389642817914331329+2552 17472.3437961834289622909300448+2553 17480.1888206006704461175001386+2554 17488.0342366372629307180303606+2555 17495.8800441399007355268285815+2556 17503.7262429553981609497829907+2557 17511.5728329306893475691604107+2558 17519.419813912828135568612174+2559 17527.2671857489879243779572191+2560 17535.1149482864615325373130675+2561 17542.9631013726610577801463523+2562 17550.8116448551177373348155715+2563 17558.66057858148180844417974+2564 17566.5099023995223691028476107+2565 17574.3596161571272390116431332+2566 17582.2097197023028207488638066+2567 17590.0602128831739611579095775+2568 17597.9110955479838129508609179+2569 17605.7623675450936965275857026+2570 17613.6140287229829620099554883+2571 17621.4660789302488514907527755+2572 17629.3185180156063614968518082+2573 17637.1713458278881056662564448+2574 17645.0245622160441776385795984+2575 17652.8781670291420141585497194+2576 17660.7321601163662583921307534+2577 17668.5865413270186234548429751+2578 17676.4413105105177561518730553+2579 17684.2964675163991009295626797+2580 17692.1520121943147640378659911+2581 17700.0079443940333779033670786+2582 17707.8642639654399657124496917+2583 17715.7209707585358062042122983+2584 17723.5780646234382986727225567+2585 17731.4355454103808281782062103+2586 17739.2934129697126309667663545+2587 17747.1516671518986600982299632+2588 17755.0103078075194512817194967+2589 17762.8693347872709889185483438+2590 17770.7287479419645723520397837+2591 17778.5885471225266823238700762+2592 17786.4487321799988476365372177+2593 17794.3093029655375120215578198+2594 17802.1702593304139012129954875+2595 17810.0316011260138902259249924+2596 17817.8933282038378708394374506+2597 17825.7554404155006192837926252+2598 17833.6179376127311641313253872+2599 17841.4808196473726543907142715+2600 17849.344086371382227804220974+2601 17857.2077376368308793475105337+2602 17865.0717732959033299316628483+2603 17872.9361932008978953069870659+2604 17880.8009972042263551682512924+2605 17888.6661851584138224609409474+2606 17896.5317569160986128881599898+2607 17904.3977123300321146177901241+2608 17912.264051253078658189523985+2609 17920.1307735382153866213891767+2610 17927.9978790385321257153809307+2611 17935.865367607231254561822018+2612 17943.7332390976275762420694333+2613 17951.601493363148188729188238+2614 17959.4701302573323559862138238+2615 17967.3391496338313792616247263+2616 17975.2085513464084685816489844+2617 17983.0783352489386144390279069+2618 17990.94850119540845967786197+2619 17998.8190490399161715741644273+2620 18006.6899786366713141117490749+2621 18014.5612898399947204530794657+2622 18022.4329825043183656047077233+2623 18030.3050564841852392769319549+2624 18038.177511634249218937302111+2625 18046.050347809274943057604987+2626 18053.9235648641376845539599048+2627 18061.797162653823224419657455+2628 18069.6711410334277255503745186+2629 18077.5454998581576067613996258+2630 18085.4202389833294169965035435+2631 18093.2953582643697097280908163+2632 18101.1708575568149175482688161+2633 18109.0467367163112269504716837+2634 18116.9229955986144533012773732+2635 18124.7996340595899160020568315+2636 18132.6766519552123138400951696+2637 18140.5540491415656005288255003+2638 18148.4318254748428604368169351+2639 18156.3099808113461845051590473+2640 18164.1885150074865463528859239+2641 18172.0674279197836785700837363+2642 18179.9467194048659491983265711+2643 18187.8263893194702383980860692+2644 18195.706437520441815302761223+2645 18203.586863864734215058975488+2646 18211.4676682094091160527891613+2647 18219.348850411636217321475781+2648 18227.2304103286931161505120942+2649 18235.1123478179651858554319364+2650 18242.9946627369454537481951563+2651 18250.8773549432344792877235112+2652 18258.7604242945402324142562427+2653 18266.643870648677972067178832+2654 18274.5276938635701248859792142+2655 18282.4118937972461640939865144+2656 18290.2964703078424885645481472+2657 18298.1814232536023020693018985+2658 18306.0667524928754927082003831+2659 18313.9524578841185125209460469+2660 18321.8385392858942572794956506+2661 18329.7249965568719464612939445+2662 18337.6118295558270034028970074+2663 18345.4990381416409356336464912+2664 18353.3866221733012153890567737+2665 18361.2745815099011603035777838+2666 18369.1629160106398142823970228+2667 18377.0516255348218285519450616+2668 18384.9407099418573428887695507+2669 18392.8301690912618670264435305+2670 18400.7200028426561622401745828+2671 18408.6102110557661231087821114+2672 18416.5007935904226594537107907+2673 18424.3917503065615784547489605+2674 18432.2830810642234669421214953+2675 18440.1747857235535738646274128+2676 18448.0668641448016929334932275+2677 18455.9593161883220454416137935+2678 18463.8521417145731632578531154+2679 18471.7453405841177719960783388+2680 18479.6389126576226743586008665+2681 18487.5328577958586336536992737+2682 18495.4271758597002574868994246+2683 18503.3218667101258816256879178+2684 18511.2169302082174540373357147+2685 18519.1123662151604190995095237+2686 18527.008174592243601983349236+2687 18534.9043552008590932086904264+2688 18542.8009079025021333711116493+2689 18550.697832558770998040486974+2690 18558.5951290313668828307249186+2691 18566.4927971820937886403756494+2692 18574.3908368728584070637890248+2693 18582.2892479656700059725067695+2694 18590.1880303226403152665727687+2695 18598.0871838059834127954461771+2696 18605.98670827801561044820274+2697 18613.8866036011553404127104216+2698 18621.7868696379230416034661357+2699 18629.6875062509410462577810698+2700 18637.5885133029334667000027884+2701 18645.489890656726082273462993+2702 18653.3916381752462264398405089+2703 18661.2937557215226740456297579+2704 18669.1962431586855287554056613+2705 18677.0991003499661106515766062+2706 18685.0023271586968440003177905+2707 18692.9059234483111451833779433+2708 18700.8098890823433107954530994+2709 18708.7142239244284059068217852+2710 18716.6189278383021524909366467+2711 18724.5240006878008180166682317+2712 18732.4294423368611042048973048+2713 18740.3352526495200359491527503+2714 18748.2414314899148503999927856+2715 18756.1479787222828862128278772+2716 18764.0548942109614729588844158+2717 18771.9621778203878206990088742+2718 18779.8698294150989097200128331+2719 18787.777848859731380433259921+2720 18795.6862360190214234351963756+2721 18803.5949907578046697295275898+2722 18811.5041129410160811107436637+2723 18819.4136024336898407086976367+2724 18827.3234591009592436939407277+2725 18835.2336828080565881435195628+2726 18843.1442734203130660669410177+2727 18851.0552308031586545920109517+2728 18858.9665548221220073102537559+2729 18866.8782453428303457816202817+2730 18874.7903022310093511981923585+2731 18882.7027253524830562065927539+2732 18890.6155145731737368888100633+2733 18898.5286697591018049011486599+2734 18906.4421907763856997710144683+2735 18914.3560774912417813512479602+2736 18922.2703297699842224317164066+2737 18930.1849474790249015078780468+2738 18938.0999304848732957060314703+2739 18946.0152786541363738649641313+2740 18953.930991853518489773714545+2741 18961.8470699498212755651633374+2742 18969.7635128099435352651689461+2743 18977.6803203008811384969643898+2744 18985.5974922897269143405321444+2745 18993.5150286436705453466747833+2746 19001.4329292299984617054996556+2747 19009.3511939160937355690364909+2748 19017.269822569435975527707436+2749 19025.1888150576012212403696361+2750 19033.1081712482618382176510898+2751 19041.0278910091864127583011118+2752 19048.947974208239647038277347+2753 19056.8684207133822543522918858+2754 19064.7892303926708545075396335+2755 19072.7104031142578693693326923+2756 19080.6319387463914185583651131+2757 19088.5538371574152152993329764+2758 19096.4760982157684624206353586+2759 19104.3987217899857485048823384+2760 19112.3217077486969441899367922+2761 19120.245055960627098620217321+2762 19128.1687662945963360479902463+2763 19136.0928386195197525843791993+2764 19144.0172728044073130998214216+2765 19151.9420687183637482737004792+2766 19159.8672262305884517928856818+2767 19167.7927452103753776989090814+2768 19175.7186255271129378835115103+2769 19183.6448670502838997322896975+2770 19191.5714696494652839161770865+2771 19199.4984331943282623304915535+2772 19207.4257575546380561812838045+2773 19215.3534426002538342187208056+2774 19223.281488201128611117239174+2775 19231.2098942273091460022040336+2776 19239.1386605489358411228094068+2777 19247.0677870362426406709567883+2778 19254.9972735595569297458491128+2779 19262.9271199892994334640378976+2780 19270.8573261959841162146619061+2781 19278.7878920502180810596162441+2782 19286.7188174227014692783913625+2783 19294.6501021842273600573220025+2784 19302.5817462056816703229866804+2785 19310.5137493580430547194988666+2786 19318.4461115123828057294315728+2787 19326.3788325398647539381176148+2788 19334.311912311745168441068377+2789 19342.2453506993726573942544543+2790 19350.1791475741880687069921005+2791 19358.1133028077243908771799648+2792 19366.0478162716066539686311427+2793 19373.9826878375518307302461208+2794 19381.9179173773687378567727373+2795 19389.8535047629579373908998266+2796 19397.789449866311638266431761+2797 19405.7257525595135979922916431+2798 19413.6624127147390244771014456+2799 19421.5994302042544779940879317+2800 19429.5368049004177732860637316+2801 19437.4745366756778818102334847+2802 19445.4126254025748341225754934+2803 19453.3510709537396224015498685+2804 19461.2898732018941031108846812+2805 19469.2290320198508998011921639+2806 19477.168547280513306050167538+2807 19485.1084188568751885411235698+2808 19493.0486466220208902796144893+2809 19500.9892304491251339479034276+2810 19508.9301702114529253970280574+2811 19516.8714657823594572762196432+2812 19524.8131170352900127994312306+2813 19532.7551238437798696487312242+2814 19540.6974860814542040143191263+2815 19548.6402036220279947709207227+2816 19556.5832763393059277903205232+2817 19564.526704107182300389789779+2818 19572.4704867996409259161689116+2819 19580.4146242907550384653637054+2820 19588.3591164546871977370151249+2821 19596.3039631656891940241031294+2822 19604.2491642981019533372453683+2823 19612.1947197263554426634521475+2824 19620.140629324968575359099564+2825 19628.0868929685491166768832141+2826 19636.033510531793589426515382+2827 19643.9804818894871797689291198+2828 19651.9278069165036431437531351+2829 19659.8754854878052103298218965+2830 19667.8235174784424936384858751+2831 19675.7719027635543932394873308+2832 19683.7206412183680036191675549+2833 19691.6697327181985201707719731+2834 19699.6191771384491459166200091+2835 19707.5689743546109983619071022+2836 19715.5191242422630164799067635+2837 19723.4696266770718678283410487+2838 19731.4204815347918557966883122+2839 19739.3716886912648269841975976+2840 19747.3232480224200787083795078+2841 19755.2751594042742666437438817+2842 19763.2274227129313125905550913+2843 19771.1800378245823123733762566+2844 19779.1330046155054438691741568+2845 19787.086322962065875164757101+2846 19795.0399927407156728433184964+2847 19802.994013827993710399859338+2848 19810.9483861005255767852633141+2849 19818.9031094350234850787987061+2850 19826.8581837082861812888217296+2851 19834.8136087971988532814564436+2852 19842.769384578733039837026825+2853 19850.7255109299465398340170776+2854 19858.6819877279833215603367173+2855 19866.6388148500734321516674429+2856 19874.5959921735329071566692718+2857 19882.5535195757636802288238878+2858 19890.5113969342534929446936116+2859 19898.4696241265758047483748731+2860 19906.4282010303897030219255277+2861 19914.387127523439813281545819+2862 19922.3464034835562094992932559+2863 19930.3060287886543245501121309+2864 19938.2660033167348607839588638+2865 19946.2263269458837007228048183+2866 19954.1869995542718178822986909+2867 19962.1480210201551877178710306+2868 19970.1093912218746986950639037+2869 19978.0711100378560634838691674+2870 19986.033177346609730276859275+2871 19993.9955930267307942308949811+2872 20001.9583569568989090321947703+2873 20009.9214690158781985845512798+2874 20017.884929082517168820480435+2875 20025.8487370357486196350894659+2876 20033.8128927545895569424504162+2877 20041.7773961181411048542662043+2878 20049.742247005588417980616737+2879 20057.7074452962005938525730217+2880 20065.6729908693305854664676643+2881 20073.6388836044151139496105788+2882 20081.6051233809745813472391785+2883 20089.5717100786129835304927524+2884 20097.5386435770178232252011717+2885 20105.5059237559600231612785063+2886 20113.4735504952938393425125668+2887 20121.4415236749567744365418215+2888 20129.4098431749694912848115727+2889 20137.3785088754357265323017072+2890 20145.3475206565422043768187679+2891 20153.3168783985585504376455238+2892 20161.2865819818372057433416446+2893 20169.2566312868133408384895144+2894 20177.2270261940047700091796457+2895 20185.1977665840118656270305814+2896 20193.1688523375174726115385969+2897 20201.1402833352868230105529404+2898 20209.1120594581674506986727685+2899 20217.0841805870891061933623612+2900 20225.0566466030636715885816161+2901 20233.0294573871850756057292471+2902 20241.0026128206292087616965259+2903 20248.9761127846538386538298277+2904 20256.9499571605985253616006565+2905 20264.9241458298845369647822408+2906 20272.8986786740147651779322087+2907 20280.8735555745736411009812612+2908 20288.8487764132270510857281784+2909 20296.8243410717222527180419036+2910 20304.8002494318877909155718619+2911 20312.7765013756334141407680798+2912 20320.7530967849499907290130806+2913 20328.7300355419094253316679392+2914 20336.7073175286645754738352863+2915 20344.6849426274491682266424584+2916 20352.662910720577716993848394+2917 20360.6412216904454384125782829+2918 20368.6198754195281693679903743+2919 20376.5988717903822841216797572+2920 20384.5782106856446115536243218+2921 20392.5578919880323525174785154+2922 20400.5379155803429973090209036+2923 20408.5182813454542432475619448+2924 20416.4989891663239123701187862+2925 20424.4800389259898692381642828+2926 20432.4614305075699388567578386+2927 20440.4431637942618247058660627+2928 20448.4252386693430268836816256+2929 20456.4076550161707603617490959+2930 20464.3904127181818733517069276+2931 20472.3735116588927657834551585+2932 20480.3569517218993078945587714+2933 20488.3407327908767589306970581+2934 20496.3248547495796859569697131+2935 20504.3093174818418827798707729+2936 20512.2941208715762889797419012+2937 20520.2792648027749090535169055+2938 20528.2647491595087316675697566+2939 20536.2505738259276490204787629+2940 20544.2367386862603763155199372+2941 20552.2232436248143713427029722+2942 20560.2100885259757541701636231+2943 20568.1972732742092269447266753+2944 20576.184797754057993801454053+2945 20584.172661850143680881993004+2946 20592.1608654471662564615396717+2947 20600.1494084299039511842337407+2948 20608.1382906832131784068002205+2949 20616.127512092028454650254803+2950 20624.1170725413623201594896042+2951 20632.1069719163052595705564732+2952 20640.0972101020256226854654234+2953 20648.0877869837695453543161102+2954 20656.0787024468608704645806514+2955 20664.0699563767010690373564533+2956 20672.0615486587691614304080764+2957 20680.0534791786216386478175386+2958 20688.0457478218923837560628226+2959 20696.0383544742925934063447193+2960 20704.0312990216106994629825028+2961 20712.0245813497122907376992967+2962 20720.0182013445400348296183555+2963 20728.0121588921136000707918452+2964 20736.0064538785295775770840695+2965 20744.0010861899614034042314486+2966 20751.9960557126592808089019155+2967 20759.9913623329501026145767561+2968 20767.9870059372373736820782743+2969 20775.9829864120011334845670227+2970 20783.9793036437978787868326935+2971 20791.9759575192604864287031215+2972 20799.9729479250981362123962046+2973 20807.9702747480962338936399+2974 20815.9679378751163342763858095+2975 20823.9659371930960644109422155+2976 20831.9642725890490468953527857+2977 20839.9629439500648232798475087+2978 20847.961951163308777574192778+2979 20855.9612941160220598577678853+2980 20863.9609726955215099921955371+2981 20871.9609867891995814363543508+2982 20879.9613362845242651636016354+2983 20887.9620210690390136810351081+2984 20895.963041030362665150622539+2985 20903.9643960561893676120286649+2986 20911.9660860342885033069690508+2987 20919.9681108525046131049209251+2988 20927.9704703987573210300213521+2989 20935.9731645610412588889834467+2990 20943.9761932274259909998616784+2991 20951.9795562860559390214976471+2992 20959.9832536251503068834780538+2993 20967.987285133003005816436926+2994 20975.9916506979825794825344945+2995 20983.996350208532129205945453+2996 20992.0013835531692393031896688+2997 21000.0067506204859025131387454+2998 21008.0124512991484455265321725+2999 21016.0184854778974546148371305+3000 21024.0248530455477013582863501+3001 21032.0315538909880684729287568+3002 21040.0385879031814757365279619+3003 21048.0459549711648060131439909+3004 21056.0536549840488313762339685+3005 21064.0616878310181393301078083+3006 21072.0700534013310591295752817+3007 21080.0787515843195881976211677+3008 21088.0877822693893186409455111+3009 21096.0971453460193638632063413+3010 21104.106840703762285275802528+3011 21112.1168682322440191060347741+3012 21120.1272278211638033024830688+3013 21128.1379193602941045374392457+3014 21136.1489427394805453062336115+3015 21144.1602978486418311232949333+3016 21152.1719845777696778147833891+3017 21160.1840028169287389076364087+3018 21168.1963524562565331148676472+3019 21176.2090333859633719169596539+3020 21184.2220454963322872391911138+3021 21192.2353886777189592247398556+3022 21200.249062820551644103403137+3023 21208.2630678153311021557770304+3024 21216.2774035526305257727370474+3025 21224.2920699230954676100624532+3026 21232.3070668174437688380470355+3027 21240.3223941264654874859394016+3028 21248.3380517410228268810561916+3029 21256.3540395520500641824119039+3030 21264.3703574505534790087093388+3031 21272.3870053276112821605349762+3032 21280.4039830743735444366039091+3033 21288.4212905820621255438992661+3034 21296.4389277419706031015513573+3035 21304.4568944454642017383020889+3036 21312.4751905839797222834004948+3037 21320.4938160490254710507755381+3038 21328.51277073218118921633264+3039 21336.5320545250979822882206962+3040 21344.5516673194982496699166436+3041 21352.5716090071756143159749426+3042 21360.5918794799948524802896401+3043 21368.6124786298918235567169791+3044 21376.6334063488734000119068221+3045 21384.6546625290173974101914514+3046 21392.6762470624725045303806115+3047 21400.6981598414582135743119526+3048 21408.7204007582647504670063351+3049 21416.742969705253005248277747+3050 21424.7658665748544625556478869+3051 21432.7890912595711321984157541+3052 21440.8126436519754798227328875+3053 21448.8365236447103576675351846+3054 21456.8607311304889354111825258+3055 21464.8852660020946311086577232+3056 21472.9101281523810422191766017+3057 21480.9353174742718767240613129+3058 21488.9608338607608843347292735+3059 21496.9866772049117877906504065+3060 21505.0128473998582142471256552+3061 21513.0393443388036267527400268+3062 21521.0661679150212558163437106+3063 21529.0933180218540310634151026+3064 21537.1207945527145129816598535+3065 21545.1485974010848247557003454+3066 21553.1767264605165841907102844+3067 21561.2051816246308357248493822+3068 21569.2339627871179825303533842+3069 21577.2630698417377187031349826+3070 21585.2925026823189615407514366+3071 21593.3222612027597839085950045+3072 21601.352345297027346694162571+3073 21609.3827548591578313492611359+3074 21617.4134897832563725200061091+3075 21625.4445499634969907644696364+3076 21633.4759352941225253578364575+3077 21641.5076456694445671849250792+3078 21649.5396809838433917199323197+3079 21657.57204113176789209325956+3080 21665.604726007735512245279312+3081 21673.6377355063321801669009902+3082 21681.6710695222122412267950471+3083 21689.7047279500983915851349079+3084 21697.7387106847816116937164117+3085 21705.7730176211210998823147427+3086 21713.8076486540442060311391026+3087 21721.8426036785463653292456513+3088 21729.8778825896910321187695109+3089 21737.9134852826096138248369007+3090 21745.9494116525014049710187397+3091 21753.9856615946335212801873216+3092 21762.0222350043408338606379374+3093 21770.0591317770259034773375877+3094 21778.0963518081589149081631947+3095 21786.1338949932776113849919894+3096 21794.1717612279872291195070187+3097 21802.2099504079604319135809785+3098 21810.2484624289372458541018471+3099 21818.2872971867249940921040568+3100 21826.326454577198231706069204+3101 21834.365934496298680649260564+3102 21842.4057368400351647809559356+3103 21850.4458615044835449814436065+3104 21858.4863083857866543506464887+3105 21866.5270773801542334902397366+3106 21874.5681683838628658691274176+3107 21882.6095812932559132721440687+3108 21890.6513160047434513318472266+3109 21898.6933724148022051432672831+3110 21906.7357504199754849614812701+3111 21914.7784499168731219818774391+3112 21922.8214708021714042029777557+3113 21930.8648129726130123716856864+3114 21938.9084763250069560108269094+3115 21946.952460756228509528850837+3116 21954.9967661632191484115610921+3117 21963.0413924429864854957433332+3118 21971.0863394926042073245590788+3119 21979.1316072092120105845744305+3120 21987.177195490015538624292851+3121 21995.2231042322863180540614008+3122 22003.2693333333616954272200909+3123 22011.3158826906447740023642582+3124 22019.3627522016043505865901206+3125 22027.4099417637748524595939172+3126 22035.4574512747562743784952903+3127 22043.5052806322141156632558098+3128 22051.5534297338793173625637936+3129 22059.6018984775481995000568199+3130 22067.6506867610823984007535766+3131 22075.6997944824088040975669392+3132 22083.7492215395194978177704112+3133 22091.79896783047168954929031+3134 22099.8490332533876556866963221+3135 22107.8994177064546767567632977+3136 22115.9501210879249752234773959+3137 22124.0011432961156533723599369+3138 22132.0524842294086312739825574+3139 22140.1041437862505848265475088+3140 22148.1561218651528838774071776+3141 22156.2084183646915304233971496+3142 22164.2610331835070968898573774+3143 22172.3139662203046644882162519+3144 22180.3672173738537616520126175+3145 22188.4207865429883025512310071+3146 22196.4746736266065256848256139+3147 22204.5288785236709325513087514+3148 22212.5834011332082263972797931+3149 22220.6382413543092510437708157+3150 22228.6933990861289297902854097+3151 22236.7488742278862043964073527+3152 22244.8046666788639741408560785+3153 22252.8607763384090349578661078+3154 22260.9172031059320186507678396+3155 22268.973946880907332182647337+3156 22277.0310075628730970439629727+3157 22285.0883850514310886969970324+3158 22293.1460792462466760970206045+3159 22301.2040900470487612900503181+3160 22309.2624173536297190870757194+3161 22317.3210610658453368146363079+3162 22325.3800210836147541416274842+3163 22333.4392973069204029822148881+3164 22341.4988896358079474747368366+3165 22349.5587979703862240364747974+3166 22357.6190222108271814941720636+3167 22365.679562257365821290181019+3168 22373.7404180103001377641196136+3169 22381.8015893699910585099178923+3170 22389.863076236862384808135646+3171 22397.9248785114007321334324802+3172 22405.986996094155470737071821+3173 22414.0494288857386663043405992+3174 22422.1121767868250206867665823+3175 22430.1752396981518127090155417+3176 22438.2386175205188390503506701+3177 22446.3023101547883552005368807+3178 22454.3663175018850164900728472+3179 22462.43063946279581919463386+3180 22470.4952759385700417136087979+3181 22478.5602268303191858226147324+3182 22486.6254920392169179998729027+3183 22494.691071466499010826330019+3184 22502.7569650134632844594090688+3185 22510.823172581469548180274021+3186 22518.8896940719395420144930392+3187 22526.9565293863568784259850325+3188 22535.0236784262669840841345905+3189 22543.0911410932770417039605645+3190 22551.1589172890559319592237716+3191 22559.2270069153341754683595165+3192 22567.2954098739038748531208382+3193 22575.3641260666186568698186049+3194 22583.4331553953936146130447921+3195 22591.5024977622052497917654964+3196 22599.5721530690914150776704459+3197 22607.6421212181512565256659837+3198 22615.7124021115451560663987119+3199 22623.782995651494674070697196+3200 22631.8539017402824919858193395+3201 22639.9251202802523550433932499+3202 22647.9966511738090150389396281+3203 22656.0684943234181731828639213+3204 22664.1406496316064230228066916+3205 22672.2131170009611934372408574+3206 22680.2858963341306917002046779+3207 22688.3589875338238466170595537+3208 22696.4323905028102517311619291+3209 22704.5061051439201086013387853+3210 22712.5801313600441701500564208+3211 22720.6544690541336840821724232+3212 22728.7291181292003363741609398+3213 22736.8040784883161948337015629+3214 22744.8793500346136527295223454+3215 22752.9549326712853724913876733+3216 22761.030826301584229480121919+3217 22769.1070308288232558275600085+3218 22777.1835461563755843463162334+3219 22785.2603721876743925092628464+3220 22793.3375088262128464986101755+3221 22801.4149559755440453244802001+3222 22809.4927135392809650128657272+3223 22817.570781421096402862867511+3224 22825.6491595247229217731018591+3225 22833.7278477539527946371714656+3226 22841.806846012637948808092414+3227 22849.886154204689910631570492+3228 22857.9657722340797500480201546+3229 22866.0457000048380252632196772+3230 22874.1259374210547274874962307+3231 22882.2064843868792257433348141+3232 22890.287340806520211741305173+3233 22898.3685065842456448242010312+3234 22906.4499816243826969792861576+3235 22914.5317658313176979185419862+3236 22922.6138591094960802268117029+3237 22930.6962613634223245777359078+3238 22938.7789724976599050173751544+3239 22946.8619924168312343154148633+3240 22954.9453210256176093838483+3241 22963.0289582287591567630334999+3242 22971.1129039310547781750202174+3243 22979.1971580373620961440431662+3244 22987.2817204525973996840780111+3245 22995.3665910817355900533567644+3246 23003.4517698298101265757394274+3247 23011.5372566019129725288389119+3248 23019.6230513031945410987964652+3249 23027.7091538388636414016050105+3250 23035.7955641141874245708780081+3251 23043.8822820344913299119616265+3252 23051.969307505159031122288206+3253 23060.0566404316323825778691825+3254 23068.1442807194113656858258274+3255 23076.2322282740540353028563491+3256 23084.3204830011764662195380847+3257 23092.4090448064526997103637017+3258 23100.4979135956146901494105114+3259 23108.5870892744522516915421837+3260 23116.6765717488130050190423397+3261 23124.7663609246023241535796789+3262 23132.8564567077832833334044887+3263 23140.9468590043766039556765613+3264 23149.0375677204606015838247339+3265 23157.1285827621711330198384443+3266 23165.2199040357015434413918838+3267 23173.3115314473026136037015067+3268 23181.4034649032825071060178409+3269 23189.4957043100067177226527249+3270 23197.588249573898016798443278+3271 23205.6811006014364007085540916+3272 23213.7742572991590383825193102+3273 23221.8677195736602188924264513+3274 23229.9614873315912991051439926+3275 23238.0555604796606513984949352+3276 23246.1499389246336114412787301+3277 23254.2446225733324260370441337+3278 23262.3396113326362010315157376+3279 23270.4349051094808492835770958+3280 23278.530503810859038699713547+3281 23286.6264073438201403318180127+3282 23294.7226156154701765382632226+3283 23302.8191285329717692081440001+3284 23310.9159460035440880485934126+3285 23319.0130679344627989350767713+3286 23327.1104942330600123245676368+3287 23335.2082248067242317315101647+3288 23343.3062595629003022664722964+3289 23351.4045984090893592373944802+3290 23359.5032412528487768133387751+3291 23367.6021880017921167506433677+3292 23375.7014385635890771813877049+3293 23383.8009928459654414640736161+3294 23391.9008507567030270964279731+3295 23400.0010122036396346902326063+3296 23408.1014770946689970080873692+3297 23416.2022453377407280620124124+3298 23424.3033168408602722737959008+3299 23432.4046915120888536969935775+3300 23440.5063692595434253004867492+3301 23448.6083499913966183135054354+3302 23456.7106336158766916320235958+3303 23464.8132200412674812864335182+3304 23472.9161091759083499704066177+3305 23481.0193009281941366308480666+3306 23489.1227952065751061188528434+3307 23497.2265919195568989015709553+3308 23505.3306909757004808348897574+3309 23513.435092283622092996841458+3310 23521.5397957519932015816440663+3311 23529.6448012895404478542842051+3312 23537.7501088050455981655503769+3313 23545.8557182073454940274254371+3314 23553.9616294053320022487471942+3315 23562.0678423079519651310462208+3316 23570.1743568242071507244701238+3317 23578.281172863154203143703687+3318 23586.3882903339045929437944626+3319 23594.4957091456245675557935524+3320 23602.6034292075351017821214803+3321 23610.7114504289118483515692246+3322 23618.8197727190850885338446366+3323 23626.9283959874396828135746373+3324 23635.0373201434150216236737443+3325 23643.1465450965049761379896432+3326 23651.2560707562578491231366773+3327 23659.3658970322763258494282935+3328 23667.476023834217425060819638+3329 23675.5864510717924500037716596+3330 23683.6971786547669395149482372+3331 23691.8082064929606191676580045+3332 23699.9195344962473524769527089+3333 23708.031162574555092163294096+3334 23716.1430906378658314747014725+3335 23724.2553185962155555672922567+3336 23732.3678463596941929441279833+3337 23740.4806738384455669522783885+3338 23748.5938009426673473380163571+3339 23756.7072275826110018600566695+3340 23764.8209536685817479607516438+3341 23772.9349791109385044951569256+3342 23781.0493038200938435178808299+3343 23789.1639277065139421276308001+3344 23797.2788506807185343693706995+3345 23805.3940726532808631940028093+3346 23813.5095935348276324754885578+3347 23821.6254132360389590853221639+3348 23829.7415316676483250242715281+3349 23837.8579487404425296113008601+3350 23845.9746643652616417295896829+3351 23854.09167845299895212956301+3352 23862.2089909146009257888476402+3353 23870.3266016610671543290696708+3354 23878.4445106034503084894084781+3355 23886.5627176528560906568225701+3356 23894.6812227204431874528628632+3357 23902.8000257174232223769890883+3358 23910.9191265550607085063051821+3359 23919.0385251446730012516296686+3360 23927.1582213976302511698171865+3361 23935.2782152253553568322474687+3362 23943.3985065393239177493982276+3363 23951.5190952510641873514185506+3364 23959.6399812721570260246195589+3365 23967.7611645142358542037992294+3366 23975.8826448889866055203184302+3367 23984.004422308147680005845366+3368 23992.1264966835098973516857786+3369 24000.2488679269164502236163933+3370 24008.3715359502628576321392514+3371 24016.4945006654969183580747125+3372 24024.6177619846186644334110603+3373 24032.7413198196803146773287873+3374 24040.8651740827862282873177835+3375 24048.9893246860928584853057972+3376 24057.1137715418087062187166819+3377 24065.2385145621942739163770881+3378 24073.3635536595620192991904024+3379 24081.4888887462763092454968832+3380 24089.6145197347533737110390816+3381 24097.7404465374612597034517852+3382 24105.8666690669197853111958603+3383 24113.9931872357004937868555162+3384 24122.1200009564266076847186537+3385 24130.247110141772983052560105+3386 24138.3745147044660636775477131+3387 24146.5022145572838353861913416+3388 24154.6302096130557803982550457+3389 24162.7584997846628317345527787+3390 24170.8870849850373276785481469+3391 24179.0159651271629662916788683+3392 24187.1451401240747599823267302+3393 24195.2746098888589901283539802+3394 24203.4043743346531617531272262+3395 24211.5344333746459582549500599+3396 24219.6647869220771961898257565+3397 24227.7954348902377801074715446+3398 24235.9263771924696574405060761+3399 24244.0576137421657734467318672+3400 24252.1891444527700262044346169+3401 24260.3209692377772216606214487+3402 24268.4530880107330287321202598+3403 24276.5855006852339344594624954+3404 24284.7182071749271992134718081+3405 24292.8512073935108119544811943+3406 24300.9845012547334455441013378+3407 24309.1180886723944121094630287+3408 24317.251969560343618459856657+3409 24325.3861438324815215556919206+3410 24333.5206114027590840297010199+3411 24341.655372185177729760308747+3412 24349.7904260937892994970930112+3413 24357.9257730426960065382594794+3414 24366.0614129460503924600541415+3415 24374.197345718055282898037746+3416 24382.3335712729637433801461842+3417 24390.4700895250790352114610361+3418 24398.6069003887545714106146214+3419 24406.7440037783938726977540351+3420 24414.8813996084505235339887766+3421 24423.0190877934281282122467157+3422 24431.1570682478802669994632703+3423 24439.2953408864104523300288006+3424 24447.43390562367208505041936+3425 24455.5727623743684107149360688+3426 24463.7119110532524759324785124+3427 24471.8513515751270847642776935+3428 24479.9910838548447551725141996+3429 24488.1311078073076755197473762+3430 24496.2714233474676611190814258+3431 24504.4120303903261108349944854+3432 24512.552928850933963734756858+3433 24520.6941186443916557903647111+3434 24528.8355996858490766309156761+3435 24536.9773718905055263453529163+3436 24545.119435173609672335504357+3437 24553.2617894504595062193439+3438 24561.4044346364023007844015726+3439 24569.5473706468345669912496871+3440 24577.6905973972020110269922174+3441 24585.8341148029994914086847226+3442 24593.9779227797709761366122761+3443 24602.122021243109499897352985+3444 24610.2664101086571213165548106+3445 24618.4110892921048802613535265+3446 24626.5560587091927551923597768+3447 24634.7013182757096205651433218+3448 24642.846867907493204281142685+3449 24650.9927075204300451879285379+3450 24659.1388370304554506287492868+3451 24667.2852563535534540412874462+3452 24675.4319654057567726055555123+3453 24683.5789641031467649408601698+3454 24691.7262523618533888517637908+3455 24699.8738300980551591229723082+3456 24708.0216972279791053630786687+3457 24716.1698536679007298970911928+3458 24724.3182993341439657076762926+3459 24732.4670341430811344250451205+3460 24740.6160580111329043654138444+3461 24748.7653708547682486179673657+3462 24756.9149725905044031802564183+3463 24765.0648631349068251419581112+3464 24773.2150424045891509169300921+3465 24781.3655103162131545234886382+3466 24789.5162667864887059128410939+3467 24797.6673117321737293456032+3468 24805.8186450700741618163319787+3469 24813.9702667170439115260049557+3470 24822.122176589984816402376624+3471 24830.2743746058466026681431722+3472 24838.4268606816268434568466177+3473 24846.5796347343709174764496069+3474 24854.7326966811719677205122605+3475 24862.8860464391708602269025641+3476 24871.0396839255561428839719175+3477 24879.1936090575640042841275792+3478 24887.3478217524782326247338577+3479 24895.5023219276301746562740177+3480 24903.6571095003986946777049907+3481 24911.8121843882101335789370914+3482 24919.967546508538267930371063+3483 24928.1231957789042691194248864+3484 24936.2791321168766625339829101+3485 24944.4353554400712867926999674+3486 24952.5918656661512530220932698+3487 24960.7486627128269041803549755+3488 24968.9057464978557744278184526+3489 24977.0631169390425485440113661+3490 24985.2207739542390213912288391+3491 24993.3787174613440574245600469+3492 25001.5369473783035502483017233+3493 25009.6954636231103822186921672+3494 25017.8542661138043840928994564+3495 25026.0133547684722947241976859+3496 25034.1727295052477208032651625+3497 25042.3323902423110966455386031+3498 25050.4923368978896440245574932+3499 25058.6525693902573320512328784+3500 25066.8130876377348370989749734+3501 25074.9738915586895027746140841+3502 25083.1349810715352999350494532+3503 25091.296356094732786749560749+3504 25099.4580165467890688077170316+3505 25107.6199623462577592728181393+3506 25115.7821934117389390808035527+3507 25123.9447096618791171845639015+3508 25132.1075110153711908435903933+3509 25140.2705973909544059588975525+3510 25148.4339687074143174531547671+3511 25156.5976248835827496959622543+3512 25164.7615658383377569742071628+3513 25172.9257914906035840074356412+3514 25181.0903017593506265081768113+3515 25189.2550965635953917871546938+3516 25197.4201758224004594033242435+3517 25205.585539454874441858667761+3518 25213.7511873801719453376880538+3519 25221.9171195174935304915348317+3520 25230.0833357860856732667009274+3521 25238.2498361052407257782250412+3522 25246.4166203942968772273378191+3523 25254.5836885726381148634881766+3524 25262.7510405596941849906868937+3525 25270.9186762749405540181046083+3526 25279.0865956378983695548614463+3527 25287.2547985681344215489456312+3528 25295.4232849852611034701985235+3529 25303.5920548089363735373036459+3530 25311.7611079588637159887173575+3531 25319.9304443547921023974789451+3532 25328.1000639165159530298380063+3533 25336.2699665638750982476371029+3534 25344.440152216754739954387772+3535 25352.6106207950854130849780824+3536 25360.7813722188429471389500329+3537 25368.9524064080484277572851926+3538 25377.1237232827681583426370859+3539 25385.2953227631136217229489319+3540 25393.4672047692414418583954511+3541 25401.6393692213533455915875543+3542 25409.8118160396961244409788356+3543 25417.9845451445615964374128917+3544 25426.1575564562865680037505953+3545 25434.3308498952527958775165517+3546 25442.5044253818869490765040716+3547 25450.6782828366605709072780958+3548 25458.8524221800900410165156087+3549 25467.0268433327365374851231816+3550 25475.2015462152059989650713869+3551 25483.376530748149086858885928+3552 25491.5517968522611475417354296+3553 25499.7273444482821746260559352+3554 25507.9031734569967712686522616+3555 25516.0792837992341125202164569+3556 25524.2556753958679077172037147+3557 25532.4323481678163629160061929+3558 25540.60930203604214336936529+3559 25548.7865369215523360449630289+3560 25556.9640527453984121861333001+3561 25565.141849428676189914633816+3562 25573.3199268925257968754197257+3563 25581.4982850581316329233599423+3564 25589.6769238467223328518373311+3565 25597.8558431795707291631740075+3566 25606.0350429779938148808230931+3567 25614.2145231633527064032683737+3568 25622.3942836570526063995734074+3569 25630.5743243805427667465217222+3570 25638.7546452553164515072898462+3571 25646.9352462029108999515950094+3572 25655.1161271449072896172594517+3573 25663.2972880029306994131333742+3574 25671.4787286986500727633186624+3575 25679.6604491537781807926356121+3576 25687.842449290071585553274982+3577 25696.0247290293306032925777963+3578 25704.207288293399267761885416+3579 25712.3901270041652935664024931+3580 25720.5732450835600395560155211+3581 25728.7566424535584722570097873+3582 25736.9403190361791293446276312+3583 25745.1242747534840831564110077+3584 25753.3085095275789042462714496+3585 25761.4930232806126249792306177+3586 25769.6778159347777031667747258+3587 25777.8628874123099857427662167+3588 25786.0482376354886724798561664+3589 25794.2338665266362797463409837+3590 25802.4197740081186043034070681+3591 25810.605960002344687142707184+3592 25818.7924244317667773642124021+3593 25826.9791672188802960942835527+3594 25835.1661882862238004439062293+3595 25843.3534875563789475070334747+3596 25851.5410649519704583989803753+3597 25859.7289203956660823348148805+3598 25867.9170538101765607476892597+3599 25876.1054651182555914470566992+3600 25884.2941542426997928167176368+3601 25892.4831211063486680526405218+3602 25900.672365632084569440501781+3603 25908.8618877428326626728898639+3604 25917.0516873615608912061183319+3605 25925.2417644112799406565930463+3606 25933.4321188150432032366786042+3607 25941.62275049594674223000926+3608 25949.8136593771292565061896633+3609 25958.0048453817720450748308329+3610 25966.1963084330989716788668792+3611 25974.3880484543764294270980773+3612 25982.580065368913305465905982+3613 25990.772359100060945690086369+3614 25998.9649295712131194927458735+3615 26007.1577767058059845542082894+3616 26015.3509004273180516698765815+3617 26023.5443006592701496169967519+3618 26031.7379773252253900602697917+3619 26039.9319303487891324962580387+3620 26048.1261596536089492365323493+3621 26056.3206651633745904295065837+3622 26064.51544680181794912090599+3623 26072.710504492713026352816163+3624 26080.9058381598758963012593409+3625 26089.101447727164671452244891+3626 26097.2973331184794678162409242+3627 26105.4934942577623701810140665+3628 26113.6899310689973974027844997+3629 26121.8866434762104677356434771+3630 26130.0836314034693641991806009+3631 26138.28089477488369998426824+3632 26146.47843351460488389695055+3633 26154.6762475468260858403846484+3634 26162.8743367957822023347815789+3635 26171.0727011857498220752947912+3636 26179.2713406410471915278039442+3637 26187.4702550860341805625419291+3638 26195.6694444451122481255130947+3639 26203.8689086427244079476507411+3640 26212.068647603355194291662037+3641 26220.2686612515306277365085974+3642 26228.468949511818180999471047+3643 26236.6695123088267447957459774+3644 26244.870349567206593735523793+3645 26253.0714612116493522584960238+3646 26261.2728471668879606057407685+3647 26269.474507357696640828935017+3648 26277.6764417088908628368426824+3649 26285.8786501453273104790272613+3650 26294.0811325919038476667381209+3651 26302.2838889735594845309194982+3652 26310.4869192152743436172913782+3653 26318.690223242069626118451504+3654 26326.8938009790075781429478514+3655 26335.0976523511914570212709878+3656 26343.3017772837654976487158156+3657 26351.5061757019148788650622828+3658 26359.7108475308656898710247296+3659 26367.9157926958848966814196178+3660 26376.1210111222803086150014758+3661 26384.3265027354005448209169717+3662 26392.5322674606350008417271121+3663 26400.7383052234138152129476418+3664 26408.9446159492078360990578059+3665 26417.1511995635285879659277139+3666 26425.3580559919282382896146294+3667 26433.5651851599995643014785879+3668 26441.7725869933759197695678289+3669 26449.9802614177312018162246072+3670 26458.1882083587798177718620306+3671 26466.3964277422766520648626511+3672 26474.6049194940170331475496178+3673 26482.8136835398367004581812795+3674 26491.022719805611771418920206+3675 26499.2320282172587084697276754+3676 26507.4416087007342861381347577+3677 26515.6514611820355581448412013+3678 26523.8615855871998245450934112+3679 26532.0719818423045989057928858+3680 26540.2826498734675755182865586+3681 26548.4935896068465966467905713+3682 26556.7048009686396198123990824+3683 26564.9162838850846851126297953+3684 26573.1280382824598825764579673+3685 26581.3400640870833195547907422+3686 26589.5523612253130881463337234+3687 26597.7649296235472326588017868+3688 26605.9777692082237171054262083+3689 26614.19087990582039273671026+3690 26622.4042616428549656073855053+3691 26630.6179143458849641785211036+3692 26638.8318379415077069547385098+3693 26647.0460323563602701564840333+3694 26655.2604975171194554273117969+3695 26663.4752333505017575761297151+3696 26671.6902397832633323543611852+3697 26679.9055167421999642679752644+3698 26688.1210641541470344243381816+3699 26696.3368819459794884138391074+3700 26704.552970044611804226243186+3701 26712.7693283769979602017249042+3702 26720.9859568701314030165349532+3703 26729.2028554510450157032538116+3704 26737.4200240468110857055853552+3705 26745.6374625845412729676438746+3706 26753.8551709913865780576879578+3707 26762.0731491945373103262547679+3708 26770.291397121223056098648325+3709 26778.5099146987126469017354723+3710 26786.7287018543141277250032856+3711 26794.947758515374725315831756+3712 26803.1670846092808165089356528+3713 26811.3866800634578965899295491+3714 26819.6065448053705476929700618+3715 26827.82667876252240723242944+3716 26836.047081862456136368554701+3717 26844.2677540327533885070665946+3718 26852.4886952010347778326527451+3719 26860.7099052949598478763093972+3720 26868.9313842422270401164862624+3721 26877.1531319705736626139890407+3722 26885.3751484077758586805942589+3723 26893.5974334816485755813311476+3724 26901.8199871200455332703853447+3725 26910.0428092508591931605792917+3726 26918.2658998020207269263842576+3727 26926.4892587014999853404190017+3728 26934.7128858773054671433901551+3729 26942.9367812574842879474294754+3730 26951.1609447701221491727832014+3731 26959.385376343343307017808805+3732 26967.61007590531054146223451+3733 26975.8350433842251253036370212+3734 26984.0602787083267932270929749+3735 26992.2857818058937109079596969+3736 27000.5115526052424441477409246+3737 27008.7375910347279280429932185+3738 27016.9638970227434361872288641+3739 27025.1904704977205499057711314+3740 27033.4173113881291275235178332+3741 27041.644419622477273665569193+3742 27049.8717951293113085906761036+3743 27058.0994378372157375574649284+3744 27066.3273476748132202233950669+3745 27074.5555245707645400764055778+3746 27082.7839684537685738992072204+3747 27091.0126792525622612661763478+3748 27099.2416568959205740728071526+3749 27107.4709013126564860976788378+3750 27115.7004124316209425968943525+3751 27123.930190181702829930947404+3752 27132.1602344918289452239745251+3753 27140.3905452909639660553490457+3754 27148.6211225081104201835738862+3755 27156.8519660723086553024301589+3756 27165.0830759126368088293386337+3757 27173.3144519582107777258911904+3758 27181.5460941381841883505094512+3759 27189.7780023817483663431878536+3760 27198.0101766181323065422784921+3761 27206.2426167766026429332751263+3762 27214.4753227864636186295538199+3763 27222.7082945770570558850277436+3764 27230.9415320777623261386737417+3765 27239.1750352179963200908883315+3766 27247.4088039272134178116308696+3767 27255.6428381349054588803116888+3768 27263.8771377706017125573830756+3769 27272.1117027638688479875910249+3770 27280.3465330443109044348457758+3771 27288.5816285415692615486692002+3772 27296.8169891853226096621771807+3773 27305.0526149052869201215551825+3774 27313.2885056312154156469852901+3775 27321.5246612928985407249830451+3776 27329.7610818201639320321024882+3777 27337.9977671428763888899678756+3778 27346.234717190937843751590604+3779 27354.4719318942873327189299449+3780 27362.709411182900966091656257+3781 27370.9471549867918989470754057+3782 27379.1851632360103017511731912+3783 27387.4234358606433310007386455+3784 27395.661972790815099896525128+3785 27403.9007739566866490474082131+3786 27412.1398392884559172054994285+3787 27420.3791687163577120321749669+3788 27428.6187621706636808949785598+3789 27436.8586195816822816953577665+3790 27445.0987408797587537271929945+3791 27453.3391259952750885660786344+3792 27461.5797748586500009893157536+3793 27469.8206874003388999265758614+3794 27478.0618635508338594411953163+3795 27486.3033032406635897420600173+3796 27494.5450064003934082260400778+3797 27502.7869729606252105509342503+3798 27511.0292028519974417388839292+3799 27519.2716960051850673102166252+3800 27527.5144523508995444476788677+3801 27535.7574718198887931910185527+3802 27544.0007543429371676618768207+3803 27552.2442998508654273189496077+3804 27560.4881082745307082433790794+3805 27568.7321795448264944543352175+3806 27576.9765135926825892547478935+3807 27585.2211103490650866071498252+3808 27593.4659697449763425395908731+3809 27601.7110917114549465815842008+3810 27609.9564761795756932300448783+3811 27618.2021230804495534451815763+3812 27626.4480323452236461763020569+3813 27634.6942039050812099174932298+3814 27642.9406376912415742931366051+3815 27651.1873336349601316732200336+3816 27659.4342916675283088184066896+3817 27667.68151172027353855482231+3818 27675.9289937245592314785217672+3819 27684.1767376117847476895961119+3820 27692.4247433133853685558812854+3821 27700.6730107608322685062297605+3822 27708.9215398856324868533064308+3823 27717.1703306193288996458701299+3824 27725.419382893500191550502222+3825 27733.6686966397608277627437657+3826 27741.918271789761025947602814+3827 27750.1681082751867282093934721+3828 27758.4182060277595730908683972+3829 27766.6685649792368676016064825+3830 27774.9191850614115592756175285+3831 27783.1700662061122082581257636+3832 27791.4212083452029594214941378+3833 27799.6726114105835145102513702+3834 27807.9242753341891043151837926+3835 27816.1762000479904608764540897+3836 27824.4283854839937897157090968+3837 27832.6808315742407420971388733+3838 27840.9335382508083873174493311+3839 27849.1865054458091850247107562+3840 27857.4397330913909575660446177+3841 27865.6932211197368623641111213+3842 27873.9469694630653643223600196+3843 27882.2009780536302082590072519+3844 27890.4552468237203913697000448+3845 27898.709775705660135718833161+3846 27906.9645646318088607594790448+3847 27915.2196135345611558818946696+3848 27923.4749223463467529905679491+3849 27931.7304909996304991097666356+3850 27939.9863194269123290175526827+3851 27948.24240756072723790822511+3852 27956.4987553336452540831544636+3853 27964.7553626782714116699720236+3854 27973.0122295272457233700769698+3855 27981.2693558132431532344247687+3856 27989.5267414689735894675601085+3857 27997.7843864271818172598577607+3858 28006.0422906206474916479348066+3859 28014.3004539821851104031977228+3860 28022.5588764446439869484878774+3861 28030.8175579409082233027890441+3862 28039.0764984038966830539605988+3863 28047.3356977665629643594601195+3864 28055.5951559618953729750191667+3865 28063.8548729229168953112360776+3866 28072.1148485826851715180496636+3867 28080.3750828742924685970577569+3868 28088.6355757308656535416446069+3869 28096.8963270855661665048811849+3870 28105.1573368715899939951625093+3871 28113.4186050221676420995461603+3872 28121.6801314705641097347562081+3873 28129.9419161500788619258168343+3874 28138.2039589940458031122799822+3875 28146.4662599358332504820114245+3876 28154.728818908843907332499696+3877 28162.9916358465148364596523896+3878 28171.254710682317433574044372+3879 28179.5180433497574007445825293+3880 28187.7816337823747198695517066+3881 28196.0454819137436261750065621+3882 28204.3095876774725817404741087+3883 28212.5739510072042490519317724+3884 28220.83857183661546458202585+3885 28229.103450099417212397495303+3886 28237.3685857293545977937658791+3887 28245.6339786602068209566796068+3888 28253.8996288257871506513247615+3889 28262.1655361599428979379314569+3890 28270.4317005965553899147980686+3891 28278.6981220695399434882137494+3892 28286.9648005128458391693423513+3893 28295.2317358604562948980331215+3894 28303.4989280463884398935235928+3895 28311.7663770046932885320001429+3896 28320.0340826694557142509817501+3897 28328.3020449747944234804925252+3898 28336.5702638548619296009886535+3899 28344.8387392438445269280054331+3900 28353.1074710759622647234901487+3901 28361.3764592854689212337865716+3902 28369.6457038066519777542369321+3903 28377.9152045738325927203672599+3904 28386.1849615213655758256220417+3905 28394.4549745836393621656141991+3906 28402.7252436950759864088564388+3907 28410.9957687901310569939400821+3908 28419.266549803293730353127532+3909 28427.5375866690866851623245874+3910 28435.8088793220660966173988663+3911 28444.0804276968216107368106517+3912 28452.3522317279763186905225257+3913 28460.6242913501867311551542084+3914 28468.8966064981427526953490702+3915 28477.1691771065676561713188373+3916 28485.4420031102180571725330607+3917 28493.7150844438838884775199723+3918 28501.9884210423883745397454007+3919 28510.262012840588005999536471+3920 28518.5358597733725142220168643+3921 28526.8099617756648458610204633+3922 28535.0843187824211374489502602+3923 28543.3589307286306900125494559+3924 28551.6337975493159437145517271+3925 28559.908919179532452521177691+3926 28568.1842955543688588954446468+3927 28576.459926608946868516256723+3928 28584.7358122784212250232426097+3929 28593.011952497979684787308107+3930 28601.2883472028429917068707677+3931 28609.5649963282648520297439655+3932 28617.841899809531909200637767+3933 28626.1190575819637187342440377+3934 28634.3964695809127231138732609+3935 28642.6741357417642267156105977+3936 28650.9520559999363707579587669+3937 28659.230230290880108276935372+3938 28667.5086585500791791265923522+3939 28675.7873407130500850049252831+3940 28684.066276715342064505140304+3941 28692.3454664925370681922464937+3942 28700.6249099802497337049415704+3943 28708.9046071141273608827588364+3944 28717.1845578298498869184433394+3945 28725.4647620631298615355252702+3946 28733.7452197497124221910586646+3947 28742.0259308253752693034935268+3948 28750.3068952259286415056495397+3949 28758.5881128872152909227595761+3950 28766.8695837451104584755512724+3951 28775.1513077355218492083349751+3952 28783.4332847943896076420664184+3953 28791.7155148576862931523525408+3954 28799.997997861416855372368892+3955 28808.2807337416186096206571356+3956 28816.5637224343612123537711951+3957 28824.846963875746636643740643+3958 28833.1304580019091476803199757+3959 28841.4142047490152782979924702+3960 28849.69820405326380452769736+3961 28857.9824558508857211732491195+3962 28866.2669600781442174124176915+3963 28874.5517166713346524226385394+3964 28882.8367255667845310313214539+3965 28891.1219867008534793907270898+3966 28899.4075000099332206773802567+3967 28907.6932654304475508159890335+3968 28915.9792828988523142278388227+3969 28924.2655523516353796036305091+3970 28932.5520737253166157007319326+3971 28940.8388469564478671648119311+3972 28949.1258719816129303758262574+3973 28957.4131487374275293183247195+3974 28965.7006771605392914760489394+3975 28973.9884571876277237507901725+3976 28982.2764887554041884054766761+3977 28990.5647718006118790314601611+3978 28998.8533062600257965399709058+3979 29007.142092070452725177711159+3980 29015.4311291687312085665565038+3981 29023.7204174917315257673348991+3982 29032.0099569763556673676531619+3983 29040.2997475595373115937406994+3984 29048.5897891782418004462803454+3985 29056.8800817694661158601961985+3986 29065.1706252702388558883684098+3987 29073.4614196176202109092449076+3988 29081.7524647487019398583200953+3989 29090.0437606006073464834506036+3990 29098.3353071104912556239782205+3991 29106.6271042155399895136301705+3992 29114.919151852971344107166958+3993 29123.2114499600345654307480339+3994 29131.503998474010325955985591+3995 29139.7967973322107009976568356+3996 29148.0898464719791451350451312+3997 29156.3831458306904686568804502+3998 29164.6766953457508140298496168+3999 29172.9704949545976323906468689+4000 29181.2645445946996600615353075+4001 29189.5588442035568950893898513+4002 29197.8533937187005738081923535+4003 29206.1481930776931474249495856+4004 29214.4432422181282586290048336+4005 29222.7385410776307182247138989+4006 29231.0340895938564817874563377+4007 29239.3298877044926263429528168+4008 29247.6259353472573270698595092+4009 29255.9222324598998340256104929+4010 29264.2187789802004488954791634+4011 29272.5155748459705017648297114+4012 29280.8126199950523279145297606+4013 29289.1099143653192446394953063+4014 29297.4074578946755280903391341+4015 29305.7052505210563901380939459+4016 29314.0032921824279552619814596+4017 29322.3015828167872374601987946+4018 29330.6001223621621171836934956+4019 29338.8989107566113182928985921+4020 29347.197947938224385037399133+4021 29355.4972338451216590585016761+4022 29363.7967684154542564146782604+4023 29372.0965515874040446298564244+4024 29380.3965832991836197645268819+4025 29388.6968634890362835096405061+4026 29396.9973920952360203032663161+4027 29405.2981690560874744699822013+4028 29413.5991943099259273829701621+4029 29421.9004677951172746487878875+4030 29430.2019894500580033147885308+4031 29438.5037592131751690991605877+4032 29446.8057770229263736435598237+4033 29455.1080428177997417883052358+4034 29463.4105565363138988701110808+4035 29471.7133181170179480423270386+4036 29480.0163274984914476176586236+4037 29488.3195846193443884333399992+4038 29496.6230894182171712387313877+4039 29504.9268418337805841053133157+4040 29513.2308418047357798590499697+4041 29521.535089269814253535093982+4042 29529.8395841677778198548050073+4043 29538.1443264374185907250544903+4044 29546.4493160175589527597890663+4045 29554.7545528470515448238250781+4046 29563.0600368647792355988467322+4047 29571.3657680096551011715804594+4048 29579.6717462206224026441180843+4049 29587.9779714366545637663614496+4050 29596.2844435967551485905611813+4051 29604.5911626399578391479223218+4052 29612.8981285053264131472495969+4053 29621.205341131954721695605126+4054 29629.5128004589666670409514203+4055 29637.8205064255161803367525604+4056 29646.1284589707871994285064768+4057 29654.4366580339936466621813063+4058 29662.745103554379406714528827+4059 29671.0537954712183044452480245+4060 29679.3627337238140827709718728+4061 29687.6719182515003805610504612+4062 29695.9813489936407105551036304+4063 29704.2910258896284373023163287+4064 29712.6009488788867551224499301+4065 29720.9111179008686660885428047+4066 29729.2215328950569580312734631+4067 29737.5321938009641825649596408+4068 29745.843100558132633135166727+4069 29754.1542531061343230878989798+4070 29762.4656513845709637603470105+4071 29770.7772953330739425931650589+4072 29779.0891848913043012642516191+4073 29787.4013199989527138440070155+4074 29795.7137005957394649720415672+4075 29804.0263266214144280553080183+4076 29812.3391980157570434876319485+4077 29820.6523147185762968906139205+4078 29828.9656766697106973758771553+4079 29837.2792838090282558286345683+4080 29845.593136076426463212549036+4081 29853.9072334118322688958608014+4082 29862.2215757552020589987559662+4083 29870.5361630465216347619500533+4084 29878.8509952258061909364606642+4085 29887.1660722331002941945432935+4086 29895.4813940084778615617643977+4087 29903.7969604920421388701858588+4088 29912.1127716239256792326350168+4089 29920.4288273442903215380344847+4090 29928.7451275933271689677659984+4091 29937.061672311256567533042589+4092 29945.3784614383280846332634064+4093 29953.6954949148204876353255567+4094 29962.0127726810417224738673572+4095 29970.3302946773288922724174472+4096 29978.6480608440482359854242326+4097 29986.9660711215951070611401786+4098 29995.2843254503939521253355011+4099 30003.602823770898289685815848+4100 30011.9215660235906888577185943+4101 30020.2405521489827481095624157+4102 30028.5597820876150740300248408+4103 30036.879255780057260115422519+4104 30045.1989731669078655778689785+4105 30053.5189341887943941740846861+4106 30061.8391387863732730548342558+4107 30070.1595869003298316349656924+4108 30078.4802784713782804840265896+4109 30086.8012134402616902374322429+4110 30095.1223917477519705281606697+4111 30103.4438133346498489389495699+4112 30111.7654781417848499749702927+4113 30120.0873861100152740569539146+4114 30128.4095371802281765347445685+4115 30136.7319312933393467212552008+4116 30145.0545683902932869468009685+4117 30153.3774484120631916337855257+4118 30161.7005712996509263917154844+4119 30170.0239369940870071325183697+4120 30178.3475454364305792061394278+4121 30186.6713965677693965563926774+4122 30194.9954903292198008970416356+4123 30203.3198266619267009080851801+4124 30211.6444055070635514522240494+4125 30219.9692268058323328114835162+4126 30228.2942904994635299439678048+4127 30236.6195965292161117607218597+4128 30244.9451448363775104226761081+4129 30253.2709353622636006576498922+4130 30261.5969680482186790973892868+4131 30269.9232428356154436346150476+4132 30278.2497596658549728000564763+4133 30286.5765184803667051594470189+4134 30294.9035192206084187304574528+4135 30303.23076182806621041954255+4136 30311.5582462442544754786771406+4137 30319.8859724107158869819575359+4138 30328.2139402690213753220443036+4139 30336.5421497607701077264224242+4140 30344.8706008275894677934548911+4141 30353.1992934111350350482058527+4142 30361.5282274530905645180094287+4143 30369.8574028951679663277603671+4144 30378.186819679107285314902744+4145 30386.5164777466766806640929421+4146 30394.8463770396724055615131775+4147 30403.1765174999187868688118805+4148 30411.5068990692682048166472685+4149 30419.8375216896010727178104842+4150 30428.1683853028258166999047072+4151 30436.4994898508788554575566797+4152 30444.8308352757245800241371217+4153 30453.1624215193553335629665457+4154 30461.4942485237913911779830142+4155 30469.8263162310809397438484163+4156 30478.1586245833000577554698764+4157 30486.4911735225526951969129381+4158 30494.8239629909706534296832023+4159 30503.1569929307135651003531324+4160 30511.4902632839688740675107719+4161 30519.8237739929518153480071534+4162 30528.1575249999053950824792125+4163 30536.4915162471003705201250524+4164 30544.8257476768352300227084387+4165 30553.1602192314361730877694382+4166 30561.4949308532570903910181462+4167 30569.8298824846795438478884839+4168 30578.1650740681127466942290759+4169 30586.5005055459935435861082561+4170 30594.8361768607863907187102777+4171 30603.1720879549833359642998418+4172 30611.5082387711039990292320871+4173 30619.8446292516955516299852186+4174 30628.1812593393326976881929863+4175 30636.5181289766176535446542557+4176 30644.8552381061801281922969467+4177 30653.1925866706773035280736484+4178 30661.5301746127938146237662513+4179 30669.8680018752417300156769706+4180 30678.2060684007605320131831651+4181 30686.5443741321170970261333923+4182 30694.8829190121056759110621677+4183 30703.2217029835478743362009339+4184 30711.5607259892926331652627734+4185 30719.8999879722162088599784328+4186 30728.2394888752221539013612579+4187 30736.5792286412412972296786726+4188 30744.9192072132317247031078636+4189 30753.2594245341787595750533685+4190 30761.5998805470949429901042939+4191 30769.9405751950200144986089235+4192 30778.2815084210208925898445081+4193 30786.62268016819165524376006+4194 30794.9640903796535205012700075+4195 30803.3057389985548270530765957+4196 30811.6476259680710148469989522+4197 30819.9897512314046057137867678+4198 30828.3321147317851840113965727+4199 30836.6747164124693772877086222+4200 30845.0175562167408369616624352+4201 30853.360634087910219022789062+4202 30861.7039499693151647491181877+4203 30870.0475038043202814434382094+4204 30878.3912955363171231878874577+4205 30886.7353251087241716168547611+4206 30895.0795924649868167081675869+4207 30903.4240975485773375925460202+4208 30911.7688403029948833813008749+4209 30920.1138206717654540122542621+4210 30928.4590385984418811138609698+4211 30936.8044940266038088875090422+4212 30945.1501868998576750079779749+4213 30953.496117161836691542032973+4214 30961.8422847562008258851337531+4215 30970.188689626636781716236396+4216 30978.5353317168579799706667913+4217 30986.8822109706045398310442442+4218 30995.2293273316432597362338446+4219 31003.5766807437675984083062314+4220 31011.9242711507976558974834112+4221 31020.2720984965801546450493264+4222 31028.6201627249884205642038924+4223 31036.9684637799223641388392581+4224 31045.3170016053084615402170718+4225 31053.6657761450997357615255653+4226 31062.0147873432757377702952999+4227 31070.3640351438425276786524456+4228 31078.7135194908326559313884989+4229 31087.0632403283051445118253698+4230 31095.4131976003454681654548024+4231 31103.7633912510655356413311207+4232 31112.1138212246036709511963227+4233 31120.4644874651245946463165748+4234 31128.8153899168194051120091878+4235 31137.166528523905559879839187+4236 31145.5179032306268569574646166+4237 31153.8695139812534161761097493+4238 31162.2213607200816605556454012+4239 31170.5734433914342976872555821+4240 31178.9257619396603011336697391+4241 31187.2783163091348918469398822+4242 31195.6311064442595196037419106+4243 31203.9841322894618444581804843+4244 31212.3373937891957182120768196+4245 31220.6908908879411659027188113+4246 31229.0446235302043673080529181+4247 31237.3985916605176384692972725+4248 31245.7527952234394132309555097+4249 31254.1072341635542247982108347+4250 31262.4619084254726873116798795+4251 31270.8168179538314774395059286+4252 31279.1719626932933159867711216+4253 31287.5273425885469495222072682+4254 31295.8829575843071320221849426+4255 31304.2388076253146065319605504+4256 31312.5948926563360868441610912+4257 31320.9512126221642391944863678+4258 31329.3077674676176639746084224+4259 31337.664557137540877462248008+4260 31346.0215815768042935684079314+4261 31354.3788407303042056017431331+4262 31362.7363345429627680500473986+4263 31371.0940629597279783788366214+4264 31379.4520259255736588470085686+4265 31387.8102233854994383395591278+4266 31396.1686552845307342173350412+4267 31404.5273215677187341838031611+4268 31412.8862221801403781688162905+4269 31421.2453570668983402293556991+4270 31429.6047261731210104672304324+4271 31437.9643294439624769637135622+4272 31446.3241668246025077310955514+4273 31454.6842382602465326811349368+4274 31463.0445436961256256103865584+4275 31471.405083077496486202387595+4276 31479.7658563496414220466816898+4277 31488.1268634578683306746614806+4278 31496.4881043475106816122098752+4279 31504.849578963927498449120439+4280 31513.2112872525033409252772935+4281 31521.5732291586482870335749463+4282 31529.9354046277979151395585052+4283 31538.2978136054132861177647542+4284 31546.6604560369809255047445963+4285 31555.0233318680128056687473975+4286 31563.3864410440463279960477908+4287 31571.7497835106443050938955276+4288 31580.1133592133949430100689923+4289 31588.4771680979118234690130201+4290 31596.8412101098338861245416879+4291 31605.2054851948254108290867732+4292 31613.5699932985759999194726051+4293 31621.9347343668005605191980552+4294 31630.2997083452392868572064463+4295 31638.664915179657642603124182+4296 31647.0303548158463432189489281+4297 31655.3960271996213383271682007+4298 31663.7619322768237940952892481+4299 31672.1280699933200756367611338+4300 31680.4944402950017294282699592+4301 31688.8610431277854657433881902+4302 31697.2278784376131411025590764+4303 31705.5949461704517407393971807+4304 31713.9622462722933610832860624+4305 31722.3297786891551922582541831+4306 31730.6975433670795005981101317+4307 31739.0655402521336111778182909+4308 31747.4337692904098903610960933+4309 31755.8022304280257283642140426+4310 31764.1709236111235218359797008+4311 31772.5398487858706564538868691+4312 31780.9090058984594895364112146+4313 31789.2783948951073326714336236+4314 31797.648015722056434360772587+4315 31806.0178683255739626808069482+4316 31814.3879526519519879591703721+4317 31822.7582686475074654674989179+4318 31831.1288162585822181302131255+4319 31839.4995954315429192493160499+4320 31847.8706061127810752451887056+4321 31856.2418482487130084133644059+4322 31864.6133217857798396972635114+4323 31872.9850266704474714768701242+4324 31881.356962849206570373332292+4325 31889.729130268572550069467311+4326 31898.1015288750855541461537434+4327 31906.4741586153104389345917878+4328 31914.8470194358367563844136698+4329 31923.2201112832787369476257434+4330 31931.5934341042752724783640194+4331 31939.966987845489899148444863+4332 31948.3407724536107803786926274+4333 31956.7147878753506897860260155+4334 31965.0890340574469941462849886+4335 31973.4635109466616363727800624+4336 31981.8382184897811185105458609+4337 31990.2131566336164847462808191+4338 31998.588325325003304433954953+4339 32006.9637245108016551360676407+4340 32015.3393541378961056805373813+4341 32023.7152141531956992332055258+4342 32032.0913045036339363859359961+4343 32040.4676251361687582602930369+4344 32048.8441759977825296267790656+4345 32057.220957035482022039614714+4346 32065.5979681962983969870431787+4347 32073.9752094272871890571410199+4348 32082.3526806755282891191175782+4349 32090.7303818881259275200851962+4350 32099.1083130122086572972824643+4351 32107.4864739949293374057327273+4352 32115.8648647834651159613201189+4353 32124.2434853250174134992654108+4354 32132.6223355668119062479839912+4355 32141.00141545609850941830831+4356 32149.3807249401513605080571518+4357 32157.7602639662688026219341249+4358 32166.140032481773367806737774+4359 32174.520030434011760401865755+4360 32182.9002577703548404050955272+4361 32191.2807144381976068536240482+4362 32199.6614003849591812203489785+4363 32208.042315558082790825373926+4364 32216.423459905035752262720286+4365 32224.8048333733094548422282574+4366 32233.1864359104193440466296356+4367 32241.5682674639049050037750112+4368 32249.9503279813296459739980251+4369 32258.3326174102810818525993541+4370 32266.7151356983707176874331258+4371 32275.097882793234032211578486+4372 32283.4808586425304613910790632+4373 32291.8640631939433819877331005+4374 32300.2474963951800951369170493+4375 32308.6311581939718099404254394+4376 32317.0150485380736270743098684+4377 32325.3991673752645224116999729+4378 32333.7835146533473306605892699+4379 32342.1680903201487290165687783+4380 32350.5528943235192208304913559+4381 32358.9379266113331192910497099+4382 32367.3231871314885311222510601+4383 32375.7086758319073402957714614+4384 32384.0943926605351917581728121+4385 32392.4803375653414751729655991+4386 32400.8665104943193086775004536+4387 32409.2529113954855226546716158+4388 32417.6395402168806435194154274+4389 32426.0263969065688775199869964+4390 32434.4134814126380945539982+4391 32442.8007936831998119992002155+4392 32451.1883336663891785589937914+4393 32459.5761013103649581226504942+4394 32467.9640965633095136402281886+4395 32476.3523193734287910121640335+4396 32484.7407696889523029935282957+4397 32493.1294474581331131129223105+4398 32501.5183526292478196060039366+4399 32509.907485150596539363623878+4400 32518.2968449705028918945562687+4401 32526.6864320373139833028069368+4402 32535.0762462994003902794827878+4403 32543.4662877051561441092057708+4404 32551.8565562029987146910549122+4405 32560.2470517413689945740199244+4406 32568.6377742687312830069499199+4407 32577.0287237335732700029807841+4408 32585.4199000844060204184247799+4409 32593.8113032697639580461059839+4410 32602.2029332382048497231251713+4411 32610.5947899383097894530377939+4412 32618.9868733186831825424287135+4413 32627.3791833279527297518673776+4414 32635.7717199147694114612271466+4415 32644.1644830278074718493525028+4416 32652.5574726157644030880578936+4417 32660.9506886273609295504419844+4418 32669.3441310113409920335011178+4419 32677.7377997164717319950257986+4420 32686.1316946915434758047640443+4421 32694.5258158853697190098354651+4422 32702.920163246787110614379958+4423 32711.3147367246554373734249209+4424 32719.7095362678576081009549155+4425 32728.1045618252996379921677298+4426 32736.4998133459106329599008109+4427 32744.8952907786427739852120632+4428 32753.2909940724713014820990265+4429 32761.6869231763944996763404714+4430 32770.0830780394336809984444701+4431 32778.4794586106331704906870243+4432 32786.8760648390602902282253504+4433 32795.2728966738053437542699457+4434 32803.6699540639816005292995819+4435 32812.0672369587252803943033899+4436 32820.4647453071955380480342251+4437 32828.8624790585744475382575223+4438 32837.2604381620669867669798693+4439 32845.6586225669010220096415532+4440 32854.0570322223272924482573498+4441 32862.4556670776193947184898526+4442 32870.8545270820737674706396558+4443 32879.2536121850096759445367277+4444 32887.6529223357691965583173338+4445 32896.0524574837172015110708866+4446 32904.4522175782413433993411241+4447 32912.8522025687520398474660359+4448 32921.2524124046824581517409814+4449 32929.6528470354884999383894614+4450 32938.0535064106487858353260278+4451 32946.4543904796646401576958361+4452 32954.8554991920600756071753675+4453 32963.2568324973817779850188654+4454 32971.6583903451990909188350562+4455 32980.06017268510400060307874+4456 32988.4621794667111205532418633+4457 32996.8644106396576763737287005+4458 33005.2668661536034905393997967+4459 33013.6695459582309671907693423+4460 33022.0724500032450769428406711+4461 33030.4755782383733417075645937+4462 33038.8789306133658195299053003+4463 33047.2825070779950894374985854+4464 33055.6863075820562363038871687+4465 33064.0903320753668357253179061+4466 33072.4945805077669389110857066+4467 33080.8990528291190575874089889+4468 33089.303748989308148914821535+4469 33097.7086689382416004190656148+4470 33106.1138126258492149354712798+4471 33114.5191800020831955668067407+4472 33122.924771016918130654584767+4473 33131.3305856203509787638100648+4474 33139.7366237624010536811526096+4475 33148.1428853931100094265319327+4476 33156.5493704625418252780973768+4477 33164.9560789207827908105893596+4478 33173.3630107179414909470667025+4479 33181.7701658041487910239851015+4480 33190.1775441295578218696118384+4481 33198.5851456443439648957618497+4482 33206.9929702987048372028402897+4483 33215.401018042860276698176747+4484 33223.8092888270523272276362891+4485 33232.2177826015452237204925339+4486 33240.6264993166253773475479647+4487 33249.035438922601360692486724+4488 33257.4446013698038929364451438+4489 33265.8539866085858250557852878+4490 33274.263594589322125033056801+4491 33282.6734252624098630811323826+4492 33291.0834785782681968805022163+4493 33299.4937544873383568297127135+4494 33307.9042529400836313089349424+4495 33316.3149738869893519566481381+4496 33324.7259172785628789594237049+4497 33333.1370830653335863547951451+4498 33341.548471197852847347199365+4499 33349.9600816266940196369748308+4500 33358.3719143024524307624020635+4501 33366.7839691757453634547719848+4502 33375.1962461972120410064676416+4503 33383.6087453175136126520448598+4504 33392.0214664873331389622973932+4505 33400.4344096573755772512921563+4506 33408.847574778367766996360147+4507 33417.2609618010584152710286846+4508 33425.6745706762180821908806072+4509 33434.0884013546391663723260936+4510 33442.5024537871358904042727921+4511 33450.9167279245442863326799563+4512 33459.3312237177221811579823129+4513 33467.7459411175491823453693961+4514 33476.160880074926663347906113+4515 33484.5760405407777491424803129+4516 33492.9914224660473017785631604+4517 33501.407025801701905939768127+4518 33509.8228504987298545181944348+4519 33518.2388965081411342015408066+4520 33526.6551637809674110729753938+4521 33535.0716522682620162237477728+4522 33543.4883619210999313785289197+4523 33551.9052926905777745334650916+4524 33560.3224445278137856069315606+4525 33568.7398173839478121029721663+4526 33577.1574112101412947874106716+4527 33585.5752259575772533766199232+4528 33593.9932615774602722389348388+4529 33602.4115180210164861086952608+4530 33610.8299952394935658129047338+4531 33619.2486931841607040104912839+4532 33627.6676118063086009441562941+4533 33636.0867510572494502047975886+4534 33644.5061108883169245084928603+4535 33652.9256912508661614860295886+4536 33661.3454920962737494849676186+4537 33669.7655133759377133842205876+4538 33678.1857550412775004211424033+4539 33686.6062170437339660311049987+4540 33695.0268993347693596995536038+4541 33703.4478018658673108265257949+4542 33711.868924588532814603620598+4543 33720.2902674542922179034039447+4544 33728.711830414693205181236792+4545 33737.13361342130478438951224+4546 33745.5556164257172729042879977+4547 33753.9778393795422834643005637+4548 33762.4002822344127101223475098+4549 33770.8229449419827142090242706+4550 33779.2458274539277103088018615+4551 33787.6689297219443522484319658+4552 33796.092251697750519097665847+4553 33804.5157933330853011822735642+4554 33812.9395545797089861093499833+4555 33821.363535389403044804894094+4556 33829.7877357139701175636481648+4557 33838.2121555052340001111832799+4558 33846.6367947150396296782178237+4559 33855.0616532952530710871554959+4560 33863.4867311977615028508294564+4561 33871.9120283744732032834392167+4562 33880.3375447773175366236669149+4563 33888.7632803582449391699596255+4564 33897.1892350692269054279643748+4565 33905.61540886225597427010255+4566 33914.0418016893457151072704061+4567 33922.4684135025307140726523954+4568 33930.895244253866560217634058+4569 33939.3222938954298317198012312+4570 33947.749562379318082103012354+4571 33956.1770496576498264695306578+4572 33964.6047556825645277442030534+4573 33973.0326804062225829306725412+4574 33981.4608237808053093796109897+4575 33989.8891857585149310689591427+4576 33998.3177662915745648961607344+4577 34006.7465653322282069823776085+4578 34015.175582832740718988672755+4579 34023.6048187453978144441481938+4580 34032.034273022506045086024653+4581 34040.4639456163927872116500073+4582 34048.893836479406228042423457+4583 34057.3239455639153520996224464+4584 34065.754272822309927592119338+4585 34074.184818207000492815974874+4586 34082.6155816704183425658954765+4587 34091.0465631650155145585414502+4588 34099.4777626432647758676731745+4589 34107.909180057659609371122382+4590 34116.3408153607142002095756438+4591 34124.7726685049634222571571926+4592 34133.2047394429628246037982372+4593 34141.6370281272886180493799342+4594 34150.0695345105376616096372022+4595 34158.5022585453274490338105795+4596 34166.9352001842960953340333436+4597 34175.3683593801023233264411253+4598 34183.801736085425450183991272+4599 34192.2353302529653740009792241+4600 34200.669141835442560369239192+4601 34209.1031707855980289660164333+4602 34217.5374170561933401534984485+4603 34225.9718806000105815899924283+4604 34234.4065613698523548527363048+4605 34242.841459318541762072330772+4606 34251.2765743989223925787796602+4607 34259.7119065638583095591260649+4608 34268.1474557662340367266716445+4609 34276.583221958954545001766522+4610 34285.0192050949452392041572386+4611 34293.4554051271519447568802251+4612 34301.891822008540894401688272+4613 34310.3284556920987149259974986+4614 34318.7653061308324139013423328+4615 34327.2023732777693664333260341+4616 34335.6396570859573019230543057+4617 34344.0771575084642908400395594+4618 34352.5148744983787315065634109+4619 34360.9528080088093368934850035+4620 34369.3909579928851214274827686+4621 34377.8293244037553878097172527+4622 34386.2679071945897138459026532+4623 34394.7067063185779392877747233+4624 34403.145721728930152685942721+4625 34411.5849533788766782541130947+4626 34420.0244012216680627446726116+4627 34428.4640652105750623356186539+4628 34436.9039452988886295288244212+4629 34445.3440414399199000596267943+4630 34453.7843535870001798177246329+4631 34462.2248816934809317793752927+4632 34470.6656257127337629508771654+4633 34479.1065855981504113233260602+4634 34487.5477613031427328386332619+4635 34495.989152781142688366793114+4636 34504.4307599856023306943879948+4637 34512.8725828699937915243185665+4638 34521.3146213878092684867471954+4639 34529.7568754925610121612424562+4640 34538.1993451377813131101126482+4641 34546.6420302770224889229162682+4642 34555.0849308638568712721374002+4643 34563.5280468518767929800139958+4644 34571.9713781946945750965070383+4645 34580.4149248459425139883985944+4646 34588.8586867592728684395067776+4647 34597.3026638883578467620056593+4648 34605.7468561868895939188381807+4649 34614.1912636085801786572101334+4650 34622.6358861071615806531532938+4651 34631.0807236363856776671458072+4652 34639.5257761500242327107779398+4653 34647.9710436018688812244513245+4654 34656.4165259457311182660998485+4655 34664.8622231354422857109203408+4656 34673.3081351248535594621012361+4657 34681.7542618678359366725374062+4658 34690.200603318280222977519363+4659 34698.6471594300970197383850572+4660 34707.0939301572167112971225057+4661 34715.5409154535894522419115016+4662 34723.9881152731851546835926726+4663 34732.4355295699934755430521689+4664 34740.883158298023803849510278+4665 34749.3310014113052480497022781+4666 34757.7790588638866233279398569+4667 34766.2273306098364389370414372+4668 34774.6758166032428855401197669+4669 34783.1245167982138225632151446+4670 34791.5734311488767655587626673+4671 34800.0225596093788735798819034+4672 34808.471902133886936565477405+4673 34816.9214586765873627361384931+4674 34825.3712291916861660008267613+4675 34833.8212136334089533743397582+4676 34842.2714119560009124055393259+4677 34850.7218241137267986163330846+4678 34859.1724500608709229513975681+4679 34867.6232897517371392386315313+4680 34876.0743431406488316603279649+4681 34884.5256101819489022350533655+4682 34892.9770908299997583102228268+4683 34901.42878503918330006535953+4684 34909.8806927639009080260272274+4685 34918.3328139585734305884243274+4686 34926.7851485776411715546282028+4687 34935.2376965755638776784783618+4688 34943.6904579068207262220871306+4689 34952.1434325259103125229665167+4690 34960.5966203873506375717599329+4691 34969.0500214456790956005674762+4692 34977.5036356554524616818534731+4693 34985.9574629712468793379250154+4694 34994.4115033476578481609702237+4695 35002.8657567393002114436449936+4696 35011.3202231008081438201969905+4697 35019.7749023868351389181156759+4698 35028.229794552053997020297161+4699 35036.6848995511568127377126975+4700 35045.1402173388549626925696311+4701 35053.5957478698790932119536563+4702 35062.051491098979108031941226+4703 35070.5074469809241560121709827+4704 35078.9636154705026188608630941+4705 35087.4199965225220988702753873+4706 35095.8765900918094066625851939+4707 35104.3333961332105489461858276+4708 35112.7904146015907162823866342+4709 35121.2476454518342708625055664+4710 35129.7050886388447342953432483+4711 35138.1627441175447754050275122+4712 35146.6206118428761980392174003+4713 35155.0786917697999288876556412+4714 35163.5369838532960053110586226+4715 35171.9954880483635631803328982+4716 35180.4542043100208247261072769+4717 35188.9131325933050863985695616+4718 35197.372272853272706737597013+4719 35205.8316250449990942531696328+4720 35214.291189123578695316055371+4721 35222.7509650441249820587563776+4722 35231.2109527617704402867054324+4723 35239.6711522316665573997017008+4724 35248.1315634089838103235749759+4725 35256.592186248911653452067583+4726 35265.0530207066585065989231347+4727 35273.5140667374517429601713391+4728 35281.975324296537677086598078+4729 35290.4367933391815528663899842+4730 35298.8984738206675315179427618+4731 35307.3603656962986795928225066+4732 35315.8224689213969569888692985+4733 35324.2847834513032049734323478+4734 35332.7473092413771342167259967+4735 35341.2100462469973128352958847+4736 35349.6729944235611544455846052+4737 35358.1361537264849062275861905+4738 35366.5995241112036369985787777+4739 35375.0631055331712252969248224+4740 35383.5268979478603474759282368+4741 35391.9909013107624658077378472+4742 35400.4551155773878165972865756+4743 35408.919540703265398306255765+4744 35417.3841766439429596870540811+4745 35425.8490233549869879268004367+4746 35434.3140807919826968013003983+4747 35442.7793489105340148390055473+4748 35451.2448276662635734949452822+4749 35459.7105170148126953346205614+4750 35468.176416911841382227849099+4751 35476.6425273130283035525515386+4752 35485.1088481740707844084681464+4753 35493.5753794506847938407955735+4754 35502.0421210986049330737332547+4755 35510.5090730735844237539290214+4756 35518.9762353313950962038135211+4757 35527.4436078278273776848130476+4758 35535.9111905186902806704304015+4759 35544.3789833598113911291834102+4760 35552.8469863070368568173907533+4761 35561.3151993162313755817947494+4762 35569.783622343278183672010776+4763 35578.2522553440790440627930042+4764 35586.7210982745542347861061457+4765 35595.1901510906425372729929213+4766 35603.6594137483012247052269726+4767 35612.1288862035060503767409522+4768 35620.5985684122512360648195411+4769 35629.0684603305494604110471537+4770 35637.5385619144318473120001048+4771 35646.0088731199479543196730242+4772 35654.4793939031657610516293203+4773 35662.9501242201716576108655037+4774 35671.4210640270704330153791965+4775 35679.8922132799852636374306651+4776 35688.363571935057701652487728+4777 35696.8351399484476634978439009+4778 35705.3069172763334183408996567+4779 35713.778903874911576557096688+4780 35722.2510997003970782174950752+4781 35730.7235047090231815859832731+4782 35739.1961188570414516261108443+4783 35747.6689421007217485175338778+4784 35756.1419743963522161820630466+4785 35764.6152157002392708193042668+4786 35773.0886659687075894518819384+4787 35781.5623251581000984802347556+4788 35790.0361932247779622469740905+4789 35798.5102701251205716107949641+4790 35806.9845558155255325299296334+4791 35815.4590502524086546551338337+4792 35823.9337533922039399321957292+4793 35832.4086651913635712139576367+4794 35840.8837856063579008818405993+4795 35849.3591145936754394768619015+4796 35857.8346521098228443401356258+4797 35866.3103981113249082628463671+4798 35874.7863525547245481456862313+4799 35883.2625153965827936677452572+4800 35891.7388865934787759648454138+4801 35900.2154661020097163173083367+4802 35908.6922538787909148471469798+4803 35917.1692498804557392246713711+4804 35925.646454063655613384498673+4805 35934.123866385060006250957761+4806 35942.6014868013564204728785444+4807 35951.0793152692503811677562682+4808 35959.5573517454654246752810451+4809 35968.0355961867430873202228787+4810 35976.5140485498428941846624532+4811 35984.992708791542347889557975+4812 35993.4715768686369173856383636+4813 36001.9506527379400267536131038+4814 36010.4299363562830440136890801+4815 36018.9094276805152699443847288+4816 36027.3891266675039269106318525+4817 36035.8690332741341477011554585+4818 36044.3491474573089643751219883+4819 36052.829469173949297118046323+4820 36061.3099983809939431069479578+4821 36069.7907350353995653847467535+4822 36078.2716790941406817438886806+4823 36086.7528305142096536191919899+4824 36095.2341892526166749899042488+4825 36103.7157552663897612909606985+4826 36112.1975285125747383334343989+4827 36120.6795089482352312341686369+4828 36129.1616965304526533545820903+4829 36137.644091216326195248637246+4830 36146.1266929629728136199625883+4831 36154.6095017275272202881190804+4832 36163.0925174671418711640014773+4833 36171.5757401389869552343650175+4834 36180.0591697002503835554680543+4835 36188.5428061081377782558211994+4836 36197.0266493198724615480335606+4837 36205.5106992926954447497466714+4838 36213.9949559838654173136467173+4839 36222.4794193506587358665456789+4840 36230.9640893503694132575220217+4841 36239.4489659403091076151115747+4842 36247.9340490778071114135392505+4843 36256.4193387202103405479822733+4844 36264.9048348248833234188555907+4845 36273.3905373492081900251101573+4846 36281.8764462505846610665347907+4847 36290.3625614864300370550523104+4848 36298.8488830141791874350006824+4849 36307.3354107912845397123899045+4850 36315.8221447752160685931253769+4851 36324.3090849234612851301885164+4852 36332.7962311935252258797653818+4853 36341.2835835429304420663140909+4854 36349.7711419292169887565618207+4855 36358.2589063099424140424221934+4856 36366.746876642681748232823862+4857 36375.2350528850274930544411217+4858 36383.7234349945896108613173835+4859 36392.2120229289955138533723575+4860 36400.7008166458900533037838072+4861 36409.1898161029355087952347435+4862 36417.6790212578115774650169413+4863 36426.168432068215363258981672+4864 36434.6580484918613661943285564+4865 36443.1478704864814716312234534+4866 36451.6378980098249395532363114+4867 36460.128131019658393856589921+4868 36468.6185694737658116482105172+4869 36477.1092133299485125525711933+4870 36485.6000625460251480273190956+4871 36494.0911170798316906876773839+4872 36502.5823768892214236396129503+4873 36511.0738419320649298217609011+4874 36519.5655121662500813560968188+4875 36528.0573875496820289073478295+4876 36536.5494680402831910511335157+4877 36545.041753595993243650827722+4878 36553.5342441747691092431323147+4879 36562.0269397345849464323539654+4880 36570.5198402334321392933750424+4881 36579.0129456293192867833097004+4882 36587.5062558802721921618362755+4883 36595.9997709443338524201970973+4884 36604.493490779564447718856846+4885 36612.987415344041330833810591+4886 36621.4815445958590166115326574+4887 36629.9758784931291714325574801+4888 36638.4704169939806026836836146+4889 36646.9651600565592482387920837+4890 36655.4601076390281659482702528+4891 36663.9552596995675231370324337+4892 36672.450616196374586111128431+4893 36680.9461770876637096729312538+4894 36689.4419423316663266448952268+4895 36697.9379118866309374018757452+4896 36706.4340857108230994120019309+4897 36714.9304637625254167860934535+4898 36723.4270460000375298356127955+4899 36731.9238323816761046391442481+4900 36740.4208228657748226173909365+4901 36748.9180174106843701166811834+4902 36757.4154159747724280009755307+4903 36765.9130185164236612523657493+4904 36774.4108249940397085800571783+4905 36782.9088353660391720378257445+4906 36791.4070495908576066499410254+4907 36799.9054676269475100455467266+4908 36808.4040894327783121014899583+4909 36816.9029149668363645935907041+4910 36825.4019441876249308563428858+4911 36833.9011770536641754510384403+4912 36842.4006135234911538423058313+4913 36850.9002535556598020830544352+4914 36859.4000971087409265078162432+4915 36867.9001441413221934344763398+4916 36876.4003946120081188743836222+4917 36884.9008484794200582508332393+4918 36893.4015057021961961259122378+4919 36901.902366238991535935699914+4920 36910.4034300484778897338143783+4921 36918.9046970893438679432968541+4922 36927.4061673202948691168252379+4923 36935.907840700053069705248461+4924 36944.4097171873574138344332035+4925 36952.9117967409636030904145195+4926 36961.414079319644086312841945+4927 36969.9165648821880493967126691+4928 36978.4192533874014051023833581+4929 36986.9221447941067828738522368+4930 36995.4252390611435186653030349+4931 37003.9285361473676447759024229+4932 37012.4320360116518796928425677+4933 37020.9357386128856179426204514+4934 37029.4396439099749199505456036+4935 37037.9437518618425019084679115+4936 37046.4480624274277256507171796+4937 37054.9525755656865885382461202+4938 37063.4572912355917133509684706+4939 37071.9622093961323381882839359+4940 37080.4673300063143063777816744+4941 37088.9726530251600563921140444+4942 37097.4781784117086117740323494+4943 37105.9839061250155710695763213+4944 37114.4898361241530977694090974+4945 37122.995968368209910258289452+4946 37131.5023028162912717726730582+4947 37140.0088394275189803664345597+4948 37148.515578161031358884702249+4949 37157.0225189759832449457971528+4950 37165.5296618315459809312683376+4951 37174.0370066869074039840162599+4952 37182.5445535012718360144959917+4953 37191.0523022338600737149921651+4954 37199.5602528439093785819574891+4955 37208.0684052906734669464066987+4956 37216.5767595334225000123578113+4957 37225.0853155314430739033125706+4958 37233.5940732440382097167679704+4959 37242.1030326305273435867507603+4960 37250.6121936502463167543668446+4961 37259.1215562625473656463574951+4962 37267.6311204267991119616543103+4963 37276.1408861023865527659248601+4964 37284.6508532487110505941009678+4965 37293.1610218251903235608815892+4966 37301.6713917912584354792022587+4967 37310.1819631063657859866630824+4968 37318.6927357299791006799072673+4969 37327.2037096215814212569421859+4970 37335.7148847406720956673949847+4971 37344.2262610467667682706947549+4972 37352.7378384993973700021732942+4973 37361.2496170581121085470764955+4974 37369.7615966824754585224784116+4975 37378.2737773320681516670900516+4976 37386.7861589664871670389549756+4977 37395.2987415453457212210237644+4978 37403.811525028273258534599448+4979 37412.32450937491544126064599+4980 37420.837694544934139868951931+4981 37429.3510804980074232551413059+4982 37437.8646671938295489855239578+4983 37446.3784545921109535497773829+4984 37454.8924426525782426214522476+4985 37463.4066313349741813262937304+4986 37471.9210205990576845183708505+4987 37480.4356104046038070640059531+4988 37488.9504007114037341334965319+4989 37497.4653914792647715006215792+4990 37505.9805826680103358499246618+4991 37514.4959742374799450917659317+4992 37523.0115661475292086851352892+4993 37531.5273583580298179682189258+4994 37540.0433508288695364967114831+4995 37548.5595435199521903898660738+4996 37557.0759363911976586842744202+4997 37565.5925294025418636953693739+4998 37574.1093225139367613866420913+4999 37582.6263156853503317465661477+5000 37591.1435088767665691732208814+5001 37599.6609020481854728666062711+5002 37608.1784951596230372286416557+5003 37616.6962881711112422708406174+5004 37625.214281042698044029654357+5005 37633.7324737344473649894759001+5006 37642.2508662064390845132974812+5007 37650.7694584187690292810134629+5008 37659.2882503315489637353611567+5009 37667.8072419049065805354919187+5010 37676.3264330989854910181649061+5011 37684.8458238739452156665558877+5012 37693.3654141899611745866735091+5013 37701.8852040072246779913754265+5014 37710.405193285942916691976728+5015 37718.9253819863389525974430723+5016 37727.4457700686517092211609849+5017 37735.9663574931359621952777573+5018 37744.4871442200623297926034079+5019 37753.0081302097172634560671695+5020 37761.5293154224030383357209783+5021 37770.0506998184377438332824488+5022 37778.5722833581552741542098262+5023 37787.0940660019053188673014196+5024 37795.6160477100533534718120254+5025 37804.1382284429806299720788613+5026 37812.6606081610841674596495391+5027 37821.183186824776742702904614+5028 37829.7059643944868807441672574+5029 37838.2289408306588455042926069+5030 37846.7521160937526303947293595+5031 37855.2754901442439489370461799+5032 37863.7990629426242253899155066+5033 37872.3228344494005853835473454+5034 37880.8468046250958465615656515+5035 37889.3709734302485092303199074+5036 37897.8953408254127470156245139+5037 37906.4199067711583975269186208+5038 37914.9446712280709530288390321+5039 37923.4696341567515511201988283+5040 37931.9947955178169654203643594+5041 37940.5201552718995962630232684+5042 37949.045713379647461397336217+5043 37957.5714698017241866964649889+5044 37966.0974244988089968734696622+5045 37974.6235774315967062045675424+5046 37983.1499285607977092597465638+5047 37991.6764778471379716407258716+5048 38000.203225251359020726256306+5049 38008.7301707342179364247535199+5050 38017.257314256487341934256469+5051 38025.7846557789553945097040219+5052 38034.3121952624257762375224476+5053 38042.8399326677176848175165443+5054 38051.367867955665824352057184+5055 38059.8960010871203961425580552+5056 38068.4243320229470894932343934+5057 38076.9528607240270725221365011+5058 38085.481587151256982979450862+5059 38094.0105112655489190730616691+5060 38102.5396330278304303013655891+5061 38111.0689523990445082933325984+5062 38119.5984693401495776558057315+5063 38128.1281838121194868280325928+5064 38136.6580957759434989434214907+5065 38145.1882051926262826985150609+5066 38153.7185120231879032291742559+5067 38162.2490162286638129939655834+5068 38170.7797177701048426647444874+5069 38179.3106166085771920244277732+5070 38187.8417127051624208719479848+5071 38196.3730060209574399343826536+5072 38204.9044965170745017862513442+5073 38213.4361841546411917759734324+5074 38221.9680688948004189594795574+5075 38230.5001506987104070409697009+5076 38239.0324295275446853208108515+5077 38247.5649053424920796505672238+5078 38256.0975781047567033951560069+5079 38264.6304477755579484021216281+5080 38273.1635143161304759780215246+5081 38281.6967776877242078719164235+5082 38290.2302378516043172659581408+5083 38298.7638947690512197730679157+5084 38307.2977484013605644416983076+5085 38315.8317987098432247676716889+5086 38324.3660456558252897130883761+5087 38332.9004892006480547322974502+5088 38341.4351293056680128049233252+5089 38349.9699659322568454759411309+5090 38358.5049990418014139027939862+5091 38367.0402285957037499095452454+5092 38375.575654555381047048058809+5093 38384.1112768822656516662005998+5094 38392.6470955378050539830543095+5095 38401.1831104834618791711445348+5096 38409.7193216807138784456604241+5097 38418.2557290910539201606729687+5098 38426.792332675989980912339078+5099 38435.3291323970451366490855863+5100 38443.8661282157575537887663491+5101 38452.4033200936804803427855909+5102 38460.9407079923822370471806792+5103 38469.4782918734462085006575034+5104 38478.0160716984708343095716475+5105 38486.5540474290696002398485536+5106 38495.0922190268710293758358794+5107 38503.6305864535186732860812636+5108 38512.1691496706711031960287177+5109 38520.7079086400019011676268744+5110 38529.2468633231996512858423275+5111 38537.7860136819679308520713081+5112 38546.3253596780253015844429495+5113 38554.8649012731053008250073998+5114 38563.4046384289564327538020519+5115 38571.9445711073421596097891643+5116 38580.4846992700408929186581598+5117 38589.0250228788459847274858896+5118 38597.5655418955657188462481669+5119 38606.1062562820233020961758728+5120 38614.6471660000568555649489533+5121 38623.1882710115194058687216286+5122 38631.7295712782788764209721455+5123 38640.2710667622180787081704126+5124 38648.812757425234703572256864+5125 38657.3546432292413124999259053+5126 38665.8967241361653289187073059+5127 38674.4390001079490294998389043+5128 38682.9814711065495354679240072+5129 38691.5241370939388039173668653+5130 38700.0669980321036191355796199+5131 38708.6100538830455839329541213+5132 38717.1533046087811109795920268+5133 38725.6967501713414141487865944+5134 38734.2403905327724998672495975+5135 38742.7842256551351584720767898+5136 38751.3282555005049555744453623+5137 38759.8724800309722234300368372+5138 38768.416899208642052316178854+5139 38776.9615129956342819156993107+5140 38785.5063213540834927074863286+5141 38794.0513242461389973637475193+5142 38802.5965216339648321539620386+5143 38811.1419134797397483555189192+5144 38819.687499745657203671035184+5145 38828.2332803939253536523472468+5146 38836.7792553867670431311691155+5147 38845.3254246864197976564109218+5148 38853.8717882551358149381513076+5149 38862.4183460551819562982572051+5150 38870.9650980488397381276445582+5151 38879.5120441984053233501735363+5152 38888.0591844661895128931718025+5153 38896.6065188145177371645794035+5154 38905.1540472057300475367088572+5155 38913.7017696021811078366140217+5156 38922.249685966240185843061334+5157 38930.7977962602911447900970196+5158 38939.3461004467324348772038762+5159 38947.8945984879770847860412445+5160 38956.443290346452693203761788+5161 38964.9921759846014203528987074+5162 38973.5412553648799795278170271+5163 38982.0905284497596286377225937+5164 38990.639995201726161756222439+5165 38999.1896555832799006774301627+5166 39007.7395095569356864786100014+5167 39016.2895570852228710893532541+5168 39024.8397981306853088672807446+5169 39033.390232655881348180265008+5170 39041.9408606233838229951658937+5171 39050.4916819957800444730732881+5172 39059.0426967356717925710506644+5173 39067.593904805675307650373176+5174 39076.1453061684212820912540168+5175 39084.6969007865548519140527788+5176 39093.2486886227355884069595444+5177 39101.8006696396374897601484595+5178 39110.3528437999489727063945388+5179 39118.9052110663728641681474629+5180 39127.4577714016263929110561349+5181 39136.0105247684411812039377689+5182 39144.5634711295632364851852935+5183 39153.1166104477529430356068569+5184 39161.6699426857850536576912306+5185 39170.2234678064486813612929137+5186 39178.7771857725472910557307479+5187 39187.3310965468986912482938607+5188 39195.8852000923350257491487605+5189 39204.4394963717027653826414149+5190 39212.993985347862699704988152+5191 39221.5486669836899287283492285+5192 39230.1035412420738546512789188+5193 39238.6586080859181735955459846+5194 39247.2138674781408673493183913+5195 39255.7693193816741951167061466+5196 39264.3249637594646852736561406+5197 39272.8808005744731271301928779+5198 39281.4368297896745626989989944+5199 39289.9930513680582784703294631+5200 39298.5494652726277971932533977+5201 39307.1060714664008696632173693+5202 39315.6628699124094665159241611+5203 39324.2198605736997700275208908+5204 39332.7770434133321659210904375+5205 39341.3344183943812351794401189+5206 39349.8919854799357458641815686+5207 39358.4497446330986449410957728+5208 39367.0076958169870501117772315+5209 39375.5658389947322416515512161+5210 39384.1241741294796542536581033+5211 39392.68270118438886887969877+5212 39401.2414201226336046163350445+5213 39409.800330907401710538239211+5214 39418.3594335018951575772865775+5215 39426.9187278693300303979851178+5216 39435.4782139729365192791362108+5217 39444.0378917759589120017205024+5218 39452.5977612416555857430029262+5219 39461.1578223332989989768509234+5220 39469.7180750141756833802599095+5221 39478.2785192475862357460800439+5222 39486.8391549968453099019383634+5223 39495.399982225281608635350348+5224 39503.9610008962378756250149955+5225 39512.5222109730708873782874851+5226 39521.0836124191514451748235219+5227 39529.6452051978643670163894547+5228 39538.2069892726084795828322727+5229 39546.7689646067966101942035881+5230 39555.3311311638555787790317228+5231 39563.8934889072261898487360195+5232 39572.4560378003632244781775097+5233 39581.0187778067354322923400721+5234 39589.5817088898255234591362267+5235 39598.1448310131301606883317128+5236 39606.708144140159951236583008+5237 39615.2716482344394389185819515+5238 39623.8353432595070961243016409+5239 39632.3992291789153158423377801+5240 39640.9633059562304036893396598+5241 39649.5275735550325699455249622+5242 39658.0920319389159215962725851+5243 39666.6566810714884543797876894+5244 39675.2215209163720448408331791+5245 39683.7865514372024423905218307+5246 39692.3517725976292613721632945+5247 39700.9171843613159731331601977+5248 39709.4827866919398981029475859+5249 39718.048579553192197876969945+5250 39726.6145629087778673066900531+5251 39735.180736722415726595623919+5252 39743.7471009578384134013960689+5253 39752.3136555787923749438094511+5254 39760.8804005490378601189242334+5255 39769.4473358323489116191397768+5256 39778.0144613925133580592740725+5257 39786.5817771933328061086349387+5258 39795.149283198622632629077278+5259 39803.7169793722119768190407045+5260 39812.2848656779437323635618543+5261 39820.8529420796745395902557015+5262 39829.4212085412747776312602065+5263 39837.9896650266285565911386314+5264 39846.5583114996337097207338633+5265 39855.1271479242017855969690911+5266 39863.6961742642580403085891908+5267 39872.2653904837414296478371792+5268 39880.8347965466046013080601009+5269 39889.4043924168138870872387223+5270 39897.9741780583492950974354127+5271 39906.5441534352045019801545959+5272 39915.1143185113868451276101661+5273 39923.6846732509173149098942654+5274 39932.2552176178305469080418283+5275 39940.8259515761748141529853032+5276 39949.3968750900120193703939701+5277 39957.967988123417687231392276+5278 39966.5392906404809566091516203+5279 39975.1107826053045728413500252+5280 39983.6824639820048799984941339+5281 39992.2543347347118131580979873+5282 40000.8263948275688906847130318+5283 40009.3986442247332065158038227+5284 40017.9710828903754224534638897+5285 40026.543710788679760461966238+5286 40035.1165278838439949711429682+5287 40043.6895341400794451855884984+5288 40052.2627295216109673996808844+5289 40060.8361139926769473184157355+5290 40069.4096875175292923840472326+5291 40077.9834500604334241085307593+5292 40086.5574015856682704117616647+5293 40095.1315420575262579656046823+5294 40103.7058714403133045437085341+5295 40112.2803896983488113771002588+5296 40120.8550967959656555155538041+5297 40129.4299926975101821947274347+5298 40138.0050773673421972090645089+5299 40146.5803507698349592904521874+5300 40155.1558128693751724926326395+5301 40163.7314636303629785813613217+5302 40172.3073030172119494303069087+5303 40180.8833309943490794226874614+5304 40189.4595475262147778586374251+5305 40198.0359525772628613683000554+5306 40206.6125461119605463306398769+5307 40215.1893280947884412979697833+5308 40223.7662984902405394261873976+5309 40232.3434572628242109107153133+5310 40240.9208043770601954281398455+5311 40249.4983397974825945835429277+5312 40258.0760634886388643635217927+5313 40266.6539754150898075948910871+5314 40275.2320755414095664090620704+5315 40283.8103638321856147120935585+5316 40292.3888402520187506604092753+5317 40300.9675047655230891421762849+5318 40309.5463573373260542643391808+5319 40318.1253979320683718453047138+5320 40326.7046265144040619132715497+5321 40335.2840430490004312101998496+5322 40343.8636475005380657014153757+5323 40352.4434398337108230908428272+5324 40361.0234200132258253418631222+5325 40369.6035880038034512037893406+5326 40378.1839437701773287439560565+5327 40386.764487277094327885416788+5328 40395.3452184893145529502443027+5329 40403.9261373716113352084285204+5330 40412.5072438887712254323667627+5331 40421.0885380055939864569411021+5332 40429.6700196868925857451775732+5333 40438.2516888974931879594820095+5334 40446.8335456022351475384472804+5335 40455.4155897659710012792267049+5336 40463.9978213535664609254684262+5337 40472.5802403299004057608055364+5338 40481.1628466598648752078967484+5339 40489.7456403083650614330124141+5340 40498.3286212403193019561606985+5341 40506.9117894206590722667487204+5342 40515.4951448143289784447734812+5343 40524.078687386286749787537404+5344 40532.6624171015032314418833154+5345 40541.2463339249623770419437053+5346 40549.8304378216612413523991071+5347 40558.414728756609972917240447+5348 40566.9992066948318067140302139+5349 40575.5838716013630568136573126+5350 40584.1687234412531090455804622+5351 40592.7537621795644136685550135+5352 40601.3389877813724780468380603+5353 40609.9244002117658593318667277+5354 40618.5099994358461571494045259+5355 40627.0957854187280062921506631+5356 40635.6817581255390694178072171+5357 40644.2679175214200297525990715+5358 40652.854263571524583800241527+5359 40661.4407962410194340563505047+5360 40670.0275154950842817282902645+5361 40678.6144212989118194604535659+5362 40687.2015136177077240649692053+5363 40695.78879241669064925783187+5364 40704.376257661092218400449253+5365 40712.96390931615701724660138+5366 40721.5517473471425866948071053+5367 40730.1397717193194155460927381+5368 40738.7279823979709332671577671+5369 40747.3163793483935027589326577+5370 40755.9049625358964131305236988+5371 40764.4937319258018724785398862+5372 40773.0826874834450006717968306+5373 40781.6718291741738221413926876+5374 40790.2611569633492586761511101+5375 40798.8506708163451222234262306+5376 40807.4403706985481076952646856+5377 40816.0302565753577857799197002+5378 40824.620328412186595758712257+5379 40833.2105861744598383282343782+5380 40841.801029827615668427889555+5381 40850.3916593371050880727653658+5382 40858.9824746683919391918333287+5383 40867.5734757869528964714710383+5384 40876.1646626582774602043016458+5385 40884.7560352478679491433457433+5386 40893.3475935212394933614807201+5387 40901.9393374439200271162026659+5388 40910.5312669814502817196858971+5389 40919.1233820993837784141351939+5390 40927.7156827632868212524258345+5391 40936.3081689387384899840265241+5392 40944.9008405913306329462003191+5393 40953.4936976866678599604786513+5394 40962.086740190367535234403565+5395 40970.679968068059770268533284+5396 40979.2733812853874167687062302+5397 40987.8669798080060595635586225+5398 40996.4607636015840095272907888+5399 41005.0547326318022965076773301+5400 41013.6488868643546622593162809+5401 41022.2432262649475533821124148+5402 41030.8377507993001142649898514+5403 41039.4324604331441800348291237+5404 41048.0273551322242695106238717+5405 41056.6224348622975781628523346+5406 41065.2176995891339710780588157+5407 41073.8131492785159759286403044+5408 41082.4087838962387759478334399+5409 41091.0046034081102029098970108+5410 41099.6006077799507301154851879+5411 41108.1967969775934653822066922+5412 41116.7931709668841440403651086+5413 41125.3897297136811219338755573+5414 41133.9864731838553684263529421+5415 41142.5834013432904594123670016+5416 41151.1805141578825703338593899+5417 41159.777811593540469201718025+5418 41168.3752936161855096225039429+5419 41176.9729601917516238303259029+5420 41185.5708112861853157238579966+5421 41194.1688468654456539084955141+5422 41202.7670668955042647436443313+5423 41211.3654713423453253951390815+5424 41219.9640601719655568927853867+5425 41228.5628333503742171930214225+5426 41237.1617908435930942466941+5427 41245.760932617656499071945153+5428 41254.3602586386112588322024204+5429 41262.9597688725167099192716251+5430 41271.5594632854446910415239488+5431 41280.1593418434795363171747142+5432 41288.7594045127180683726484849+5433 41297.3596512592695914460259043+5434 41305.9600820492558844955675949+5435 41314.5606968488111943133104482+5436 41323.1614956240822286437316392+5437 41331.7624783412281493074757037+5438 41340.3636449664205653301400237+5439 41348.9649954658435260761140701+5440 41357.5665298056935143874677568+5441 41366.1682479521794397278842665+5442 41374.7701498715226313316327128+5443 41383.3722355299568313575760084+5444 41391.9745048937281880482093144+5445 41400.5769579290952488937244514+5446 41409.1795946023289538010956565+5447 41417.7824148797126282681820779+5448 41426.385418727541976562842401+5449 41434.9886061121250749070570082+5450 41443.5919769997823646660530754+5451 41452.195531356846645542428019+5452 41460.799269149663068775266706+5453 41469.4031903445891303442478495+5454 41478.0072949079946641787350156+5455 41486.6115828062618353718476708+5456 41495.2160540057851333995077072+5457 41503.8207084729713653444568858+5458 41512.4255461742396491252406437+5459 41521.0305670760214067301537151+5460 41529.6357711447603574561430241+5461 41538.2411583469125111526633075+5462 41546.846728648946161470480935+5463 41555.4524820173418791154213977+5464 41564.0584184185925051070559392+5465 41572.6645378192031440423228114+5466 41581.2708401856911573640786402+5467 41589.877325484586156634575391+5468 41598.4839936824299968138584315+5469 41607.0908447457767695430811893+5470 41615.6978786411927964327319134+5471 41624.3050953352566223557680463+5472 41632.9124947945590087456537248+5473 41641.5200769857029268992959285+5474 41650.1278418753035512848748008+5475 41658.7357894299882528545636735+5476 41667.3439196163965923621343291+5477 41675.9522324011803136854430405+5478 41684.5607277510033371537929336+5479 41693.1694056325417528801682221+5480 41701.778266012483814098335868+5481 41710.3873088575299305048102284+5482 41718.996534134392661605676253+5483 41727.6059418097967100682667987+5484 41736.2155318504789150776896396+5485 41744.8253042231882456981997463+5486 41753.4352588946857942394124221+5487 41762.0453958317447696273528821+5488 41770.6557150011504907803378688+5489 41779.2662163697003799896849035+5490 41787.8768999042039563052447745+5491 41796.4877655714828289257528712+5492 41805.0988133383706905939949755+5493 41813.710043171713310996783129+5494 41822.3214550383685301697371965+5495 41830.9330489052062519068677538+5496 41839.544824739108437174955931+5497 41848.1567825069690975327258475+5498 41856.7689221756942885548052797+5499 41865.3812437122021032604702083+5500 41873.9937470834226655471688941+5501 41882.6064322562981236288211393+5502 41891.2192991977826434788883934+5503 41899.8323478748424022782103689+5504 41908.4455782544555818676038363+5505 41917.0589903036123622052192728+5506 41925.6725839893149148286510437+5507 41934.2863592785773963217967997+5508 41942.9003161384259417864617795+5509 41951.5144545358986583187037097+5510 41960.1287744380456184899140006+5511 41968.7432758119288538326309402+5512 41977.3579586246223483310805932+5513 41985.9728228432120319164411171+5514 41994.5878684347957739668262125+5515 42003.2030953664833768119834272+5516 42011.8185036053965692427030415+5517 42020.4340931186690000249332645+5518 42029.0498638734462314185974765+5519 42037.6658158368857327011092569+5520 42046.2819489761568736955809428+5521 42054.8982632584409183037214668+5522 42063.5147586509310180434192278+5523 42072.131435120832205591005752+5524 42080.7482926353613883281959094+5525 42089.3653311617473418937004501+5526 42097.9825506672307037395066353+5527 42106.5999511190639666918227373+5528 42115.2175324845114725166821917+5529 42123.835294730849405490203186+5530 42132.4532378253657859734994758+5531 42141.0713617353604639922382233+5532 42149.6896664281451128208406579+5533 42158.3081518710432225713213626+5534 42166.9268180313900937867619944+5535 42175.5456648765328310394152528+5536 42184.1646923738303365334349138+5537 42192.7839004906533037122277508+5538 42201.4032891943842108704231701+5539 42210.0228584524173147704563921+5540 42218.6426082321586442637610132+5541 42227.26253850102599391656679+5542 42235.8826492264489176402984891+5543 42244.5029403758687223265716532+5544 42253.1234119167384614867811364+5545 42261.7440638165229288962782667+5546 42270.3648960426986522431324999+5547 42278.9859085627538867814734301+5548 42287.6071013441886089894090307+5549 42296.2284743545145102315159994+5550 42304.8500275612549904258980911+5551 42313.4717609319451517158083204+5552 42322.0936744341317921458309257+5553 42330.7157680353733993426189879+5554 42339.3380417032401442001836015+5555 42347.9604954053138745697305027+5556 42356.5831291091881089540400594+5557 42365.2059427824680302063865368+5558 42373.8289363927704792339925537+5559 42382.45210990772394870601465+5560 42391.0754632949685767660558906+5561 42399.6989965221561407492014348+5562 42408.322709556950050903573005+5563 42416.9466023670253441163981923+5564 42425.5706749200686776445905428+5565 42434.1949271837783228498363693+5566 42442.8193591258641589381842414+5567 42451.4439707140476667041331091+5568 42460.0687619160619222792150191+5569 42468.693732699651590885068389+5570 42477.3188830325729205909978074+5571 42485.9442128825937360760163332+5572 42494.5697222174934323953662715+5573 42503.1954110050629687515144068+5574 42511.8212792131048622696176809+5575 42520.4473268094331817774553047+5576 42529.0735537618735415898232991+5577 42537.6999600382630952973874628+5578 42546.3265456064505295599907722+5579 42554.9533104342960579044112187+5580 42563.5802544896714145265660971+5581 42572.2073777404598480981587593+5582 42580.8346801545561155777638557+5583 42589.462161699866476026347087+5584 42598.089822344308684427215497+5585 42606.7176620558119855103943382+5586 42615.3456808023171075814265485+5587 42623.9738785517762563545908805+5588 42632.6022552721531087905347291+5589 42641.2308109314228069383177081+5590 42649.8595454975719517818620295+5591 42658.4884589385985970908057449+5592 42667.1175512225122432757549114+5593 42675.7468223173338312479307494+5594 42684.3762721910957362832078637+5595 42693.0059008118417618905396029+5596 42701.6357081476271336847666375+5597 42710.2656941665184932638048406+5598 42718.8958588365938920902085587+5599 42727.5262021259427853771053662+5600 42736.1567240026660259784983982+5601 42744.7874244348758582839323649+5602 42753.4183033906959121175193502+5603 42762.0493608382611966413205044+5604 42770.6805967457180942630797452+5605 42779.3120110812243545483055823+5606 42787.9436038129490881366971896+5607 42796.5753749090727606629108484+5608 42805.2073243377871866816628932+5609 42813.8394520672955235971652932+5610 42822.4717580658122655968900081+5611 42831.1042423015632375896582595+5612 42839.7369047427855891480508657+5613 42848.3697453577277884551357894+5614 42857.0027641146496162555090534+5615 42865.6359609818221598106451822+5616 42874.2693359275278068585533338+5617 42882.9028889200602395777352873+5618 42891.5366199277244285554414577+5619 42900.1705289188366267602211134+5620 42908.8046158617243635187629753+5621 42917.4388807247264384970223805+5622 42926.0733234761929156856311985+5623 42934.7079440844851173895866908+5624 42943.3427425179756182222155103+5625 42951.9777187450482391034090381+5626 42960.6128727340980412621262639+5627 42969.2482044535313202431604153+5628 42977.8837138717655999181655496+5629 42986.5194009572296265009393216+5630 42995.15526567836336256695815+5631 43003.7913080036179810771610036+5632 43012.4275279014558594059780363+5633 43021.0639253403505733736003028+5634 43029.7005002887868912824867907+5635 43038.3372527152607679581050084+5636 43046.9741825882793387939013731+5637 43055.611289876360913800497647+5638 43064.2485745480349716591096729+5639 43072.8860365718421537791846653+5640 43081.5236759163342583602533169+5641 43090.1614925500742344579929844+5642 43098.7994864416361760544982211+5643 43107.4376575596053161327549278+5644 43116.0760058725780207553143989+5645 43124.7145313491617831471635415+5646 43133.3532339579752177827875527+5647 43141.9921136676480544774213422+5648 43150.6311704468211324824859908+5649 43159.270404264146394585206542+5650 43167.9098150882868812124074242+5651 43176.5494028879167245384818088+5652 43185.1891676317211425975312087+5653 43193.829109288396433399671632+5654 43202.469227826649969051502602+5655 43211.109523215200189880735366+5656 43219.7499954227765985649766134+5657 43228.3906444181197542646640306+5658 43237.0314701699812667601500242+5659 43245.6724726471237905929299455+5660 43254.3136518183210192110111562+5661 43262.9550076523576791184192769+5662 43271.5965401180295240288379648+5663 43280.23824918414332902337857+5664 43288.8801348195168847124760262+5665 43297.5221969929789914019073314+5666 43306.1644356733694532629289817+5667 43314.8068508295390725065297232+5668 43323.4494424303496435617949913+5669 43332.0922104446739472583794114+5670 43340.7351548413957450130837366+5671 43349.3782755894097730205326045+5672 43358.0215726576217364479494979+5673 43366.6650460149483036340252966+5674 43375.308695630317100291876814+5675 43383.9525214726667037160917142+5676 43392.5965235109466369938562098+5677 43401.2407017141173632201619432+5678 43409.8850560511502797170884607+5679 43418.5295864910277122571576892+5680 43427.1742930027429092907568316+5681 43435.8191755553000361776260993+5682 43444.4642341177141694224077053+5683 43453.1094686590112909142525436+5684 43461.7548791482282821704809854+5685 43470.4004655544129185842942265+5686 43479.0462278466238636765326239+5687 43487.6921659939306633514774617+5688 43496.3382799654137401566925941+5689 43504.984569730164387546902412+5690 43513.6310352572847641519025883+5691 43522.2776765158878880485000564+5692 43530.9244934750976310364786839+5693 43539.5714861040487129185871051+5694 43548.2186543718866957845451788+5695 43556.8659982477679782990655447+5696 43565.513517700859789993886753+5697 43574.161212700340185563814445+5698 43582.8090832153980391667670691+5699 43591.4571292152330387278226174+5700 43600.105350669055680247262873+5701 43608.7537475460872621126116621+5702 43617.4023198155598794146636082+5703 43626.0510674467164182674998893+5704 43634.6999904088105501324875028+5705 43643.3490886711067261462585473+5706 43651.998362202880171452666032+5707 43660.6478109734168795387127316+5708 43669.2974349520136065744496034+5709 43677.9472341079778657568402926+5710 43686.5972084106279216575882503+5711 43695.2473578292927845749229957+5712 43703.8976823333122048893420568+5713 43712.5481818920366674233051261+5714 43721.1988564748273858048769743+5715 43729.8497060510562968353156649+5716 43738.5007305901060548606026207+5717 43747.1519300613700261469110925+5718 43755.8033044342522832600095861+5719 43764.4548536781675994485968088+5720 43773.1065777625414430315646956+5721 43781.758476656809971789186084+5722 43790.4105503304200273582236073+5723 43799.0627987528291296309563793+5724 43807.7152218935054711581210484+5725 43816.3678197219279115557638027+5726 43825.0205922075859719159999098+5727 43833.6735393199798292216773801+5728 43842.3266610286203107649413451+5729 43850.9799573030288885696957463+5730 43859.6334281127376738179589329+5731 43868.2870734272894112801097722+5732 43876.9408932162374737490208769+5733 43885.5948874491458564780755603+5734 43894.2490560955891716230651322+5735 43902.9033991251526426879631515+5736 43911.5579165074320989745732567+5737 43920.2126082120339700360471971+5738 43928.867474208575280134269693+5739 43937.5225144666836427011067544+5740 43946.1777289559972548035140941+5741 43954.8331176461648916125022715+5742 43963.4886805068459008759552097+5743 43972.1444175077101973952987297+5744 43980.8003286184382575060157511+5745 43989.4564138087211135620048102+5746 43998.1126730482603484237785518+5747 44006.7691063067680899504988528+5748 44015.4257135539670054958452401+5749 44024.0824947595902964077132693+5750 44032.7394498933816925317395322+5751 44041.3965789250954467186499677+5752 44050.0538818244963293354281501+5753 44058.7113585613596227803002369+5754 44067.3690091054711160015332571+5755 44076.0268334266270990200434287+5756 44084.6848314946343574558111935+5757 44093.3430032793101670580996644+5758 44102.0013487504822882394731813+5759 44110.659867877988960613612676+5760 44119.3185606316788975369245507+5761 44127.9774269814112806539397764+5762 44136.636466897055754446499923+5763 44145.2956803484924207867268344+5764 44153.9550673056118334937726662+5765 44162.6146277383149928943470082+5766 44171.2743616165133403870178142+5767 44179.9342689101287530102828686+5768 44188.59434958909353801440852+5769 44197.254603623350427437032417+5770 44205.9150309828525726825269838+5771 44214.5756316375635391051203771+5772 44223.2364055574573005957716697+5773 44231.8973527125182341727970078+5774 44240.5584730727411145762434946+5775 44249.2197666081311088660075548+5776 44257.8812332887037710236945382+5777 44266.5428730844850365582163237+5778 44275.2046859655112171151236904+5779 44283.8666719018289950896702212+5780 44292.528830863495418243604514+5781 44301.1911628205778943256874733+5782 44309.8536677431541856959314612+5783 44318.5163456013124039535580906+5784 44327.1791963651510045686714435+5785 44335.8422200047787815176435058+5786 44344.5054164903148619222086078+5787 44353.1687857918887006922636668+5788 44361.8323278796400751723710302+5789 44370.4960427237190797919607208+5790 44379.1599302942861207192288886+5791 44387.8239905615119105187292786+5792 44396.4882234955774628126545263+5793 44405.1526290666740869458040941+5794 44413.8172072450033826542356697+5795 44422.4819580007772347375968456+5796 44431.1468813042178077351339059+5797 44439.8119771255575406053745484+5798 44448.4772454350391414094813731+5799 44457.1426862029155819982729723+5800 44465.8082993994500927029094594+5801 44474.474084994916157029239279+5802 44483.1400429595975063558041421+5803 44491.8061732637881146354989336+5804 44500.4724758777921931008834445+5805 44509.138950771924184973142782+5806 44517.805597916508760174693316+5807 44526.4724172818808100454310214+5808 44535.1394088383854420626190823+5809 44543.8065725563779745644116232+5810 44552.4739084062239314770104396+5811 44561.1414163582990370454516006+5812 44569.8090963829892105680188006+5813 44578.4769484506905611342803413+5814 44587.144972531809382366746626+5815 44595.8131685967621471661450536+5816 44604.481536615975502460309203+5817 44613.1500765598862639566791985+5818 44621.8187883989414108984101558+5819 44630.4876721035980808240856051+5820 44639.1567276443235643310327955+5821 44647.8259549915952998422367869+5822 44656.4953541159008683768502369+5823 44665.1649249877379883242957966+5824 44673.8346675776145102219580295+5825 44682.5045818560484115364617731+5826 44691.1746677935677914485338638+5827 44699.8449253607108656414451515+5828 44708.5153545280259610930297308+5829 44717.18595526607151087127832+5830 44725.8567275454160489335027242+5831 44734.5276713366382049290683171+5832 44743.1987866103266990056914848+5833 44751.8700733370803366192989748+5834 44760.5415314875080033474460958+5835 44769.2131610322286597062907206+5836 44777.8849619418713359711200442+5837 44786.5569341870751270004270534+5838 44795.2290777384891870635336684+5839 44803.901392566772724671757518+5840 44812.5738786425949974131193147+5841 44821.2465359366353067905877991+5842 44829.9193644195829930638592248+5843 44838.5923640621374300946683595+5844 44847.2655348350080201956279798+5845 44855.9388767089141889825938427+5846 44864.612389654585380230552116+5847 44873.2860736427610507330262574+5848 44881.9599286441906651650003309+5849 44890.6339546296336909493557558+5850 44899.3081515698595931268184845+5851 44907.9825194356478292294136085+5852 44916.6570581977878441574243965+5853 44925.3317678270790650598527701+5854 44934.0066482943308962183782263+5855 44942.6816995703627139348122189+5856 44951.3569216260038614220450138+5857 44960.0323144320936436984820379+5858 44968.7078779594813224859667403+5859 44977.3836121790261111111869931+5860 44986.0595170615971694105620569+5861 44994.7355925780735986386071433+5862 45003.4118386993444363797726063+5863 45012.0882553963086514637548007+5864 45020.7648426398751388842756458+5865 45029.4416004009627147213279378+5866 45038.1185286505001110668834566+5867 45046.7956273594259709540609148+5868 45055.4728964986888432897508019+5869 45064.150336039247177790694177+5870 45072.827945952069319923012469+5871 45081.5057262081335058451853439+5872 45090.1836767784278573544737044+5873 45098.8617976339503768367848859+5874 45107.5400887457089422199771224+5875 45116.2185500847213019306003511+5876 45124.8971816220150698540704342+5877 45133.5759833286277202982738758+5878 45142.2549551756065829606001142+5879 45150.9340971340088378983984768+5880 45159.6134091749015105028568832+5881 45168.2928912693614664762993877+5882 45176.9725433884754068128996548+5883 45185.6523655033398627828074649+5884 45194.3323575850611909196853479+5885 45203.0125196047555680116524497+5886 45211.6928515335489860956327339+5887 45220.3733533425772474551046307+5888 45229.0540250029859596212492406+5889 45237.7348664859305303774942095+5890 45246.4158777625761627674503927+5891 45255.0970588040978501062384254+5892 45263.7784095816803709952023252+5893 45272.4599300665182843400072519+5894 45281.141620229815924372118553+5895 45289.8234800427873956736592268+5896 45298.5055094766565682056429388+5897 45307.1877085026570723395797275+5898 45315.8700770920322938924515422+5899 45324.5526152160353691650547536+5900 45333.2353228459291799837067869+5901 45341.9181999529863487453140232+5902 45350.6012465084892334657981243+5903 45359.2844624837299228318779344+5904 45367.9678478500102312562041168+5905 45376.651402578641693935843687+5906 45385.3351266409455619141116059+5907 45394.0190200082527971457465992+5908 45402.7030826519040675654283724+5909 45411.3873145432497421596333954+5910 45420.0717156536498860418264294+5911 45428.7562859544742555309849766+5912 45437.4410254171022932334538318+5913 45446.1259340129231231281269216+5914 45454.8110117133355456549536159+5915 45463.4962584897480328067667029+5916 45472.181674313578723224429219+5917 45480.8672591562554172952973297+5918 45489.5530129892155722549964586+5919 45498.2389357839062972925078661+5920 45506.9250275117843486585628817+5921 45515.611288144316124777341996+5922 45524.297717652977661361476022+5923 45532.9843160092546265303465384+5924 45541.6710831846423159316828293+5925 45550.3580191506456478664525388+5926 45559.0451238787791584170432606+5927 45567.7323973405669965787322872+5928 45576.4198395075429193944417436+5929 45585.1074503512502870927763363+5930 45593.7952298432420582293409475+5931 45602.4831779550807848313353118+5932 45611.1712946583386075454230108+5933 45619.859579924597250788872027+5934 45628.5480337254480179039640997+5935 45637.2366560324917863156701296+5936 45645.92544681733900269258888+5937 45654.6144060516096781111462259+5938 45663.3035337069333832230522064+5939 45671.9928297549492434260131368+5940 45680.6822941673059340376960396+5941 45689.3719269156616754729426585+5942 45698.0617279716842284242303186+5943 45706.7516973070508890453769037+5944 45715.4418348934484841384872189+5945 45724.1321407025733663441380136+5946 45732.8226147061314093347989412+5947 45741.513256875838003011486734+5948 45750.2040671834180487036498756+5949 45758.8950456006059543722810556+5950 45767.5861920991456298162546938+5951 45776.277506650790481881886823+5952 45784.9689892273034096757146252+5953 45793.6606398004567997804929154+5954 45802.3524583420325214744048706+5955 45811.0444448238219219534843072+5956 45819.7365992176258215572468085+5957 45828.4289214952545089975270098+5958 45837.1214116285277365905193492+5959 45845.8140695892747154920195978+5960 45854.5068953493341109358644818+5961 45863.1998888805540374755667148+5962 45871.8930501547920542291427606+5963 45880.5863791439151601271306481+5964 45889.2798758197997891637951649+5965 45897.9735401543318056515177561+5966 45906.6673721194064994783684609+5967 45915.3613716869285813688572186+5968 45924.0555388288121781478618817+5969 45932.7498735169808280077302732+5970 45941.4443757233674757785536312+5971 45950.1390454199144682016087838+5972 45958.8338825785735492059664018+5973 45967.5288871713058551882626777+5974 45976.2240591700819102956317842+5975 45984.9193985468816217117964664+5976 45993.6149052736942749463141255+5977 46002.3105793225185291269757529+5978 46011.0064206653624122953550796+5979 46019.7024292742433167055053041+5980 46028.3986051211879941258007679+5981 46037.0949481782325511439209498+5982 46045.7914584174224444749741507+5983 46054.488135810812476272758246+5984 46063.1849803304667894441558849+5985 46071.8819919484588629666615148+5986 46080.5791706368715072090376192+5987 46089.2765163677968592550975505+5988 46097.9740291133363782306123511+5989 46106.6717088456008406333389517+5990 46115.3695555367103356661671424+5991 46124.0675691587942605733827125+5992 46132.7657496839913159800441605+5993 46141.4640970844495012344703731+5994 46150.1626113323261097538366818+5995 46158.8612923997877243728767012+5996 46167.5601402590102126956873604+5997 46176.2591548821787224506345401+5998 46184.9583362414876768483567303+5999 46193.6576843091407699428641249+6000 46202.3571990573509619957305766+6001 46211.0568804583404748433758314+6002 46219.7567284843407872674354702+6003 46228.4567431075926303682159855+6004 46237.1569243003459829412324227+6005 46245.8572720348600668568260198+6006 46254.5577862834033424428592809+6007 46263.2584670182535038704859225+6008 46271.9593142116974745429931323+6009 46280.6603278360314024877135842+6010 46289.3615078635606557510046561+6011 46298.0628542665998177962922985+6012 46306.764367017472682905177004+6013 46315.4660460885122515815993332+6014 46324.1678914520607259590624512+6015 46332.8699030804695052109091349+6016 46341.5720809460991809636507104+6017 46350.2744250213195327133453866+6018 46358.976935278509523245023449+6019 46367.6796116900572940551567836+6020 46376.3824542283601607771702024+6021 46385.0854628658246086099920433+6022 46393.7886375748662877496415216+6023 46402.4919783279100088238503112+6024 46411.195485097389738329715838+6025 46419.899157855748594074383768+6026 46428.602996575438840618757177+6027 46437.3070012289218847242298911+6028 46446.011171788668270802441489+6029 46454.7155082271576763680514601+6030 46463.420010516878907494530014+6031 46472.124678630329894272963042+6032 46480.82951254001768627386873+6033 46489.5345122184584480120233274+6034 46498.2396776381774544142935791+6035 46506.9450087717090862904733276+6036 46515.6505055915968258071217982+6037 46524.3561680703932519644010799+6038 46533.0619961806600360759103187+6039 46541.7679898949679372515141419+6040 46550.4741491858967978831628339+6041 46559.1804740260355391337017885+6042 46567.8869643879821564286677625+6043 46576.5936202443437149510694589+6044 46585.3004415677363451391499725+6045 46594.0074283307852381871286288+6046 46602.7145805061246415489197543+6047 46611.421898066397854444825915+6048 46620.129380984257223371203164+6049 46628.8370292323641376130958431+6050 46637.5448427833890247598384811+6051 46646.2528216100113462236223392+6052 46654.9609656849195927610241536+6053 46663.6692749808112799974946269+6054 46672.377749470392943954804225+6055 46681.0863891263801365814438375+6056 46689.7951939214974212859778596+6057 46698.5041638284783684733472613+6058 46707.2132988200655510841202057+6059 46715.9225988690105401366877868+6060 46724.6320639480739002724024539+6061 46733.3416940300251853036566969+6062 46742.0514890876429337648995664+6063 46750.7614490937146644665886048+6064 46759.4715740210368720520747698+6065 46768.1818638424150225574179303+6066 46776.8923185306635489741305195+6067 46785.6029380586058468148469323+6068 46794.3137223990742696819162555+6069 46803.0246715249101248389159228+6070 46811.7357854089636687850838865+6071 46820.4470640240941028326669052+6072 46829.1585073431695686871825432+6073 46837.8701153390671440305924837+6074 46846.5818879846728381073847592+6075 46855.293825252881587313562504+6076 46864.0059271165972507885368381+6077 46872.7181935487326060099214908+6078 46881.430624522209344391226779+6079 46890.1432200099580668824505539+6080 46898.8559799849182795735637334+6081 46907.5689044200383893008880409+6082 46916.2819932882756992563635721+6083 46924.995246562596404599703814+6084 46933.7086642159755880734357436+6085 46942.4222462213972156208226349+6086 46951.1359925518541320066672061+6087 46959.84990318034805644099274+6088 46968.5639780798895782055998151+6089 46977.2782172234981522834962849+6090 46985.9926205842020949911981464+6091 46994.7071881350385796138989409+6092 47003.4219198490536320435053331+6093 47012.1368156993021264195365155+6094 47020.8518756588477807728850887+6095 47029.56709970076315267243707+6096 47038.2824877981296348745486845+6097 47046.9980399240374509753775967+6098 47055.7137560515856510660662408+6099 47064.4296361538821073907749123+6100 47073.1456802040435100075622843+6101 47081.8618881751953624521110149+6102 47090.5782600404719774042961143+6103 47099.2947957730164723575937418+6104 47108.0114953459807652913281073+6105 47116.7283587325255703457541511+6106 47125.4453859058203934999736803+6107 47134.162576839043528252682642+6108 47142.8799315053820513057472153+6109 47151.5974498780318182506064069+6110 47160.3151319301974592574988365+6111 47169.0329776350923747675114013+6112 47177.7509869659387311874475119+6113 47186.4691598959674565875125912+6114 47195.1874963984182364018145346+6115 47203.905996446539509131676827+6116 47212.6246600135884620517620197+6117 47221.3434870728310269190032676+6118 47230.0624775975418756843416328+6119 47238.7816315610044162072668611+6120 47247.5009489365107879731593419+6121 47256.2204296973618578134309615+6122 47264.9400738168672156284625652+6123 47273.6598812683451701133357431+6124 47282.3798520251227444863566591+6125 47291.0999860605356722203696426+6126 47299.8202833479283927768582667+6127 47308.5407438606540473428316372+6128 47317.2613675720744745704936202+6129 47325.9821544555602063196927375+6130 47334.7031044844904634031504615+6131 47343.4242176322531513344656442+6132 47352.1454938722448560788928153+6133 47360.8669331778708398068920889+6134 47369.5885355225450366504484188+6135 47378.3103008796900484621579456+6136 47387.0322292227371405770791798+6137 47395.7543205251262375773467693+6138 47404.4765747603059190595455998+6139 47413.1989919017334154048429801+6140 47421.9215719228746035518766663+6141 47430.6443147972040027723964799+6142 47439.3672204982047704496572799+6143 47448.0902889993686978595610473+6144 47456.8135202741962059545458459+6145 47465.5369142961963411502194234+6146 47474.2604710388867711147352204+6147 47482.984190475793780560908556+6148 47491.7080725804522670410707614+6149 47500.4321173264057367446590349+6150 47509.1563246872063002985397943+6151 47517.880694636414668570063304+6152 47526.6052271476001484728473572+6153 47535.3299221943406387752877954+6154 47544.0547797502226259117936492+6155 47552.7797997888411797967446868+6156 47561.5049822837999496411691594+6157 47570.2303272087111597721395341+6158 47578.9558345371956054548840065+6159 47587.6815042428826487176115894+6160 47596.4073362994102141790485735+6161 47605.1333306804247848786841609+6162 47613.8594873595813981097230712+6163 47622.5858063105436412547429259+6164 47631.312287506983647624054215+6165 47640.0389309225820922967606549+6166 47648.7657365310281879645177478+6167 47657.4927043060196807779873533+6168 47666.2198342212628461959860893+6169 47674.9471262504724848373253749+6170 47683.674580367371918335340938+6171 47692.402196545692985195109605+6172 47701.1299747591760366533511971+6173 47709.8579149815699325410133578+6174 47718.5860171866320371485371386+6175 47727.3142813481282150938011722+6176 47736.0427074398328271927422638+6177 47744.7712954355287263326502356+6178 47753.5000453090072533481348576+6179 47762.228957034068232899762704+6180 47770.9580305845199693553617751+6181 47779.6872659341792426739917248+6182 47788.4166630568713042925775388+6183 47797.1462219264298730152045101+6184 47805.875942516697130905072358+6185 47814.6058248015237191791063425+6186 47823.3358687547687341052232249+6187 47832.0660743502997229022499309+6188 47840.79644156199267964249277+6189 47849.5269703637320411569550716+6190 47858.2576607294106829432010985+6191 47866.9885126329299150758640982+6192 47875.7195260481994781197963596+6193 47884.4507009491375390458591402+6194 47893.1820373096706871493503321+6195 47901.9135351037339299710677398+6196 47910.6451943052706892210058405+6197 47919.3770148882327967046839036+6198 47928.1089968265804902521033454+6199 47936.8411400942824096493321985+6200 47945.5734446653155925727145779+6201 47954.305910513665470525703025+6202 47963.0385376133258647783116171+6203 47971.7713259382989823091877284+6204 47980.5042754625954117503003322+6205 47989.237386160234119334242735+6206 47997.970658005242444844147638+6207 48006.7040909716560975662124188+6208 48015.4376850335191522448325331+6209 48024.1714401648840450403409345+6210 48032.9053563398115694893514145+6211 48041.6394335323708724677037667+6212 48050.3736717166394501560086799+6213 48059.108070866703144007790269+6214 48067.8426309566561367202241521+6215 48076.5773519606009482074689866+6216 48085.3122338526484315765893766+6217 48094.0472766069177691060680697+6218 48102.7824801975364682269053584+6219 48111.5178445986403575063036069+6220 48120.2533697843735826339348261+6221 48128.9890557288886024107892182+6222 48137.7249024063461847406026192+6223 48146.4609097909154026238607655+6224 48155.1970778567736301543783143+6225 48163.9334065781065385184505504+6226 48172.6698959291080919965757132+6227 48181.4065458839805439677458785+6228 48190.1433564169344329163043336+6229 48198.8803275021885784413673859+6230 48207.6174591139700772688085456+6231 48216.3547512265142992658030272+6232 48225.0922038140648834579305144+6233 48233.8298168508737340488341373+6234 48242.5675903112010164424336106+6235 48251.3055241693151532676904844+6236 48260.0436183994928204059234622+6237 48268.7818729760189430206717394+6238 48277.5202878731866915901043233+6239 48286.2588630652974779419732898+6240 48294.9975985266609512911089424+6241 48303.7364942315949942794548335+6242 48312.4755501544257190186406154+6243 48321.2147662694874631350906877+6244 48329.9541425511227858176666099+6245 48338.6936789736824638678412513+6246 48347.4333755115254877524026508+6247 48356.1732321390190576586855609+6248 48364.9132488305385795523286554+6249 48373.6534255604676612375553765+6250 48382.3937623031981084199764053+6251 48391.1342590331299207719117362+6252 48399.8749157246712880002303414+6253 48408.6157323522385859167054119+6254 48417.3567088902563725108831636+6255 48426.0978453131573840254631983+6256 48434.8391415953825310341884142+6257 48443.580597711380894522242458+6258 48452.3222136356097219691527164+6259 48461.0639893425344234341968448+6260 48469.8059248066285676443108337+6261 48478.5480200023738780844966145+6262 48487.2902749042602290907272092+6263 48496.0326894867856419453474295+6264 48504.7752637244562809749681336+6265 48513.5179975917864496508520502+6266 48522.260891063298586691789181+6267 48531.0039441135232621694597971+6268 48539.7471567169991736162830413+6269 48548.4905288482731421357491579+6270 48557.2340604819001085152333656+6271 48565.9777515924431293412893971+6272 48574.7216021544733731174207275+6273 48583.465612142570116384327516+6274 48592.2097815313207398426272891+6275 48600.954110295320724478047393+6276 48609.6985984091736476890872457+6277 48618.4432458474911794171484219+6278 48627.1880525848930782791306054+6279 48635.9330185960071877024914437+6280 48644.6781438554694320627683446+6281 48653.4234283379238128235602544+6282 48662.1688720180224046789674585+6283 48670.9144748704253516984874499+6284 48679.6602368698008634743649098+6285 48688.4061579908252112713938483+6286 48697.1522382081827241791699549+6287 48705.8984774965657852667912096+6288 48714.6448758306748277400048074+6289 48723.3914331852183311007984516+6290 48732.1381495349128173094340734+6291 48740.885024854482846948922034+6292 48749.6320591186610153919338728+6293 48758.3792523021879489701516619+6294 48767.1266043798123011460520315+6295 48775.8741153262907486871229331+6296 48784.6217851163879878425112069+6297 48793.3696137248767305220990249+6298 48802.1176011265377004780072797+6299 48810.865747296159629488523993+6300 48819.6140522085392535444558191+6301 48828.3625158384813090379007209+6302 48837.111138160798528953439896+6303 48845.8599191503116390617470347+6304 48854.6088587818493541156129927+6305 48863.3579570302483740483839611+6306 48872.1072138703533801748112225+6307 48880.856629277017031394310579+6308 48889.6062032250999603966295429+6309 48898.3559356894707698699203818+6310 48907.1058266450060287112171113+6311 48915.8558760665902682393145306+6312 48924.6060839291159784100473985+6313 48933.3564502074836040339678477+6314 48942.1069748766015409964191395+6315 48950.8576579113861324800038603+6316 48959.6084992867616651894446645+6317 48968.3594989776603655788356705+6318 48977.1106569590223960812826162+6319 48985.8619732057958513409298863+6320 48994.6134476929367544473725196+6321 49003.3650803954090531724513129+6322 49012.1168712881846162094291335+6323 49020.8688203462432294145465601+6324 49029.6209275445725920509549685+6325 49038.3731928581683130350251836+6326 49047.1256162620339071850298197+6327 49055.8781977311807914721974333+6328 49064.6309372406282812741366139+6329 49073.3838347654035866306281405+6330 49082.1368902805418085017833335+6331 49090.8901037610859350285667318+6332 49099.6434751820868377956812301+6333 49108.3970045186032680968138092+6334 49117.1506917457018532022399967+6335 49125.9045368384570926287851958+6336 49134.6585397719513544121410226+6337 49143.4127005212748713815347931+6338 49152.1670190615257374367503039+6339 49160.9214953678099038274980515+6340 49169.6761294152411754351330373+6341 49178.4309211789412070567183065+6342 49187.1858706340394996914323729+6343 49195.9409777556733968293186798+6344 49204.6962425189880807423752527+6345 49213.4516648991365687779826985+6346 49222.2072448712797096546687088+6347 49230.9629824105861797602072277+6348 49239.7188774922324794520504428+6349 49248.4749300914029293600917645+6350 49257.2311401832896666917579561+6351 49265.9875077430926415394285822+6352 49274.7440327460196131901809428+6353 49283.500715167286146437858662+6354 49292.2575549821156078974621047+6355 49301.0145521657391623218587917+6356 49309.7717066933957689208119903+6357 49318.5290185403321776823256553+6358 49327.2864876818029256963039003+6359 49336.044114093070333480523177+6360 49344.8018977494045013089153471+6361 49353.5598386260833055421598271+6362 49362.3179366983923949605829937+6363 49371.0761919416251870993630352+6364 49379.8346043310828645860384376+6365 49388.5931738420743714803182964+6366 49397.3519004499164096161926448+6367 49406.1107841299334349463409933+6368 49414.8698248574576538888372752+6369 49423.6290226078290196761493951+6370 49432.3883773563952287064315794+6371 49441.1478890785117168971077298+6372 49449.9075577495416560407439802+6373 49458.6673833448559501632086627+6374 49467.4273658398332318841178881+6375 49476.187505209859858779564946+6376 49484.9478014303299097471317362+6377 49493.7082544766451813731804403+6378 49502.4688643242151843024236464+6379 49511.2296309484571396097711403+6380 49519.9905543247959751744515795+6381 49528.751634428664322056407267+6382 49537.512871235502510874960244+6383 49546.2742647207585681897479218+6384 49555.0358148598882128839264757+6385 49563.7975216283548525496402249+6386 49572.5593850016295798757552236+6387 49581.3214049551911690378552914+6388 49590.0835814645260720904987107+6389 49598.8459145051284153617338239+6390 49607.6084040524999958498717603+6391 49616.3710500821502776225145289+6392 49625.1338525695963882178367105+6393 49633.8968114903631150481189892+6394 49642.659926819982901805531759+6395 49651.4231985339958448701670495+6396 49660.1866266079496897203170098+6397 49668.950211017399827344997197+6398 49677.7139517379092906587129132+6399 49686.4778487450487509184668397+6400 49695.2419020143965141430062154+6401 49704.0061115215385175343078114+6402 49712.770477242068325901298954+6403 49721.534999151587128085812848+6404 49730.2996772257037333907764582+6405 49739.0645114400345680106292046+6406 49747.82950177020367146397073+6407 49756.5946481918426930284360008+6408 49765.3599506805908881777960031+6409 49774.1254092120951150212822972+6410 49782.8910237620098307451336952+6411 49791.65679430599708805636333+6412 49800.4227208197265316287443826+6413 49809.1888032788753945510127389+6414 49817.9550416591284947772848467+6415 49826.7214359361782315796890473+6416 49835.4879860857245820032086549+6417 49844.2546920834750973227350625+6418 49853.0215539051448995023291508+6419 49861.7885715264566776566892803+6420 49870.555744923140684514824148+6421 49879.3230740709347328859287915+6422 49888.090558945584192127462026+6423 49896.858199522841984615423598+6424 49905.6259957784685822168293468+6425 49914.3939476882320027643826598+6426 49923.162055227907806533340515+6427 49931.9303183732790927205724021+6428 49940.6987371001364959258104168+6429 49949.4673113842781826350888232+6430 49958.2360412015098477063713831+6431 49967.00492652764471085736475+6432 49975.7739673385035131555162278+6433 49984.5431636099145135101941986+6434 49993.3125153177134851670495202+6435 50002.082022437743712204556201+6436 50010.8516849458559860327296581+6437 50019.6215028179086018940208667+6438 50028.3914760297673553663847117+6439 50037.1616045573055388685208525+6440 50045.9318883764039381672854138+6441 50054.702327462950828887271818+6442 50063.4729217928419730225590747+6443 50072.2436713419806154506258459+6444 50081.0145760862774804484286051+6445 50089.7856360016507682106422125+6446 50098.5568510640261513700612284+6447 50107.328221249336771520160289+6448 50116.0997465335232357398118692+6449 50124.871426892533613120159762+6450 50133.6432623023234312936466006+6451 50142.415252738855672965193755+6452 50151.1873981781007724455319356+6453 50159.9596985960366121866808349+6454 50168.732153968648519319576145+6455 50177.5047642719292621938422853+6456 50186.2775294818790469197091801+6457 50195.0504495745055139120714242+6458 50203.8235245258237344366881789+6459 50212.5967543118562071585221407+6460 50221.3701389086328546922159263+6461 50230.143678292191020154704221+6462 50238.9173724385754637199600365+6463 50247.6912213238383591758734277+6464 50256.4652249240392904832610186+6465 50265.23938321524524833700469+6466 50274.0136961735306267293177804+6467 50282.7881637749772195151371576+6468 50291.5627859956742169796395162+6469 50300.3375628117182024078802583+6470 50309.112494199213148656553319+6471 50317.8875801342704147278702955+6472 50326.6628205930087423455572443+6473 50335.4382155515542525329675092+6474 50344.2137649860404421933089462+6475 50352.9894688726081806919839133+6476 50361.765327187405706441040392+6477 50370.5413399065886234857326127+6478 50379.3175070063198980931895537+6479 50388.093828462769855343189689+6480 50396.8703042521161757210403578+6481 50405.6469343505438917125601327+6482 50414.4237187342453844011625648+6483 50423.2006573794203800670396834+6484 50431.9777502622759467884436331+6485 50440.754997359026491045064828+6486 50449.5323986458937543235050088+6487 50458.3099540991068097248435874+6488 50467.0876636949020585742956644+6489 50475.86552740952322703296011+6490 50484.6435452192213627116560954+6491 50493.4217171002548312868464683+6492 50502.2000430288893131186463634+6493 50510.9785229813977998709154423+6494 50519.7571569340605911334321589+6495 50528.5359448631652910461484481+6496 50537.3148867450068049255232335+6497 50546.0939825558873358929331579+6498 50554.8732322721163815051589353+6499 50563.6526358700107303869457289+6500 50572.4321933258944588656359586+6501 50581.2119046160989276078729448+6502 50589.9917697169627782583737953+6503 50598.7717886048319300807699448+6504 50607.5519612560595766005137564+6505 50616.3322876470061822498495983+6506 50625.1127677540394790148478069+6507 50633.8934015535344630844999539+6508 50642.674189021873391501873831+6509 50651.4551301354457788173265709+6510 50660.2362248706483937437743247+6511 50669.0174732038852558140169139+6512 50677.7988751115676320401158816+6513 50686.580430570114033574824365+6514 50695.3621395559502123750672142+6515 50704.1440020455091578674697837+6516 50712.9260180152310936159338255+6517 50721.7081874415634739912589112+6518 50730.4905103009609808428078156+6519 50739.2729865698855201722142934+6520 50748.0556162248062188091316814+6521 50756.838399242199421089020764+6522 50765.6213355985486855329753354+6523 50774.4044252703447815295838987+6524 50783.1876682340856860188259406+6525 50791.9710644662765801780012218+6526 50800.7546139434298461096905266+6527 50809.5383166420650635317463145+6528 50818.3221725387090064693117192+6529 50827.1061816098956399488663415+6530 50835.890343832166116694297284+6531 50844.6746591820687738249938775+6532 50853.4591276361591295559645491+6533 50862.2437491709998798999742847+6534 50871.0285237631608953717011397+6535 50879.8134513892192176939102527+6536 50888.5985320257590565056438191+6537 50897.3837656493717860724254813+6538 50906.1691522366559419984775975+6539 50914.954691764217217940949846+6540 50923.7403842086684623261576313+6541 50932.5262295466296750678287519+6542 50941.3122277547280042873567976+6543 50950.0983788095977430360597411+6544 50958.8846826878803260194421918+6545 50967.671139366224326323459782+6546 50976.4577488212854521427841552+6547 50985.2445110297265435110670281+6548 50994.0314259682175690332018016+6549 51002.8184936134356226195811929+6550 51011.6057139420649202223493677+6551 51020.3930869307967965736470479+6552 51029.1806125563297019258480749+6553 51037.9682907953691987937859087+6554 51046.7561216246279586989685443+6555 51055.5441050208257589157803292+6556 51064.3322409606894792196691653+6557 51073.120529420953098637317583+6558 51081.9089703783576921987961733+6559 51090.6975638096514276916978666+6560 51099.48630969158956241725155+6561 51108.2752080009344399484135119+6562 51117.0642587144554868899352096+6563 51125.8534618089292096404058522+6564 51134.6428172611391911562682943+6565 51143.4323250478760877178067394+6566 51152.221985145937625697104749+6567 51161.0117975321285983279720591+6568 51169.8017621832608624778387037+6569 51178.5918790761533354216149486+6570 51187.3821481876319916175155394+6571 51196.1725694945298594848467681+6572 51204.9631429736870181837548658+6573 51213.753868601950594396934229+6574 51222.544746356174759113293989+6575 51231.3357762132207244135814339+6576 51240.1269581499567402579607978+6577 51248.9182921432580912755459274+6578 51257.7097781700070935558853433+6579 51266.5014162070930914423982109+6580 51275.2932062314124543277597379+6581 51284.0851482198685734512345185+6582 51292.8772421493718586979563432+6583 51301.6694879968397354001529968+6584 51310.4618857391966411403145661+6585 51319.2544353533740225563037828+6586 51328.0471368163103321484069262+6587 51336.8399901049510250883238128+6588 51345.6329951962485560300954019+6589 51354.4261520671623759229675446+6590 51363.2194606946589288261894099+6591 51372.0129210557116487257451175+6592 51380.8065331273009563530171125+6593 51389.6002968864142560053798168+6594 51398.3942123100459323687220921+6595 51407.1882793751973473418970541+6596 51415.9824980588768368630977746+6597 51424.7768683380997077381574138+6598 51433.5713901898882344707723226+6599 51442.3660635912716560946466593+6600 51451.1608885192861730075570632+6601 51459.9558649509749438073359321+6602 51468.7509928633880821297718504+6603 51477.5462722335826534884257145+6604 51486.341703038622672116361107+6605 51495.137285255579097809787469+6606 51503.9330188615298327736146236+6607 51512.7289038335597184689172028+6608 51521.5249401487605324623075344+6609 51530.321127784230985277215543+6610 51539.1174667170767172470742241+6611 51547.9139569244102953704092482+6612 51556.7105983833512101678312571+6613 51565.507391071025872540929412+6614 51574.304334964567610633064756+6615 51583.1014300411166666920619565+6616 51591.8986762778201939347979907+6617 51600.696073651832253413686342+6618 51609.4936221403138108850552747+6619 51618.2913217204327336794187561+6620 51627.0891723693637875736385966+6621 51635.8871740642886336649763787+6622 51644.6853267823958252470337496+6623 51653.4836305008808046875796497+6624 51662.2820851969459003082630536+6625 51671.0806908478003232662098008+6626 51679.8794474306601644375020931+6627 51688.6783549227483913025392397+6628 51697.4774133012948448332782289+6629 51706.2766225435362363823527104+6630 51715.0759826267161445740689691+6631 51723.8754935280850121972774781+6632 51732.6751552249001431001186132+6633 51741.4749676944256990866411192+6634 51750.2749309139326968152919145+6635 51759.0750448606990046992758239+6636 51767.8753095120093398087838316+6637 51776.6757248451552647750884458+6638 51785.4762908374351846965047676+6639 51794.2770074661543440462158618+6640 51803.0778747086248235819610219+6641 51811.8788925421655372575855295+6642 51820.6800609441022291364505059+6643 51829.481379891767470306701455+6644 51838.2828493625006557983940991+6645 51847.0844693336480015024761109+6646 51855.8862397825625410916233437+6647 51864.6881606866041229429291658+6648 51873.490232023139407062445505+6649 51882.2924537695418620115742105+6650 51891.0948259031917618353073415+6651 51899.8973484014761829923149908+6652 51908.7000212417890012868792571+6653 51917.5028444015308888026729758+6654 51926.3058178581093108383818242+6655 51935.1089415889385228451684142+6656 51943.9122155714395673659769908+6657 51952.7156397830402709766773509+6658 51961.5192142011752412290466047+6659 51970.3229388032858635955873961+6660 51979.1268135668202984161812058+6661 51987.9308384692334778465753586+6662 51996.735013487987102808702358+6663 52005.5393386005496399428301742+6664 52014.3438137843963185615421107+6665 52023.1484390170091276055448769+6666 52031.9532142758768126013034961+6667 52040.758139538494872620501678+6668 52049.5632147823655572413262867+6669 52058.3684399849978635115745372+6670 52067.1738151239075329135825536+6671 52075.9793401766170483309739226+6672 52084.7850151206556310172268813+6673 52093.5908399335592375660587725+6674 52102.3968145928705568836264098+6675 52111.2029390761390071625409893+6676 52120.00921336092073285769619+6677 52128.8156374247786016639081058+6678 52137.6222112452822014953656503+6679 52146.428934800007837466890081+6680 52155.2358080665385288770022874+6681 52164.0428310224640061927964913+6682 52172.8500036453807080366190052+6683 52181.6573259128917781745507009+6684 52190.4647978026070625066918373+6685 52199.2724192921431060592478994+6686 52208.0801903591231499784151017+6687 52216.888110981177128526064211+6688 52225.6961811359416660772213426+6689 52234.5044008010600741193443877+6690 52243.3127699541823482533937296+6691 52252.1212885729651651966959074+6692 52260.929956635071879787598888+6693 52269.7387741181725219919176077+6694 52278.5477409999437939111684459+6695 52287.356857258069066792591295+6696 52296.1661228702383780409578914+6697 52304.9755378141484282321650741+6698 52313.7851020675025781286116382+6699 52322.5948156080108456963574517+6700 52331.4046784133899031240635066+6701 52340.2146904613630738437115733+6702 52349.0248517296603295531021325+6703 52357.8351621960182872401292573+6704 52366.6456218381802062088311197+6705 52375.4562306338959851072147978+6706 52384.2669885609221589568540605+6707 52393.0778955970218961842588081+6708 52401.8889517199649956540148475+6709 52410.7001569075278837036926837+6710 52419.5115111374936111805240078+6711 52428.3230143876518504798445658+6712 52437.134666635798892585302091+6713 52445.9464678597376441108279866+6714 52454.7584180372776243443714438+6715 52463.5705171462349622933946833+6716 52472.3827651644323937321280092+6717 52481.1951620696992582505833652+6718 52490.0077078398714963053250838+6719 52498.8204024527916462719965212+6720 52507.6332458863088414996012712+6721 52516.4462381182788073665376529+6722 52525.2593791265638583383851673+6723 52534.0726688890328950274416204+6724 52542.8861073835614012540096114+6725 52551.6996945880314411094310833+6726 52560.5134304803316560208686384+6727 52569.3273150383572618178323198+6728 52578.1413482400100458004505603+6729 52586.9555300631983638094840042+6730 52595.7698604858371372980809068+6731 52604.5843394858478504052728167+6732 52613.3989670411585470312092496+6733 52622.2137431297038279141300612+6734 52631.0286677294248477090742292+6735 52639.8437408182693120683237555+6736 52648.6589623741914747235814003+6737 52657.4743323751521345698809601+6738 52666.289850799118632751228807+6739 52675.1055176240648497479754001+6740 52683.9213328279712024659154902+6741 52692.7372963888246413271157322+6742 52701.5534082846186473624684255+6743 52710.3696684933532293059701016+6744 52719.1860769930349206907236816+6745 52728.0026337616767769466629229+6746 52736.819338777298372499997882+6747 52745.636192017925797874380115+6748 52754.4531934615916567937863433+6749 52763.27034308633506328711931+6750 52772.0876408702016387945245558+6751 52780.9050867912435092754218436+6752 52789.7226808275193023182499605+6753 52798.5404229570941442519236304+6754 52807.3583131580396572590012687+6755 52816.1763514084339564905623118+6756 52824.9945376863616471827928583+6757 52833.8128719699138217752783552+6758 52842.6313542371880570310020681+6759 52851.449984466288411158048072+6760 52860.2687626353254209330075025+6761 52869.0876887224160988260868082+6762 52877.9067627056839301279167439+6763 52886.7259845632588700780608495+6764 52895.5453542732773409952221568+6765 52904.3648718138822294091468683+6766 52913.1845371632228831942237563+6767 52922.0043502994551087047780266+6768 52930.8243112007411679120583962+6769 52939.6444198452497755429161347+6770 52948.4646762111560962201748181+6771 52957.2850802766417416046895481+6772 52966.1056320198947675390943883+6773 52974.9263314191096711932367715+6774 52983.7471784524873882112976321+6775 52992.5681730982352898605960208+6776 53001.3893153345671801820769571+6777 53010.210605139703293142481278+6778 53019.0320424918702897881962432+6779 53027.8536273693012554007856547+6780 53036.675359750235696654198255+6781 53045.4972396129195387736531636+6782 53054.3192669356051226962011171+6783 53063.1414416965512022329602772+6784 53071.9637638740229412330253711+6785 53080.7862334462919107490489337+6786 53089.6088503916360862044934157+6787 53098.431614688339844562552931+6788 53107.2545263146939614967434092+6789 53116.0775852489956085631599276+6790 53124.9007914695483503743999934+6791 53133.7241449546621417751515494+6792 53142.5476456826533250194444782+6793 53151.3712936318446269495643797+6794 53160.1950887805651561766273999+6795 53169.019031107150400262814886+6796 53177.8431205899422229052666497+6797 53186.6673572072888611216316158+6798 53195.491740937544922437274639+6799 53204.3162717590713820741382696+6800 53213.1409496502355801412582514+6801 53221.9657745894112188269315362+6802 53230.7907465549783595925356002+6803 53239.6158655253234203679978478+6804 53248.4411314788391727489138909+6805 53257.2665443939247391953134921+6806 53266.0921042489855902320729598+6807 53274.9178110224335416509727886+6808 53283.7436646926867517143993334+6809 53292.5696652381697183606893124+6810 53301.3958126373132764111159307+6811 53310.2221068685545947785154211+6812 53319.0485479103371736775527968+6813 53327.875135741110841836625613+6814 53336.7018703393317537114045361+6815 53345.5287516834623867000095181+6816 53354.3557797519715383598203785+6817 53363.1829545233343236259205922+6818 53372.0102759760321720311730879+6819 53380.8377440885528249279268587+6820 53389.6653588393903327113531902+6821 53398.4931202070450520444103105+6822 53407.3210281700236430844352697+6823 53416.149082706839066711361855+6824 53424.9772837960105817575633513+6825 53433.8056314160637422393189554+6826 53442.6341255455303945899026557+6827 53451.4627661629486748942933885+6828 53460.2915532468630061255052828+6829 53469.1204867758240953825368092+6830 53477.9495667283889311299376458+6831 53486.7787930831207804389920779+6832 53495.6081658185891862305177482+6833 53504.4376849133699645192785753+6834 53513.2673503460452016600106593+6835 53522.0971620952032515950599948+6836 53530.9271201394387331036308122+6837 53539.7572244573525270526433691+6838 53548.587475027551773649200015+6839 53557.4178718286498696946583534+6840 53566.248414839266465840310327+6841 53575.0791040380274638446660509+6842 53583.9099394035650138323412221+6843 53592.7409209145175115545469334+6844 53601.5720485495295956511807201+6845 53610.4033222872521449145176708+6846 53619.2347421063422755545004332+6847 53628.0663079854633384656269474+6848 53636.8980199032849164954347389+6849 53645.7298778384828217145806081+6850 53654.5618817697390926885145491+6851 53663.3940316757419917507467354+6852 53672.2263275351860022777064111+6853 53681.058769326771825965191523+6854 53689.8913570292063801064079362+6855 53698.7240906212027948715970722+6856 53707.5569700814804105892508104+6857 53716.3899953887647750289124976+6858 53725.2231665217876406855629063+6859 53734.0564834592869620655899885+6860 53742.8899461800068929743412704+6861 53751.723554662697783805257732+6862 53760.5573088861161788305880237+6863 53769.3912088290248134936818634+6864 53778.2252544701926117028614682+6865 53787.0594457883946831268698676+6866 53795.8937827624123204918949528+6867 53804.7282653710329968801681125+6868 53813.5628935930503630301363096+6869 53822.3976674072642446382064541+6870 53831.2325867924806396620609264+6871 53840.0676517275117156255431087+6872 53848.9028621911758069251117815+6873 53857.7382181622974121378632443+6874 53866.5737196197071913311200195+6875 53875.4093665422419633735850004+6876 53884.2451589087447032480599051+6877 53893.0810966980645393657268982+6878 53901.9171798890567508819922448+6879 53910.7534084605827650138908603+6880 53919.5897823915101543590506228+6881 53928.4263016607126342162153128+6882 53937.2629662470700599073250502+6883 53946.0997761294684241011530945+6884 53954.9367312867998541384978801+6885 53963.773831697962609358929155+6886 53972.611077341861078429087096+6887 53981.4484681974057766725332722+6888 53990.2860042435133434011523299+6889 53999.1236854591065392481032744+6890 54007.9615118231142435023192224+6891 54016.7994833144714514445545035+6892 54025.6375999121192716849779859+6893 54034.4758615950049235023115065+6894 54043.3142683420817341845122836+6895 54052.152820132309136370998193+6896 54060.9915169446526653964147883+6897 54069.8303587580839566359429481+6898 54078.6693455515807428521460332+6899 54087.5084773041268515433554375+6900 54096.3477539947122022935934185+6901 54105.1871756023328041240320928+6902 54114.0267421059907528459874843+6903 54122.8664534846942284154475126+6904 54131.7063097174574922891328109+6905 54140.5463107833008847820892633+6906 54149.3864566612508224268111529+6907 54158.2267473303397953338938114+6908 54167.0671827696063645542146645+6909 54175.9077629580951594426415659+6910 54184.7484878748568750232673154+6911 54193.5893574989482693561692563+6912 54202.430371809432160905692849+6913 54211.2715307853774259102581185+6914 54220.1128344058589957536878748+6915 54228.9542826499578543380566045+6916 54237.7958754967610354580589364+6917 54246.6376129253616201768965796+6918 54255.4794949148587342036826397+6919 54264.3215214443575452723622135+6920 54273.1636924929692605221481696+6921 54282.0060080398111238794710169+6922 54290.8484680640064134414417703+6923 54299.6910725446844388608267184+6924 54308.5338214609805387325330031+6925 54317.3767147920360779816039194+6926 54326.2197525169984452527228443+6927 54335.0629346150210503012247089+6928 54343.906261065263321385613922+6929 54352.7497318468907026615876603+6930 54361.5933469390746515775634385+6931 54370.4371063209926362717098741+6932 54379.2810099718281329704795619+6933 54388.1250578707706233886429755+6934 54396.9692499970155921308223138+6935 54405.8135863297645240945242094+6936 54414.6580668482249018746702203+6937 54423.5026915316102031696240233+6938 54432.3474603591398981887142323+6939 54441.1923733100394470612517623+6940 54450.0374303635402972470406627+6941 54458.8826314988798809483813444+6942 54467.7279766953016125235651247+6943 54476.5734659320548859018590178+6944 54485.4190991883950719999796955+6945 54494.2648764435835161400555473+6946 54503.1107976768875354690757685+6947 54511.9568628675804163798254061+6948 54520.8030719949414119333052919+6949 54529.6494250382557392826357959+6950 54538.4959219768145770984433316+6951 54547.3425627899150629957285464+6952 54556.1893474568602909622151319+6953 54565.0362759569593087881781887+6954 54573.8833482695271154977510826+6955 54582.7305643738846587817097282+6956 54591.5779242493588324317332388+6957 54600.4254278752824737761398808+6958 54609.273075230994361117097273+6959 54618.1208662958392111693057703+6960 54626.9688010491676765001539754+6961 54635.8168794703363429713453187+6962 54644.6651015387077271819946515+6963 54653.5134672336502739131937966+6964 54662.3619765345383535740450003+6965 54671.2106294207522596491612336+6966 54680.0594258716782061476322892+6967 54688.908365866708325053455621+6968 54697.7574493852406637774308768+6969 54706.6066764066791826105170731+6970 54715.4560469104337521786513626+6971 54724.3055608759201508990283457+6972 54733.1552182825600624378388802+6973 54742.0050191097810731694673395+6974 54750.8549633370166696371462774+6975 54759.7050509437062360150674509+6976 54768.5552819092950515719481601+6977 54777.4056562132342881360518605+6978 54786.2561738349810075616620062+6979 54795.1068347539981591970080824+6980 54803.9576389497545773536427875+6981 54812.8085864017249787772693246+6982 54821.6596770893899601200177645+6983 54830.5109109922359954141694424+6984 54839.3622880897554335473283509+6985 54848.2138083614464957390384946+6986 54857.0654717868132730188461706+6987 54865.9172783453657237058061406+6988 54874.7692280166196708894306619+6989 54883.6213207800967999120803453+6990 54892.4735566153246558527958069+6991 54901.3259355018366410125690855+6992 54910.1784574191720124010537942+6993 54919.0311223468758792247129783+6994 54927.8839302644992003764036511+6995 54936.7368811515987819263969808+6996 54945.589974987737274614833103+6997 54954.4432117524831713456095323+6998 54963.2965914254108046817021496+6999 54972.1501139861003443419177415+7000 54981.0037794141377946990770687+7001 54989.8575876891149922796274417+7002 54998.7115387906296032646837846+7003 55007.5656326982851209924971635+7004 55016.4198693916908634623497647+7005 55025.2742488504619708398753005+7006 55034.1287710542194029638038285+7007 55042.983435982589936854129965+7008 55051.8382436152061642217034797+7009 55060.6931939317064889792412546+7010 55069.5482869117351247537595944+7011 55078.4035225349420924004258757+7012 55087.2589007809832175178285212+7013 55096.1144216295201279646642899+7014 55104.9700850602202513778418708+7015 55113.825891052756812692000772+7016 55122.681839586808831660444496+7017 55131.5379306420611203774869925+7018 55140.3941641982042808022113839+7019 55149.2505402349347022836399544+7020 55158.1070587319545590873144012+7021 55166.9637196689718079232853389+7022 55175.8205230257001854755100582+7023 55184.6774687818592059326575327+7024 55193.5345569171741585203196733+7025 55202.3917874113761050346278303+7026 55211.2491602442018773772735408+7027 55220.1066753953940750919325243+7028 55228.9643328447010629020909265+7029 55237.8221325718769682502728151+7030 55246.6800745566816788386679297+7031 55255.5381587788808401711586907+7032 55264.3963852182458530967454726+7033 55273.2547538545538713543691457+7034 55282.1132646675877991191298953+7035 55290.9719176371362885499013246+7036 55299.8307127429937373383388495+7037 55308.6896499649602862592813954+7038 55317.5487292828418167225454055+7039 55326.4079506764499483261101715+7040 55335.2673141256020364106934992+7041 55344.1268196101211696157167207+7042 55352.9864671098361674366580667+7043 55361.8462566045815777837934143+7044 55370.7061880741976745423234243+7045 55379.5662614985304551338860841+7046 55388.4264768574316380794536737+7047 55397.2868341307586605636131719+7048 55406.1473332983746760002291211+7049 55415.0079743401485515994879704+7050 55423.8687572359548659363229171+7051 55432.7296819656739065202182672+7052 55441.5907485091916673663923374+7053 55450.4519568463998465683579202+7054 55459.3133069571958438718593373+7055 55468.1747988214827582501851035+7056 55477.0364324191693854808552279+7057 55485.898207730170215723682178+7058 55494.7601247344054311002045325+7059 55503.6221834118009032744923522+7060 55512.4843837422881910353232959+7061 55521.3467257058045378797285113+7062 55530.209209282292869597907331+7063 55539.0718344517017918595098046+7064 55547.9346011939855878012860979+7065 55556.7975094891042156161017929+7066 55565.6605593170233061433181217+7067 55574.5237506577141604605361673+7068 55583.3870834911537474767040685+7069 55592.2505577973247015265862629+7070 55601.1141735562153199665938054+7071 55609.9779307478195607719747999+7072 55618.8418293521370401353639826+7073 55627.7058693491730300666904947+7074 55636.5700507189384559944428865+7075 55645.4343734414498943682903923+7076 55654.2988374967295702630595177+7077 55663.1634428648053549840649822+7078 55672.0281895257107636737940604+7079 55680.8930774594849529199433647+7080 55689.758106646172718364807116+7081 55698.6232770658244923160159465+7082 55707.4885886984963413586252818+7083 55716.3540415242499639685523498+7084 55725.2196355231526881273608632+7085 55734.0853706752774689383924264+7086 55742.9512469607028862442437146+7087 55751.8172643595131422455884767+7088 55760.6834228517980591213434124+7089 55769.5497224176530766501769772+7090 55778.4161630371792498333601657+7091 55787.2827446904832465189583293+7092 55796.1494673576773450273630814+7093 55805.0163310188794317781633451+7094 55813.8833356542129989183546014+7095 55822.7504812438071419518853921+7096 55831.6177677677965573705401371+7097 55840.4851952063215402861573241+7098 55849.3527635395279820641821291+7099 55858.220472747567367958552529+7100 55867.0883228105967747479179665+7101 55875.9563137087788683731896284+7102 55884.8244454222819015764214017+7103 55893.6927179312797115410205677+7104 55902.5611312159517175332873013+7105 55911.4296852564829185452820382+7106 55920.2983800330638909390197759+7107 55929.1672155258907860919903763+7108 55938.0361917151653280440039348+7109 55946.905308581094811145360286+7110 55955.7745661038920977063417135+7111 55964.6439642637756156480279335+7112 55973.5135030409693561544324235+7113 55982.383182415702871325959165+7114 55991.2530023682112718341788753+7115 56000.122962878735224577923798+7116 56008.9930639275209503407001272+7117 56017.86330549482022144941714+7118 56026.733687560890359434432111+7119 56035.6042101059942326909100857+7120 56044.4748731104002541414975891+7121 56053.3456765543823789003093463+7122 56062.2166204182201019382270943+7123 56071.0877046821984557495095628+7124 56079.9589293266080080197127046+7125 56088.8302943317448592949192553+7126 56097.701799677910640652276704+7127 56106.5734453454125113718427573+7128 56115.4452313145631566097373782+7129 56124.317157565680785072600485+7130 56133.1892240790891266933543936+7131 56142.061430835117430308270088+7132 56150.9337778141004613353364056+7133 56159.8062649963784994539312243+7134 56168.6788923622973362857937371+7135 56177.551659892208273077296904+7136 56186.4245675664681183830191698+7137 56195.2976153654391857506145369+7138 56204.1708032694892914069800837+7139 56213.0441312589917519457200212+7140 56221.9175993143253820159053774+7141 56230.7912074158744920121284041+7142 56239.6649555440288857658507994+7143 56248.5388436791838582380448391+7144 56257.4128718017401932131265136+7145 56266.2870398921041609941797645+7146 56275.1613479306875160994709192+7147 56284.0357958979074949602524186+7148 56292.910383774186813619854939+7149 56301.7851115399536654340670034+7150 56310.6599791756417187728011852+7151 56319.5349866616901147230460024+7152 56328.4101339785434647931026044+7153 56337.2854211066518486181053528+7154 56346.1608480264708116668253993+7155 56355.0364147184613629497563635+7156 56363.9121211630899727284812152+7157 56372.7879673408285702263194661+7158 56381.6639532321545413402537753+7159 56390.5400788175507263541350774+7160 56399.4163440775054176531653375+7161 56408.2927489925123574396570434+7162 56417.1692935430707354500685417+7163 56426.0459777096851866733143286+7164 56434.9228014728657890703494046+7165 56443.7997648131280612950268043+7166 56452.676867710992960416227413+7167 56461.5541101469868796412611819+7168 56470.4314921016416460405388559+7169 56479.3090135554945182735133267+7170 56488.186674489088184315889727+7171 56497.0644748829707591881033798+7172 56505.94241471769578268506472+7173 56514.8204939738222171071703042+7174 56523.6987126319144449925790273+7175 56532.577070672542266850752662+7176 56541.4555680762808988972598439+7177 56550.3342048237109707898426174+7178 56559.2129808954185233657446668+7179 56568.0918962719950063803003515+7180 56576.970950934037276246783668+7181 56585.8501448621475937775162613+7182 56594.7294780369336219262336093+7183 56603.6089504390084235317085039+7184 56612.4885620489904590626309542+7185 56621.3683128475035843637436366+7186 56630.2482028151770484032320193+7187 56639.1282319326454910213682874+7188 56648.008400180548940680408196+7189 56656.8887075395328122157399818+7190 56665.7691539902479045882844593+7191 56674.649739513350398638145435+7192 56683.5304640895018548395095678+7193 56692.4113276993692110567948074+7194 56701.2923303236247803020465448+7195 56710.1734719429462484935806047+7196 56719.054752538016672215872216+7197 56727.9361720895244764806900933+7198 56736.8177305781634524894747649+7199 56745.699427984632755396960283+7200 56754.5812642896369020760384528+7201 56763.4632394738857688838647168+7202 56772.3453535180945894292048339+7203 56781.2276064029839523410214901+7204 56790.1099981092797990382999814+7205 56798.9925286177134215011121083+7206 56807.8751979090214600429174234+7207 56816.7580059639459010841009725+7208 56825.6409527632340749267466726+7209 56834.5240382876386535306454691+7210 56843.4072625179176482905374156+7211 56852.2906254348344078145868215+7212 56861.1741270191576157040896114+7213 56870.0577672516612883344120435+7214 56878.9415461131247726371599315+7215 56887.8254635843327438835775192+7216 56896.7095196460752034691751546+7217 56905.5937142791474766995849125+7218 56914.4780474643502105776433142+7219 56923.3625191824893715917002957+7220 56932.2471294143762435051535742+7221 56941.1318781408274251472075636+7222 56950.0167653426648282048559938+7223 56958.901791000715675016087383+7224 56967.7869550958124963643125199+7225 56976.6722576087931292740131078+7226 56985.557698520500714807610727+7227 56994.4432778117836958635552699+7228 57003.3289954634958149756320065+7229 57012.2148514564961121134864361+7230 57021.1008457716489224843660841+7231 57029.9869783898238743360784013+7232 57038.8732492918958867611639255+7233 57047.7596584587451675022838657+7234 57056.6462058712572107588212682+7235 57065.5328915103227949946949268+7236 57074.4197153568379807473851987+7237 57083.3066773917041084381708894+7238 57092.1937775958277961835763686+7239 57101.081015950120937608028082+7240 57109.9683924355006996577196248+7241 57118.8559070328895204156845392+7242 57127.7435597232151069180760057+7243 57136.6313504874104329716525924+7244 57145.5192793064137369724692308+7245 57154.4073461611685197257725862+7246 57163.2955510326235422670999913+7247 57172.1838939017328236845811133+7248 57181.0723747494556389424415233+7249 57189.9609935567565167057073408+7250 57198.8497503046052371661101229+7251 57207.7386449739768298691911729+7252 57216.6276775458515715426044383+7253 57225.5168480012149839256171749+7254 57234.4061563210578315998075493+7255 57243.2956024863761198209583552+7256 57252.1851864781710923521460206+7257 57261.0749082774492292980240795+7258 57269.964767865222244940300289+7259 57278.8547652225070855744065655+7260 57287.7449003303259273473609215+7261 57296.6351731697061740968205807+7262 57305.5255837216804551913254519+7263 57314.4161319672866233717311408+7264 57323.306817887567752593830683+7265 57332.1976414635721358721641781+7266 57341.0886026763532831250155086+7267 57349.979701506969919020595326+7268 57358.8709379364859808244094886+7269 57367.7623119459706162478121352+7270 57376.6538235164981812977425796+7271 57385.5454726291482381276452128+7272 57394.4372592650055528895715979+7273 57403.3291834051600935874639465+7274 57412.2212450307070279316191636+7275 57421.1134441227467211943326491+7276 57430.0057806623847340667210468+7277 57438.8982546307318205167231288+7278 57447.7908660089039256482780073+7279 57456.6836147780221835616798646+7280 57465.5765009192129152151083926+7281 57474.4695244136076262873341355+7282 57483.362685242343005041597928+7283 57492.2559833865609201906636233+7284 57501.149418827408418763043305+7285 57510.0429915460377239703941793+7286 57518.9367015236062330760863419+7287 57527.8305487412765152649406167+7288 57536.7245331802163095141356645+7289 57545.6186548215985224652835575+7290 57554.5129136466012262976730203+7291 57563.4073096364076566026795353+7292 57572.3018427722062102593415122+7293 57581.1965130351904433111017231+7294 57590.0913204065590688437132036+7295 57598.9862648675159548643088223+7296 57607.8813463992701221816337198+7297 57616.7765649830357422874398227+7298 57625.6719206000321352390416337+7299 57634.5674132314837675430325048+7300 57643.4630428586202500401605966+7301 57652.3588094626763357913637304+7302 57661.2547130248919179649623398+7303 57670.1507535265120277250097282+7304 57679.0469309487868321207988404+7305 57687.9432452729716319775247558+7306 57696.8396964803268597881021137+7307 57705.7362845521180776061366788+7308 57714.6330094696159749400502583+7309 57723.5298712140963666483581808+7310 57732.4268697668401908360985494+7311 57741.3240051091335067524124801+7312 57750.22127722226749268927454+7313 57759.1186860875384438813725969+7314 57768.0162316862477704071362962+7315 57776.9139139997019950909133793+7316 57785.8117330092127514062930582+7317 57794.709688696096781380575664+7318 57803.6077810416759335003877844+7319 57812.5060100272771606184421088+7320 57821.4043756342325178614411988+7321 57830.3028778438791605391244022+7322 57839.2015166375593420544571302+7323 57848.1002919966204118149617185+7324 57856.999203902414813145189091+7325 57865.8982523363000812003304499+7326 57874.7974372796388408809682118+7327 57883.6967587137988047489654132+7328 57892.5962166201527709444928094+7329 57901.4958109800786211041928889+7330 57910.395541774959318280480029+7331 57919.2954089861829048619760175+7332 57928.1954125951425004950801651+7333 57937.0955525832363000066732368+7334 57945.9958289318675713279544274+7335 57954.8962416224446534194106096+7336 57963.7967906363809541969170827+7337 57972.6974759550949484589690511+7338 57981.5982975600101758150430616+7339 57990.4992554325552386150876294+7340 57999.4003495541637998801422849+7341 58008.3015799062745812340842709+7342 58017.2029464703313608365021235+7343 58026.1044492277829713166953686+7344 58035.0060881600832977087995674+7345 58043.9078632486912753880359456+7346 58052.8097744750708880080848395+7347 58061.7118218206911654395821946+7348 58070.6140052670261817097383532+7349 58079.5163247955550529430783664+7350 58088.4187803877619353033030679+7351 58097.3213720251360229362701475+7352 58106.2240996891715459140944619+7353 58115.1269633613677681803668223+7354 58124.0299630232289854964904981+7355 58132.9330986562645233891346762+7356 58141.8363702419887350988041183+7357 58150.7397777619209995295242551+7358 58159.6433211975857191996409618+7359 58168.5470005305123181937342558+7360 58177.4508157422352401156451607+7361 58186.3547668142939460426149799+7362 58195.2588537282329124805362247+7363 58204.1630764656016293203144417+7364 58213.0674350079545977953401849+7365 58221.9719293368513284400703798+7366 58230.8765594338563390497183248+7367 58239.7813252805391526410515788+7368 58248.686226858474295414296983+7369 58257.5912641492412947161520642+7370 58266.4964371344246770039020713+7371 58275.4017457956139658106418924+7372 58284.3071901144036797116021057+7373 58293.2127700723933302915784128+7374 58302.1184856511874201134637083+7375 58311.0243368323954406878820367+7376 58319.9303235976318704439236904+7377 58328.8364459285161727009807021+7378 58337.7427038066727936416819859+7379 58346.6490972137311602859273818+7380 58355.5556261313256784660198592+7381 58364.4622905410957308028951355+7382 58373.3690904246856746834479659+7383 58382.2760257637448402389543628+7384 58391.1830965399275283245890011+7385 58400.0903027348930085000370695+7386 58408.997644330305517011199825+7387 58417.9051213078342547729931128+7388 58426.8127336491533853532381086+7389 58435.7204813359420329576435473+7390 58444.6283643498842804158786976+7391 58453.5363826726691671687363453+7392 58462.4445362859906872563850474+7393 58471.3528251715477873077099216+7394 58480.261249311044364530741233+7395 58489.1698086861892647041700442+7396 58498.0785032786962801699501935+7397 58506.9873330702841478269858657+7398 58515.8962980426765471259040237+7399 58524.8053981776020980649109655+7400 58533.7146334567943591867322762+7401 58542.6240038619918255766354414+7402 58551.5335093749379268615343918+7403 58560.4431499773810252101752465+7404 58569.3529256510744133344025277+7405 58578.2628363777763124915051137+7406 58587.1728821392498704876412042+7407 58596.0830629172631596823415676+7408 58604.9933786935891749940903433+7409 58613.9038294500058319069826712+7410 58622.8144151682959644784584228+7411 58631.7251358302473233481113063+7412 58640.6359914176525737475726216+7413 58649.5469819123092935114689397+7414 58658.4581072960199710894529819+7415 58667.369367550592003559306976+7416 58676.2807626578376946411177652+7417 58685.192292599574252712522948+7418 58694.1039573576237888250273275+7419 58703.0157569138133147213889467+7420 58711.9276912499747408540739922+7421 58720.8397603479448744047798426+7422 58729.7519641895654173050255451+7423 58738.6643027566829642578089987+7424 58747.5767760311490007603301277+7425 58756.4893839948199011277793257+7426 58765.402126629556926518190454+7427 58774.3150039172262229583576778+7428 58783.2280158396988193708154226+7429 58792.1411623788506256018807375+7430 58801.0544435165624304507573478+7431 58809.9678592347198996997006849+7432 58818.881409515213574145243178+7433 58827.7950943399388676304790952+7434 58836.7089136907960650784082209+7435 58845.6228675496903205263376576+7436 58854.5369558985316551613410403+7437 58863.4511787192349553567744532+7438 58872.3655359937199707098483374+7439 58881.2800277039113120802546803+7440 58890.1946538317384496298487777+7441 58899.1094143591357108633848592+7442 58908.0243092680422786703048695+7443 58916.9393385404021893675796978+7444 58925.8545021581643307436021481+7445 58934.7698001032824401031309446+7446 58943.6852323577151023132850654+7447 58952.6007989034257478505877009+7448 58961.5164997223826508490591302+7449 58970.4323347965589271493578128+7450 58979.3483041079325323489689919+7451 58988.2644076384862598534401054+7452 58997.1806453702077389286623034+7453 59006.0970172850894327541973697+7454 59015.013523365128636477649346+7455 59023.9301635923274752700801578+7456 59032.8469379486929023824685433+7457 59041.7638464162366972032115834+7458 59050.6808889769754633166681358+7459 59059.5980656129306265627434739+7460 59068.5153763061284330975144321+7461 59077.4328210385999474548943613+7462 59086.350399792381050609337197+7463 59095.2681125495124380395799437+7464 59104.1859592920396177934228809+7465 59113.103940002012908553546794+7466 59122.0220546614874377043665373+7467 59130.940303252523139399920234+7468 59139.8586857571847526327934197+7469 59148.7772021575418193040774377+7470 59157.6958524356686822943613918+7471 59166.6146365736444835357569675+7472 59175.5335545535531620849554272+7473 59184.4526063574834521973160923+7474 59193.3717919675288814019856183+7475 59202.2911113657877685780473773+7476 59211.210564534363222031700255+7477 59220.1301514553631375744661776+7478 59229.049872110900196602425677+7479 59237.9697264830918641764808103+7480 59246.8897145540603871036447442+7481 59255.8098363059327920193573199+7482 59264.7300917208408834708259118+7483 59273.6504807809212420013908951+7484 59282.5710034683152222359150378+7485 59291.4916597651689509671961335+7486 59300.4124496536333252434021904+7487 59309.3333731158640104565284946+7488 59318.2544301340214384318758653+7489 59327.1756206902708055185494187+7490 59336.0969447667820706809771617+7491 59345.0184023457299535914477321+7492 59353.9399934092939327236666069+7493 59362.861717939658243447330098+7494 59371.7835759190118761237164576+7495 59380.7055673295485742022934118+7496 59389.6276921534668323183414488+7497 59398.5499503729698943915921794+7498 59407.4723419702657517258810967+7499 59416.3948669275671411098140565+7500 59425.3175252270915429184468034+7501 59434.2403168510611792159768661+7502 59443.1632417817030118594471497+7503 59452.0863000012487406034605474+7504 59461.0094914919348012059049006+7505 59469.932816236002363534687633+7506 59478.8562742156973296754793857+7507 59487.7798654132703320404659832+7508 59496.7035898109767314781080558+7509 59505.62744739107661538390765+7510 59514.5514381358347958121811548+7511 59523.4755620275208075888378753+7512 59532.3998190484089064251635822+7513 59541.3242091807780670326083709+7514 59550.2487324069119812385781597+7515 59559.1733887090990561032291603+7516 59568.0981780696324120372646532+7517 59577.0231004708098809207334015+7518 59585.9481558949340042228290361+7519 59594.8733443243120311226897473+7520 59603.7986657412559166311976179+7521 59612.7241201280823197137769324+7522 59621.6497074671126014141907987+7523 59630.5754277406728229793354186+7524 59639.5012809310937439850313443+7525 59648.4272670207108204628110582+7526 59657.353385991864203027702214+7527 59666.2796378268987350070058778+7528 59675.206022508163950570069108+7529 59684.1325400180140728590512147+7530 59693.0591903388080121206830367+7531 59701.9859734529093638390185785+7532 59710.9128893426864068691783487+7533 59719.8399379905121015720837392+7534 59728.7671193787640879501817905+7535 59737.6944334898246837841596836+7536 59746.6218803060808827706483025+7537 59755.5494598099243526609142121+7538 59764.4771719837514334005393935+7539 59773.4050168099631352700880844+7540 59782.3329942709651370267600674+7541 59791.2611043491677840470297543+7542 59800.1893470269860864702704108+7543 59809.1177222868397173433628703+7544 59818.0462301111530107662880829+7545 59826.9748704823549600387028485+7546 59835.9036433828792158074980825+7547 59844.8325487951640842153389614+7548 59853.7615867016525250501863012+7549 59862.6907570847921498957985147+7550 59871.6200599270352202832135018+7551 59880.5494952108386458432098211+7552 59889.4790629186639824597464963+7553 59898.4087630329774304243808087+7554 59907.3385955362498325916634283+7555 59916.268560410956672535510237+7556 59925.1986576395780727065501974+7557 59934.1288872045987925904486219+7558 59943.0592490885082268672051949+7559 59951.9897432738004035714261068+7560 59960.9203697429739822535696509+7561 59969.8511284785322521421646443+7562 59978.7820194629831303070010251+7563 59987.7130426788391598232919868+7564 59996.6441981086175079368070044+7565 60005.5754857348399642299751139+7566 60014.5069055400329387889578003+7567 60023.4384575067274603716908566+7568 60032.3701416174591745768945712+7569 60041.3019578547683420140516057+7570 60050.2339062011998364743519229+7571 60059.1659866393031431026041264+7572 60068.0981991516323565701125739+7573 60077.0305437207461792485196266+7574 60085.9630203292079193846123971+7575 60094.8956289595854892760933593+7576 60103.8283695944514034483141843+7577 60112.7612422163827768319721668+7578 60121.6942468079613229417686056+7579 60130.6273833517733520560285058+7580 60139.5606518304097693972809659+7581 60148.4940522264660733137996188+7582 60157.4275845225423534621024907+7583 60166.3612487012432889904106484+7584 60175.2950447451781467230649998+7585 60184.2289726369607793459006182+7586 60193.163032359209623592577958+7587 60202.0972238945476984318703321+7588 60211.0315472256026032559070191+7589 60219.9660023350065160693713736+7590 60228.9005892053961916796533067+7591 60237.8353078194129598879555117+7592 60246.7701581597027236813528044+7593 60255.7051402089159574258039506+7594 60264.6402539497077050601153553+7595 60273.5754993647375782908559844+7596 60282.5108764366697547882228954+7597 60291.4463851481729763828567487+7598 60300.3820254819205472636066769+7599 60309.317797420590332176243885+7600 60318.2537009468647546231233596+7601 60327.1897360434307950637930613+7602 60336.1259026929799891165499784+7603 60345.0622008782084257609424192+7604 60353.9986305818167455412179193+7605 60362.935191786510138770716144+7606 60371.8718844749983437372061631+7607 60380.8087086299956449091674783+7608 60389.7456642342208711430141821+7609 60398.6827512703973938912616289+7610 60407.6199697212531254116349991+7611 60416.5573195695205169771191372+7612 60425.4948007979365570869490454+7613 60434.4324133892427696785404151+7614 60443.3701573261852123403595788+7615 60452.3080325915144745257322661+7616 60461.2460391679856757675905462+7617 60470.1841770383584638941573424+7618 60479.1224461853970132455679022+7619 60488.0608465918700228914276087+7620 60496.9993782405507148493055183+7621 60505.9380411142168323041630113+7622 60514.8768351956506378287169414+7623 60523.8157604676389116047366718+7624 60532.7548169129729496452743845+7625 60541.6940045144485620178280516+7626 60550.6333232548660710684364566+7627 60559.5727731170303096467056549+7628 60568.5123540837506193317662624+7629 60577.4520661378408486591609626+7630 60586.3919092621193513486616233+7631 60595.3318834394089845330154112+7632 60604.2719886525371069876192993+7633 60613.2122248843355773611223558+7634 60622.1525921176407524069552083+7635 60631.0930903352934852157860767+7636 60640.033719520139123448902766+7637 60648.9744796550275075725200146+7638 60657.9153707228129690930115914+7639 60666.8563927063543287930665368+7640 60675.7975455885148949687689424+7641 60684.7388293521624616676006653+7642 60693.6802439801693069273663725+7643 60702.6217894554121910160403135+7644 60711.5634657607723546725342159+7645 60720.5052728791355173483857038+7646 60729.447210793391875450366635+7647 60738.3892794864361005840107573+7648 60747.3314789411673377980600815+7649 60756.2738091404892038298293707+7650 60765.2162700673097853514881466+7651 60774.1588617045416372172596123+7652 60783.1015840351017807115358927+7653 60792.0444370419117017979089941+7654 60800.9874207078973493691168843+7655 60809.9305350159891334979040953+7656 60818.8737799491219236887962525+7657 60827.8171554902350471307879317+7658 60836.7606616222722869509432492+7659 60845.7042983281818804689085882+7660 60854.6480655909165174523368663+7661 60863.5919633934333383732227494+7662 60872.5359917186939326651482166+7663 60881.4801505496643369814378837+7664 60890.4244398693150334542234901+7665 60899.3688596606209479544169562+7666 60908.3134099065614483525914207+7667 60917.2580905901203427807696623+7668 60926.2029016942858778951193168+7669 60935.1478432020507371395542973+7670 60944.0929150964120390102418266+7671 60953.0381173603713353210144917+7672 60961.9834499769346094696867309+7673 60970.9289129291122747052751632+7674 60979.8745061999191723961221717+7675 60988.820229772374570298922153+7676 60997.7660836295021608286498429+7677 61006.7120677543300593293901333+7678 61015.6581821298908023460687905+7679 61024.6044267392213458970834906+7680 61033.5508015653630637478345843+7681 61042.4973065913617456851550059+7682 61051.4439418002675957926387416+7683 61060.3907071751352307268672716+7684 61069.337602699023677994533402+7685 61078.2846283549963742304619025+7686 61087.2317841261211634765263669+7687 61096.1790699954702954614617128+7688 61105.1264859461204238815717378+7689 61114.0740319611526046823311515+7690 61123.0217080236522943408814998+7691 61131.9695141167093481494204018+7692 61140.9174502234180184994835178+7693 61149.8655163268769531671186685+7694 61158.8137124101891935989515255+7695 61167.7620384564621731991422932+7696 61176.7104944488077156172328048+7697 61185.6590803703420330368834517+7698 61194.6077962041857244654993703+7699 61203.5566419334637740247453071+7700 61212.5056175413055492419485863+7701 61221.4547230108447993423896025+7702 61230.4039583252196535424792619+7703 61239.353323467572619343822798+7704 61248.3028184210505808281693836+7705 61257.2524431688047969532469678+7706 61266.20219769399089984948176+7707 61275.1520819797688931176017899+7708 61284.1020960093031501271239682+7709 61293.0522397657624123157240754+7710 61302.0025132323197874894891064+7711 61310.9529163921527481240513984+7712 61319.9034492284431296666039703+7713 61328.8541117243771288387965027+7714 61337.804903863145301940511387+7715 61346.7558256279425631545192742+7716 61355.7068770019681828520135522+7717 61364.6580579684257858990231832+7718 61373.6093685105233499637033315+7719 61382.5608086114732038245032133+7720 61391.5123782544920256792106+7721 61400.4640774228008414548724081+7722 61409.415906099625023118590807+7723 61418.3678642681942869891942792+7724 61427.319951911742692049783066+7725 61436.2721690135086382611484322+7726 61445.224515556734864876065185+7727 61454.1769915246684487544568816+7728 61463.1295969005608026794331609+7729 61472.0823316676676736741986353+7730 61481.0351958092491413198327783+7731 61489.9881893085696160739402452+7732 61498.9413121488978375901710634+7733 61507.8945643135068730386101301+7734 61516.8479457856741154270354555+7735 61525.8014565486812819230445896+7736 61534.7550965858144121770486717+7737 61543.7088658803638666461335414+7738 61552.6627644156243249187873515+7739 61561.6167921748947840404941225+7740 61570.5709491414785568401926791+7741 61579.5252352986832702576004101+7742 61588.4796506298208636714012932+7743 61597.434195118207587228297626+7744 61606.3888687471640001729249059+7745 61615.3436715000149691786293017+7746 61624.2986033600896666791071601+7747 61633.25366431072156920090599+7748 61642.20885433524845569678637+7749 61651.1641734170124058799442218+7750 61660.1196215393597985590928962+7751 61669.0751986856413099744045156+7752 61678.0309048392119121343100193+7753 61686.9867399834308711531573579+7754 61695.9427041016617455897272836+7755 61704.8987971772723847866061824+7756 61713.855019193634927210415397+7757 61722.811370134125798792896487+7758 61731.7678499821257112728518764+7759 61740.724458721019660538940335+7760 61749.6811963341969249733267444+7761 61758.6380628050510637961855984+7762 61767.595058116979915411057686+7763 61776.5521822533855957510594097+7764 61785.5094351976744966259441884+7765 61794.4668169332572840700153967+7766 61803.4243274435488966908902925+7767 61812.3819667119685440191143849+7768 61821.3397347219397048586256946+7769 61830.2976314568901256380683606+7770 61839.2556569002518187629550457+7771 61848.2138110354610609686775953+7772 61857.1720938459583916743654036+7773 61866.1305053151886113375909413+7774 61875.0890454266007798099219012+7775 61884.0477141636482146933194154+7776 61893.0065115097884896973818022+7777 61901.9654374484834329974332968+7778 61910.9244919631991255934572243+7779 61919.8836750374058996698730717+7780 61928.8429866545783369561569155+7781 61937.802426798195267088304665+7782 61946.7619954517397659711375779+7783 61955.7216925986991541414495075+7784 61964.6815182225649951319953415+7785 61973.6414723068330938363200917+7786 61982.601554835003494874428094+7787 61991.5617657905804809592917806+7788 62000.5221051570725712641994841+7789 62009.4825729179925197909417354+7790 62018.4431690568573137388355176+7791 62027.4038935571881718745859375+7792 62036.3647464025105429029847768+7793 62045.3257275763541038384453878+7794 62054.2868370622527583773733949+7795 62063.2480748437446352713726678+7796 62072.2094409043720867012860282+7797 62081.1709352276816866520701577+7798 62090.1325577972242292885041695+7799 62099.0943085965547273317313102+7800 62108.0561876092324104366332579+7801 62117.0181948188207235700364831+7802 62125.9803302088873253897501381+7803 62134.942593763004086624434943+7804 62143.9049854647470884543025357+7805 62152.867505297696620892644753+7806 62161.8301532454371811681923128+7807 62170.7929292915574721083023647+7808 62179.7558334196504005229743787+7809 62188.7188656133130755896938415+7810 62197.6820258561468072391032311+7811 62206.6453141317571045414997387+7812 62215.6087304237536740941592105+7813 62224.5722747157504184094857785+7814 62233.5359469913654343039866538+7815 62242.4997472342210112880715541+7816 62251.4636754279436299566762362+7817 62260.4277315561639603807096085+7818 62269.3919156025168604993238961+7819 62278.3562275506413745130073306+7820 62287.3206673841807312774988417+7821 62296.2852350867823426985242213+7822 62305.2499306420978021273532388+7823 62314.2147540337828827571771799+7824 62323.179705245497536020306286+7825 62332.1447842609058899861865699+7826 62341.1099910636762477602354848+7827 62350.0753256374810858834959217+7828 62359.0407879659970527331080157+7829 62368.0063780329049669235982351+7830 62376.9720958218898157089852343+7831 62385.9379413166407533857019476+7832 62394.9039145008510996963334031+7833 62403.8700153582183382341697357+7834 62412.8362438724441148485738794+7835 62421.8026000272342360511634187+7836 62430.7690838062986674228060793+7837 62439.7356951933515320214283391+7838 62448.7024341721111087906366415+7839 62457.6693007262998309691506914+7840 62466.6362948396442845010483169+7841 62475.6034164958752064468213784+7842 62484.5706656787274833952422095+7843 62493.5380423719401498760400702+7844 62502.5055465592563867733870993+7845 62511.473178224423519740193247+7846 62520.4409373511930176132096749+7847 62529.4088239233204908289401054+7848 62538.3768379245656898403596087+7849 62547.3449793386925035344403102+7850 62556.3132481494689576504835062+7851 62565.2816443406672131992576739+7852 62574.2501678960635648829418619+7853 62583.2188187994384395158739486+7854 62592.1875970345763944461032569+7855 62601.1565025852661159777470119+7856 62610.1255354353004177941501307+7857 62619.0946955684762393818478333+7858 62628.0639829685946444553305626+7859 62637.0333976194608193826107047+7860 62646.0029395048840716115905976+7861 62654.9726086086778280972313198+7862 62663.9424049146596337295217497+7863 62672.9123284066511497622473857+7864 62681.8823790684781522425584193+7865 62690.8525568839705304413365533+7866 62699.8228618369622852843600561+7867 62708.793293911291527784266547+7868 62717.7638530908004774733130023+7869 62726.7345393593354608369324791+7870 62735.705352700746909748087048+7871 62744.6762930988893599024164298+7872 62753.6473605376214492541818312+7873 62762.6185550008059164530044735+7874 62771.5898764723095992813983107+7875 62780.5613249360034330930964319+7876 62789.5329003757624492521706442+7877 62798.5046027754657735729437329+7878 62807.4764321189966247606938959+7879 62816.4483883902423128531508495+7880 62825.4204715730942376627831026+7881 62834.392681651447887219875898+7882 62843.3650186092028362163993199+7883 62852.3374824302627444506660641+7884 62861.3100730985353552727783729+7885 62870.2827905979324940308636319+7886 62879.25563491237006651809813+7887 62888.2286060257680574205184824+7888 62897.2017039220505287656202175+7889 62906.1749285851456183717430286+7890 62915.1482799989855382982421915+7891 62924.1217581475065732964456512+7892 62933.0953630146490792613962777+7893 62942.0690945843574816843787958+7894 62951.0429528405802741062308901+7895 62960.0169377672700165714379894+7896 62968.9910493483833340830112344+7897 62977.9652875678809150581481318+7898 62986.9396524097275097846754004+7899 62995.9141438578919288782735133+7900 63004.8887618963470417404824417+7901 63013.8635065090697750174881063+7902 63022.838377680041111059689041+7903 63031.813375393246086382042777+7904 63040.7884996326737901251914525+7905 63049.763750382317362517366156+7906 63058.7391276261739933370695105+7907 63067.7146313482449203765360061+7908 63076.6902615325354279059695894+7909 63085.666018163054845138558019+7910 63094.6419012238165446962634947+7911 63103.6179106988379410763890707+7912 63112.5940465721404891189203624+7913 63121.5703088277496824746420568+7914 63130.5466974496950520740287368+7915 63139.5232124220101645969095302+7916 63148.499853728732620942906095+7917 63157.4766213539040547026434525+7918 63166.4535152815701306297331791+7919 63175.430535495780543113528471+7920 63184.4076819805890146526505929+7921 63193.384954720053294329286224+7922 63202.3623536982351562842552156+7923 63211.3398788992003981928482732+7924 63220.3175303070188397414340773+7925 63229.2953079057643211048353582+7926 63238.2732116795147014244734382+7927 63247.2512416123518572872807588+7928 63256.2293976883616812053809054+7929 63265.2076798916340800965356487+7930 63274.1860882062629737653585167+7931 63283.1646226163462933852944153+7932 63292.1432831059859799813648144+7933 63301.1220696592879829136780163+7934 63310.1009822603622583617040252+7935 63319.0800208933227678093135354+7936 63328.0591855422874765305805567+7937 63337.038476191378352076348196+7938 63346.0178928247213627615571145+7939 63354.9974354264464761533361804+7940 63363.977103980687657559854836+7941 63372.956898471582868519936701+7942 63381.9368188832740652934339316+7943 63390.9168651999071973523618571+7944 63399.8970374056322058727934156+7945 63408.8773354846030222275129092+7946 63417.8577594209775664794286035+7947 63426.8383091989177458757436909+7948 63435.8189848025894533428851429+7949 63444.7997862161625659821899737+7950 63453.7807134238109435663484389+7951 63462.7617664097124270366036925+7952 63471.7429451580488370007074283+7953 63480.7242496530059722316310284+7954 63489.7056798787736081670317455+7955 63498.687235819545495409473443+7956 63507.6689174595193582274014198+7957 63516.6507247828968930568708451+7958 63525.6326577738837670040283305+7959 63534.614716416689616348346165+7960 63543.596900695528045046608742+7961 63552.5792105946166232376507034+7962 63561.5616460981768857478463308+7963 63570.5442071904343305973497113+7964 63579.5268938556184175070852062+7965 63588.5097060779625664064877516+7966 63597.4926438417041559419925213+7967 63606.4757071310845219862734799+7968 63615.458895930348956148230358+7969 63624.442210223746704283723578+7970 63633.4256499955309650070566633+7971 63642.4092152299588882032056598+7972 63651.3929059112915735407951032+7973 63660.3767220237940689858200626+7974 63669.3606635517353693161137924+7975 63678.3447304793884146365605267+7976 63687.3289227910300888950529466+7977 63696.3132404709412183991938556+7978 63705.297683503406570333741596+7979 63714.2822518727148512787987398+7980 63723.2669455631587057287435888+7981 63732.2517645590347146119040185+7982 63741.2367088446433938109732006+7983 63750.2217784042891926841667397+7984 63759.2069732222804925871207593+7985 63768.1922932829296053955304738+7986 63777.1777385705527720285287818+7987 63786.1633090694701609728044197+7988 63795.1490047640058668074592089+7989 63804.1348256384879087296039379+7990 63813.1207716772482290806924146+7991 63822.1068428646226918735932277+7992 63831.0930391849510813203987555+7993 63840.0793606225771003609709608+7994 63849.0658071618483691922235119+7995 63858.0523787871164237981397673+7996 63867.0390754827367144805261661+7997 63876.0258972330686043905005626+7998 63885.0128440224753680607150468+7999 63893.9999158353241899383127905+8000 63902.9871126559861629186184612+8001 63911.9744344688362868795617452+8002 63920.9618812582534672168335211+8003 63929.9494530086205133797742265+8004 63938.9371497043241374079939609+8005 63947.9249713297549524687238662+8006 63956.9129178693074713948983304+8007 63965.9009893073801052239675555+8008 63974.8891856283751617374400356+8009 63983.8775068166988440011544887+8010 63992.8659528567612489062807861+8011 64001.8545237329763657110494266+8012 64010.8432194297620745832090975+8013 64019.8320399315401451432118714+8014 64028.8209852227362350081255826+8015 64037.8100552877798883362729303+8016 64046.7992501111045343725968548+8017 64055.7885696771474859947517345+8018 64064.7780139703499382599199503+8019 64073.7675829751569669523533654+8020 64082.757276676017527131639268+8021 64091.7470950573844516816903271+8022 64100.7370381037144498604581072+8023 64109.7271057994681058503696932+8024 64118.7172981291098773094869746+8025 64127.7076150771080939233881373+8026 64136.6980566279349559577709151+8027 64145.6886227660665328117771495+8028 64154.6793134759827615720382094+8029 64163.6701287421674455674408221+8030 64172.661068549108252924612866+8031 64181.6521328812967151241286773+8032 64190.6433217232282255574334232+8033 64199.6346350594020380844860928+8034 64208.6260728743212655921206599+8035 64217.6176351524928785531249696+8036 64226.6093218784277035860369027+8037 64235.6011330366404220156573713+8038 64244.5930686116495684342797+8039 64253.5851285879775292636349471+8040 64262.57731295015054131755272+8041 64271.5696216826986903653370407+8042 64280.562054770155909695856816+8043 64289.5546121970599786823504685+8044 64298.5472939479525213479442849+8045 64307.5401000073790049318840371+8046 64316.5330303598887384564794332+8047 64325.5260849900348712947609561+8048 64334.5192638823743917388486457+8049 64343.5125670214681255690323841+8050 64352.5059943918807346235632405+8051 64361.4995459781807153691554343+8052 64370.4932217649403974721984765+8053 64379.4870217367359423706790461+8054 64388.4809458781473418468121634+8055 64397.4749941737584166003812176+8056 64406.4691666081568148227864106+8057 64415.4634631659340107718011756+8058 64424.4578838316853033470361331+8059 64433.4524285900098146661101436+8060 64442.4470974255104886415280189+8061 64451.4418903227940895582644545+8062 64460.4368072664712006520537436+8063 64469.4318482411562226883848359+8064 64478.427013231467372542201304+8065 64487.4223022220266817783057796+8066 64496.4177151974599952324684239+8067 64505.4132521423969695932389938+8068 64514.408913041471071984462071+8069 64523.4046978793195785484950145+8070 64532.4006066405835730301282043+8071 64541.3966393099079453612071397+8072 64550.3927958719413902459559569+8073 64559.3890763113364057470019329+8074 64568.3854806127492918721005406+8075 64577.3820087608401491615606213+8076 64586.3786607402728772763692419+8077 64595.3754365357151735870158026+8078 64604.3723361318385317630149628+8079 64613.3693595133182403631279528+8080 64622.3665066648333814262818389+8081 64631.36377757106682906318631+8082 64640.3611722167052480486475544+8083 64649.3586905864390924145787949+8084 64658.3563326649626040437070523+8085 64667.3540984369738112639757059+8086 64676.3519878871745274436424211+8087 64685.3500010002703495870720135+8088 64694.3481377609706569312238217+8089 64703.3463981539886095428331564+8090 64712.3447821640411469162864004+8091 64721.3432897758489865721893272+8092 64730.3419209741366226566282134+8093 64739.3406757436323245411233138+8094 64748.3395540690681354232742731+8095 64757.3385559351798709280970469+8096 64766.3376813267071177100519039+8097 64775.3369302283932320557620833+8098 64784.3363026249853384874226808+8099 64793.3357985012343283668993365+8100 64802.3354178418948585005163003+8101 64811.3351606317253497445334475+8102 64820.3350268554879856113118201+8103 64829.3350164979487108761672698+8104 64838.3351295438772301849117771+8105 64847.3353659780470066620820219+8106 64856.335725785235260519854783+8107 64865.3362089502229676676487422+8108 64874.3368154577948583224122687+8109 64883.3375452927394156195967629+8110 64892.338398439848874224815135+8111 64901.339374883919218946184997+8112 64910.3404746097501833473561456+8113 64919.3416976021452483612219149+8114 64928.3430438459116409043139765+8115 64937.3445133258603324918801667+8116 64946.3461060268060378536449195+8117 64955.3478219335672135502518855+8118 64964.349661030966056590388315+8119 64973.351623303828503048590788+8120 64982.3537087369842266837318685+8121 64991.3559173152666375581872664+8122 65000.3582490235128806576830869+8123 65009.3607038465638345118227479+8124 65018.3632817692641098152931493+8125 65027.3659827764620480497496741+8126 65036.3688068530097201063796044+8127 65045.3717539837629249091435354+8128 65054.3748241535811880386943689+8129 65063.3780173473277603569734714+8130 65072.3813335498696166324835781+8131 65081.3847727460774541662380292+8132 65090.3883349208256914183859197+8133 65099.39202005899246663551275+8134 65108.3958281454596364786161598+8135 65117.3997591651127746517563319+8136 65126.4038131028411705313806503+8137 65135.4079899435378277963221981+8138 65144.412289672099463058471683+8139 65153.4167122734265044941223737+8140 65162.4212577324230904759876365+8141 65171.4259260339970682058906576+8142 65180.4307171630599923481259381+8143 65189.4356311045271236634921506+8144 65198.4406678433174276439959429+8145 65207.4458273643535731482262798+8146 65216.4511096525619310373989083+8147 65225.4565146928725728120705377+8148 65234.4620424702192692495223215+8149 65243.4676929695394890418122319+8150 65252.473466175774397434495915+8151 65261.4793620738688548660156187+8152 65270.485380648771415607756781+8153 65279.4915218854343264047718716+8154 65288.4977857688135251171710758+8155 65297.5041722838686393621794127+8156 65306.5106814155629851568598796+8157 65315.5173131488635655615022128+8158 65324.5240674687410693236768579+8159 65333.5309443601698695229537426+8160 65342.5379438081280222162854424+8161 65351.5450657975972650840543346+8162 65360.5523103135630160767833322+8163 65369.5596773410143720625097916+8164 65378.5671668649441074748221885+8165 65387.5747788703486729615591552+8166 65396.5825133422281940341704744+8167 65405.5903702655864697177396237+8168 65414.5983496254309712016674668+8169 65423.606451406772840491016685+8170 65432.6146755946268890585165464+8171 65441.6230221740115964972276075+8172 65450.6314911299491091738659438+8173 65459.6400824474652388827865062+8174 65468.6487961115894615006251994+8175 65477.6576321073549156415992798+8176 65486.6665904197984013134656698+8177 65495.6756710339603785741367876+8178 65504.6848739348849661889534876+8179 65513.6941991076199402886147136+8180 65522.7036465372167330277634594+8181 65531.7132162087304312442286386+8182 65540.7229081072197751189224614+8183 65549.7327222177471568363929176+8184 65558.7426585253786192460309671+8185 65567.7527170151838545239320356+8186 65576.7628976722362028354114181+8187 65585.7732004816126509981731891+8188 65594.7836254283938311461322217+8189 65603.7941724976640193938889159+8190 65612.804841674511134501856238+8191 65621.8156329440267365420386728+8192 65630.8265462913060255644626903+8193 65639.837581701447840264258331+8194 65648.848739159554656649391509+8195 65657.8600186507325867090466402+8196 65666.8714201600913770826591948+8197 65675.8829436727444077295977808+8198 65684.8945891738086905994953598+8199 65693.9063566484048683032292016+8200 65702.91824608165721278454918+8201 65711.9302574586936239923540153+8202 65720.9423907646456285536150689+8203 65729.9546459846483784469472944+8204 65738.9670231038406496768269516+8205 65747.9795221073648409484556888+8206 65756.9921429803669723432705991+8207 65766.0048857079966839950998583+8208 65775.0177502754072347669635499+8209 65784.0307366677555009285192852+8210 65793.0438448702019748341522249+8211 65802.0570748679107636017091103+8212 65811.0704266460495877918759122+8213 65820.0839001897897800881987047+8214 65829.0974954843062839777473734+8215 65838.1112125147776524324217662+8216 65847.1250512663860465908998955+8217 65856.1390117243172344412278018+8218 65865.1530938737605895040506872+8219 65874.1672976999090895164849298+8220 65883.1816231879593151166305887+8221 65892.1960703231114485287240096+8222 65901.2106390905692722489301419+8223 65910.2253294755401677317741796+8224 65919.2401414632351140772121345+8225 65928.2550750388686867183399566+8226 65937.2701301876590561097408105+8227 65946.2853068948279864164701225+8228 65955.3006051456008342036780086+8229 65964.3160249252065471268686975+8230 65973.3315662188776626227965619+8231 65982.3472290118503066009983696+8232 65991.3630132893641921359613694+8233 66000.3789190366626181599268258+8234 66009.3949462389924681563286152+8235 66018.4110948816042088538664993+8236 66027.4273649497518889212136902+8237 66036.4437564286931376623583208+8238 66045.4602693036891637125784382+8239 66054.4769035600047537350501333+8240 66063.4936591829082711180884235+8241 66072.5105361576716546730205041+8242 66081.5275344695704173326909858+8243 66090.5446541038836448505987335+8244 66099.5618950458939945006649238+8245 66108.5792572808876937776319394+8246 66117.596740794154539098092716+8247 66126.6143455709878945021501613+8248 66135.6320715966846903557062628+8249 66144.6499188565454220533805031+8250 66153.6678873358741487220572021+8251 66162.6859770199784919250614029+8252 66171.7041878941696343669629236+8253 66180.7225199437623185990081908+8254 66189.7409731540748457251794779+8255 66198.7595475104290741088811655+8256 66207.778242998150418080252646+8257 66216.7970596025678466441074917+8258 66225.815997309013882188498508+8259 66234.835056102824599193908292+8260 66243.8542359693396229430649187+8261 66252.8735368939021282313823756+8262 66261.8929588618588380780253686+8263 66270.9125018585600224375981194+8264 66279.9321658693594969124567802+8265 66288.9519508796146214656450842+8266 66297.971856874686299134452859+8267 66306.9918838399389747445970226+8268 66316.0120317607406336250246886+8269 66325.0323006224628003233380022+8270 66334.0526904104805373218403315+8271 66343.07320111017244375420344+8272 66352.0938327069206541227552627+8273 66361.1145851861108370163879123+8274 66370.1354585331321938290855397+8275 66379.1564527333774574790716752+8276 66388.1775677722428911285756751+8277 66397.1988036351282869042179002+8278 66406.2201603074369646180132529+8279 66415.2416377745757704889926983+8280 66424.2632360219550758654423973+8281 66433.2849550349887759477600777+8282 66442.3067947990942885119282715+8283 66451.3287552996925526336040455+8284 66460.3508365222080274128248536+8285 66469.373038452068690699330138+8286 66478.3953610747060378184983085+8287 66487.4178043755550802978987288+8288 66496.4403683400543445944583378+8289 66505.4630529536458708222425361+8290 66514.4858582017752114808499663+8291 66523.5087840698914301844208178+8292 66532.5318305434471003912582853+8293 66541.554997607898304134062812+8294 66550.5782852487046307507787472+8295 66559.60169345132917561605305+8296 66568.6252222012385388733056701+8297 66577.648871483902824167411236+8298 66586.6726412847956373779916838+8299 66595.6965315893940853533194574+8300 66604.7205423831787746448309125+8301 66613.7446736516338102422495573+8302 66622.768925380246794309318762+8303 66631.7932975545088249201435697+8304 66640.8177901599144947961412438+8305 66649.842403181961890043600183+8306 66658.8671366061525888918468392+8307 66667.8919904179916604320202716+8308 66676.9169646029876633564539722+8309 66685.9420591466526446986645955+8310 66694.9672740345021385739472298+8311 66703.9926092520551649205768419+8312 66713.0180647848342282416155342+8313 66722.0436406183653163473252464+8314 66731.0693367381778990981855402+8315 66740.0951531298049271485161016+8316 66749.1210897787828306907035979+8317 66758.1471466706515182000325259+8318 66767.1733237909543751801196881+8319 66776.1996211252382629089519344+8320 66785.226038659053517185526806+8321 66794.2525763779539470770957204+8322 66803.279234267496833667009334+8323 66812.3060123132429288031647222+8324 66821.3329105007564538470540134+8325 66830.3599288156050984234141182+8326 66839.3870672433600191704771902+8327 66848.4143257695958384908214596+8328 66857.441704379890643302822078+8329 66866.4692030598259837927016153+8330 66875.4968217949868721671798468+8331 66884.5245605709617814067224736+8332 66893.5524193733426440193884137+8333 66902.5803981877248507952753077+8334 66911.6084969997072495615628775+8335 66920.6367157948921439381537813+8336 66929.6650545588852920939116055+8337 66938.6935132772959055034956355+8338 66947.7220919357366477047920478+8339 66956.7507905198236330569411653+8340 66965.779609015176425498960419+8341 66974.8085474074180373089626586+8342 66983.8376056821749278639694548+8343 66992.8667838250770024003190381+8344 67001.8960818217576107746685155+8345 67010.9254996578535462255900113+8346 67019.955037319005044135760375+8347 67028.9846947908557807947440999+8348 67038.0144720590528721623690997+8349 67047.0443691092468726326949849+8350 67056.0743859270917737985734865+8351 67065.1045224982450032168006711+8352 67074.1347788083674231738605942+8353 67083.1651548431233294522600366+8354 67092.1956505881804500974539703+8355 67101.2262660292099441853614018+8356 67110.2570011518864005904712369+8357 67119.2878559418878367545378161+8358 67128.3188303848956974558657675+8359 67137.3499244665948535791838235+8360 67146.3811381726736008861072501+8361 67155.4124714888236587861885374+8362 67164.4439244007401691085559967+8363 67173.4754968941216948741399166+8364 67182.5071889546702190684859241+8365 67191.5390005680911434151551998+8366 67200.5709317200932871497111981+8367 67209.6029823963888857942925206+8368 67218.6351525826935899327715923+8369 67227.6674422647264639864987914+8370 67236.6998514282099849906316829+8371 67245.7323800588700413710490053+8372 67254.7650281424359317218490625+8373 67263.797795664640363583432172+8374 67272.8306826112194522211668188+8375 67281.8636889679127194046391688+8376 67290.8968147204630921874855919+8377 67299.9300598546169016878078476+8378 67308.9634243561238818691705846+8379 67317.996908210737168322180808+8380 67327.0305114042132970466489655+8381 67336.0642339223122032343313068+8382 67345.0980757507972200522531685+8383 67354.132036875435077426612839+8384 67363.1661172819959008272656558+8385 67372.2003169562532100527879903+8386 67381.2346358839839180161207743+8387 67390.2690740509683295307922218+8388 67399.3036314429901400977194014+8389 67408.3383080458364346925883147+8390 67417.3731038452976865538121349+8391 67426.4080188271677559710672623+8392 67435.443052977243889074406851+8393 67444.4782062813267166239514638+8394 67453.5134787252202528001565115+8395 67462.5488702947318939946561325+8396 67471.5843809756724176016831695+8397 67480.6200107538559808100649008+8398 67489.6557596151001193957941824+8399 67498.6916275452257465151756597+8400 67507.7276145300571514985467048+8401 67516.7637205554219986445727392+8402 67525.7999456071513260151165982+8403 67534.8362896710795442306815965+8404 67543.8727527330444352664279543+8405 67552.9093347788871512487622404+8406 67561.9460357944522132524994943+8407 67570.9828557655875100985976847+8408 67580.0197946781442971524641652+8409 67589.0568525179771951228337855+8410 67598.0940292709441888612183211+8411 67607.1313249229066261619268777+8412 67616.1687394597292165626569356+8413 67625.2062728672800301456556907+8414 67634.2439251314304963394513561+8415 67643.2816962380554027211540841+8416 67652.319586173032893819326171+8417 67661.3575949222444699174212057+8418 67670.395722471574985857791825+8419 67679.4339688069126498462657372+8420 67688.472333914149022257289677+8421 67697.510817779179014439640954+8422 67706.5494203879008875227062586+8423 67715.5881417262162512233273872+8424 67724.626981780030062653213552+8425 67733.6659405352506251269199372+8426 67742.7050179777895869703921675+8427 67751.744214093561940330076351+8428 67760.7835288684860199825943632+8429 67769.8229622884835021449840349+8430 67778.86251433947940328550391+8431 67787.9021850074020789350022375+8432 67796.941974278183222498849865+8433 67805.981882137757864069436696+8434 67815.021908572064369239231381+8435 67824.0620535670444379144039044+8436 67833.102317108643103129010737+8437 67842.1426991828087298597422184+8438 67851.1831997754930138412318372+8439 67860.2238188726509803819270761+8440 67869.2645564602409831805214881+8441 67878.3054125242247031429476729+8442 67887.3463870505671471999308202+8443 67896.3874800252366471251024884+8444 67905.4286914342048583536742866+8445 67914.4700212634467588016711281+8446 67923.5114694989406476857237259+8447 67932.5530361266681443434199963+8448 67941.5947211326141870542150421+8449 67950.636524502767031860899384+8450 67959.6784462231182513916251097+8451 67968.7204862796627336824896107+8452 67977.7626446583986810006765773+8453 67986.8049213453276086681539217+8454 67995.8473163264543438859282995+8455 68004.8898295877870245588559018+8456 68013.9324611153370981210091872+8457 68022.9752108951193203615992263+8458 68032.0180789131517542514533293+8459 68041.0610651554557687700476297+8460 68050.1041696080560377330942945+8461 68059.147392256980538620683034+8462 68068.1907330882605514059765844+8463 68077.2341920879306573844598341+8464 68086.2777692420287380037422683+8465 68095.3214645365959736939134036+8466 68104.3652779576768426984508878+8467 68113.4092094913191199056809364+8468 68122.4532591235738756807907816+8469 68131.497426840495474698392806+8470 68140.5417126281415747756400373+8471 68149.5861164725731257058926772+8472 68158.6306383598543680929353389+8473 68167.6752782760528321857446701+8474 68176.7200362072393367138070349+8475 68185.7649121394879877229859303+8476 68194.8099060588761774119388144+8477 68203.8550179514845829690830202+8478 68212.9002478033971654101104333+8479 68221.9455956007011684160506073+8480 68230.9910613294871171718819964+8481 68240.0366449758488172056909795+8482 68249.0823465258833532283783548+8483 68258.1281659656910879739129806+8484 68267.174103281375661040132241+8485 68276.2201584590439877300890143+8486 68285.2663314848062578939448201+8487 68294.3126223447759347714088268+8488 68303.3590310250697538347223942+8489 68312.4055575118077216321888327+8490 68321.4522017911131146322480566+8491 68330.4989638491124780680958105+8492 68339.5458436719356247828471493+8493 68348.5928412457156340752438503+8494 68357.6399565565888505459054369+8495 68366.6871895906948829441234956+8496 68375.7345403341766030151989649+8497 68384.7820087731801443483220772+8498 68393.8295948938549012249946343+8499 68402.8772986823535274679942977+8500 68411.9251201248319352908805746+8501 68420.9730592074492941480421806+8502 68430.0211159163680295852854619+8503 68439.069290237753822090963557+8504 68448.1175821577756059476459821+8505 68457.1659916626055680843283204+8506 68466.2145187384191469291816991+8507 68475.2631633713950312628417368+8508 68484.3119255477151590722366434+8509 68493.3608052535647164049541562+8510 68502.4098024751321362241469961+8511 68511.4589171986090972639765266+8512 68520.5081494101905228855942995+8513 68529.5574990960745799336611724+8514 68538.6069662424626775934036811+8515 68547.6565508355594662482073519+8516 68556.7062528615728363377466386+8517 68565.7560723067139172166511693+8518 68574.806009157197076013707987+8519 68583.8560633992399164915994718+8520 68592.9062350190632779071766272+8521 68601.9565240028912338722674195+8522 68611.0069303369510912150198534+8523 68620.0574540074733888417794725+8524 68629.1080950006918965995009702+8525 68638.1588533028436141386935967+8526 68647.2097289001687697769000516+8527 68656.2607217789108193627085462+8528 68665.3118319253164451402977255+8529 68674.363059325635554614514136+8530 68683.4144039661212794164819273+8531 68692.4658658330299741697444766+8532 68701.5174449126212153569376221+8533 68710.5691411911578001869941968+8534 68719.6209546549057454628795488+8535 68728.6728852901342864498577381+8536 68737.7249330831158757442880997+8537 68746.7770980201261821429518603+8538 68755.829380087444089512908501+8539 68764.8817792713516956618815531+8540 68773.9342955581343112091735185+8541 68782.9869289340804584571096052+8542 68792.0396793854818702630099671+8543 68801.0925468986334889116901394+8544 68810.1455314598334649884893608+8545 68819.1986330553831562528264733+8546 68828.2518516715871265122830908+8547 68837.3051872947531444972137281+8548 68846.3586399111921827358825818+8549 68855.4122095072184164301266564+8550 68864.465896069149222331544925+8551 68873.5196995833051776182132208+8552 68882.5736200360100587719245477+8553 68891.6276574135908404559545069+8554 68900.6818117023776943933515299+8555 68909.7360828887039882457516116+8556 68918.7904709589062844927172383+8557 68927.8449758993243393116002021+8558 68936.899597696301101457927998+8559 68945.9543363361827111463134959+8560 68955.0091918053184989318875825+8561 68964.0641640900609845922544683+8562 68973.1192531767658760099693533+8563 68982.1744590517920680555381469+8564 68991.229781701501641470938938+8565 69000.2852211122598617536649087+8566 69009.3407772704351780412883898+8567 69018.3964501623992219965457511+8568 69027.4522397745268066929428253+8569 69036.5081460931959255008805597+8570 69045.564169104787750974300593+8571 69054.6203087956866337378504543+8572 69063.6765651522801013745680797+8573 69072.7329381609588573140853457+8574 69081.7894278081167797213503146+8575 69090.8460340801509203858678915+8576 69099.9027569634615036114585884+8577 69108.9595964444519251065350952+8578 69118.0165525095287508748963551+8579 69127.0736251451017161070388425+8580 69136.1308143375837240719847423+8581 69145.1881200733908450096267294+8582 69154.2455423389423150235890468+8583 69163.3030811206605349746045833+8584 69172.3607364049710693744076474+8585 69181.4185081783026452801421396+8586 69190.4763964270871511892848218+8587 69199.5344011377596359350833837+8588 69208.5925222967583075825090068+8589 69217.650759890524532324723127+8590 69226.7091139055028333800580949+8591 69235.7675843281408898895114366+8592 69244.8261711448895358147534148+8593 69253.8848743422027588366475918+8594 69262.9436939065376992542840966+8595 69272.0026298243546488845252963+8596 69281.0616820821170499620635759+8597 69290.120850666291494039990926+8598 69299.1801355633477208908800438+8599 69308.2395367597586174083766467+8600 69317.2990542420002165093027042+8601 69326.3586879965516960362702892+8602 69335.4184380098953776608057524+8603 69344.4783042685167257869839233+8604 69353.5382867589043464555720416+8605 69362.5983854675499862486831223+8606 69371.6586003809485311949384587+8607 69380.7189314855980056751389677+8608 69389.7793787679995713284450815+8609 69398.8399422146575259590648907+8610 69407.9006218120793024434502435+8611 69416.9614175467754676380005055+8612 69426.0223294052597212872736863+8613 69435.0833573740488949327046376+8614 69444.144501439662950821830029+8615 69453.2057615886249808180198064+8616 69462.2671378074612053107148409+8617 69471.3286300827009721261704719+8618 69480.3902384008767554387056533+8619 69489.451962748524154682457408+8620 69498.5138031121818934636402984+8621 69507.5757594783918184733106189+8622 69516.6378318336988984006350194+8623 69525.700020164651222846663265+8624 69534.7623244578000012386048426+8625 69543.8247446996995617446091186+8626 69552.8872808769073501890487598+8627 69561.9499329759839289683061218+8628 69571.0127009834929759670623174+8629 69580.0755848860012834750886698+8630 69589.1385846700787571045402632+8631 69598.2017003222984147077512965+8632 69607.2649318292363852955319525+8633 69616.3282791774719079559664897+8634 69625.3917423535873307737122676+8635 69634.4553213441681097497994158+8636 69643.5190161358028077219308554+8637 69652.5828267150830932852823855+8638 69661.646753068603739713802542+8639 69670.7107951829626238820119435+8640 69679.7749530447607251873018313+8641 69688.8392266406021244727315172+8642 69697.9036159570940029503244496+8643 69706.9681209808466411248626093+8644 69716.032741698473417718178947+8645 69725.097478096590808593947574+8646 69734.1623301618183856829714189+8647 69743.2272978807788159089670625+8648 69752.2923812400978601148464624+8649 69761.3575802264043719894952815+8650 69770.4228948263302969950475327+8651 69779.4883250265106712946562523+8652 69788.5538708135836206807599168+8653 69797.6195321741903595038443153+8654 69806.6853090949751896016995918+8655 69815.7512015625854992291721717+8656 69824.8172095636717619884112858+8657 69833.8833330848875357596098068+8658 69842.9495721128894616322391125+8659 69852.0159266343372628367776904+8660 69861.0823966358937436769331985+8661 69870.1489821042247884623576984+8662 69879.2156830259993604418557742+8663 69888.2824993878895007370852541+8664 69897.3494311765703272767502506+8665 69906.4164783787200337312862334+8666 69915.4836409810198884480368537+8667 69924.5509189701542333869222335+8668 69933.6183123328104830565984386+8669 69942.685821055679123451107851+8670 69951.7534451254537109870201569+8671 69960.8211845288308714410636692+8672 69969.8890392525102988882466999+8673 69978.957009283194754640468701+8674 69988.0250946075900661856208913+8675 69997.0932952124051261271760868+8676 70006.1616110843518911242674529+8677 70015.2300422101453808322558963+8678 70024.2985885765036768437858161+8679 70033.3672501701479216303289311+8680 70042.4360269778023174842159039+8681 70051.5049189861941254611554789+8682 70060.5739261820536643232408555+8683 70069.6430485521143094824430143+8684 70078.7122860831124919445907167+8685 70087.7816387617876972538368976+8686 70096.8511065748824644376111705+8687 70105.9206895091423849520581667+8688 70114.9903875513161016279614275+8689 70124.0602006881553076171525704+8690 70133.130128906414745339405451+8691 70142.2001721928522054298150397+8692 70151.2703305342285256866607365+8693 70160.3406039173075900197538432+8694 70169.4109923288563273992689166+8695 70178.4814957556447108050587223+8696 70187.5521141844457561764525127+8697 70196.6228476020355213625373506+8698 70205.6936959951931050729222007+8699 70214.7646593507006458289845119+8700 70223.8357376553433209155990121+8701 70232.9069308959093453333484399+8702 70241.978239059189970751215935+8703 70251.0496621319794844597588112+8704 70260.1212001010752083247634349+8705 70269.1928529532774977413809337+8706 70278.2646206753897405887434577+8707 70287.3365032542183561850607188+8708 70296.4085006765727942431965314+8709 70305.4806129292655338267250785+8710 70314.5528399991120823064666294+8711 70323.625181872930974317502432+8712 70332.697638537543770716668506+8713 70341.770209979775057540528061+8714 70350.8428961864524449638222662+8715 70359.9156971444065662583990957+8716 70368.988612840471076752619977+8717 70378.0616432614826527912439664+8718 70387.1347883942809906957891795+8719 70396.2080482257088057253712018+8720 70405.2814227426118310380182061+8721 70414.3549119318388166524625039+8722 70423.428515780241528410408257+8723 70432.5022342746747469392750771+8724 70441.5760674019962666154172396+8725 70450.6500151490668945278182398+8726 70459.7240775027504494422604193+8727 70468.7982544499137607659693897+8728 70477.8725459774266675127329819+8729 70486.9469520721620172684944492+8730 70496.0214727209956651574196528+8731 70505.0961079108064728084379575+8732 70514.1708576284763073222565678+8733 70523.245721860890040238848031+8734 70532.3207005949355465054106387+8735 70541.3957938175037034448014552+8736 70550.4710015154883897244417012+8737 70559.5463236757864843256942245+8738 70568.6217602852978655137127855+8739 70577.6973113309254098077628894+8740 70586.7729767995749909520138932+8741 70595.8487566781554788868021207+8742 70604.924650953578738720364713+8743 70614.0006596127596297010439479+8744 70623.0767826426160041899617572+8745 70632.1530200300687066341641745+8746 70641.229371762041572540235444+8747 70650.305837825461427448381522+8748 70659.3824182072580859069827029+8749 70668.4591128943643504476151015+8750 70677.5359218737160105605407237+8751 70686.6128451322518416706658578+8752 70695.6898826569136041139675189+8753 70704.767034434646042114387679+8754 70713.8443004523968827611950157+8755 70722.921680697116834986813912+8756 70731.9991751557595885451204411+8757 70741.0767838152818129902050692+8758 70750.1545066626431566556018097+8759 70759.2323436848062456339835623+8760 70768.3102948687366827573233721+8761 70777.388360201403046577521341+8762 70786.4665396697768903474969271+8763 70795.544833260832741002746366+8764 70804.6232409615480981433649483+8765 70813.7017627589034330165338889+8766 70822.7803986398821874994715223+8767 70831.8591485914707730828485597+8768 70840.9380126006585698546671425+8769 70850.016990654437925484603429+8770 70859.096082739804154208813448+8771 70868.175288843755535815201958+8772 70877.2546089532933146291540446+8773 70886.3340430554216984997291961+8774 70895.4135911371478577863175904+8775 70904.4932531854819243457583322+8776 70913.5730291874369905199193759+8777 70922.6529191300291081237388719+8778 70931.732923000277287433727673+8779 70940.8130407852034961769327387+8780 70949.8932724718326585203611744+8781 70958.9736180471926540608646438+8782 70968.0540774983143168154838914+8783 70977.1346508122314342122531148+8784 70986.2153379759807460814639228+8785 70995.2961389766019436473886201+8786 71004.377053801137668520462555+8787 71013.4580824366335116899252706+8788 71022.5392248701380125169201971+8789 71031.620481088702657728052626+8790 71040.701851079381880409405703+8791 71049.7833348292330590010141816+8792 71058.864932325316516291795676+8793 71067.9466435546955184149391521+8794 71077.0284685044362738437503991+8795 71086.1104071616079323879542191+8796 71095.1924595132825841904530773+8797 71104.2746255465352587245419519+8798 71113.3569052484439237915791254+8799 71122.4392986060894845191126573+8800 71131.5218056065557823594622801+8801 71140.6044262369295940887564595+8802 71149.6871604843006308064243597+8803 71158.7700083357615369351424566+8804 71167.8529697784078892212355397+8805 71176.9360447993381957355318448+8806 71186.0192333856538948746720599+8807 71195.102535524459354362871947+8808 71204.1859512028618702541383205+8809 71213.2694804079716659349381279+8810 71222.3531231269018911273203722+8811 71231.4368793467686208924906218+8812 71240.5207490546908546348378494+8813 71249.6047322377905151064133444+8814 71258.6888288831924474118614407+8815 71267.7730389780244180138018059+8816 71276.8573625094171137386630338+8817 71285.9417994645041407829672854+8818 71295.0263498304220237200657214+8819 71304.111013594310204507324473+8820 71313.1957907433110414937608926+8821 71322.2806812645698084281298309+8822 71331.3656851452346934674596857+8823 71340.4508023724567981860379659+8824 71349.5360329333901365848461176+8825 71358.6213768151916341014433564+8826 71367.7068340050211266202992526+8827 71376.7924044900413594835748144+8828 71385.8780882574179865023518155+8829 71394.9638852943195689683101129+8830 71404.0497955879175746658527012+8831 71413.1358191253863768846782505+8832 71422.2219558939032534328008734+8833 71431.3082058806483856500168694+8834 71440.3945690728048574218181923+8835 71449.4810454575586541937523887+8836 71458.5676350220986619862287543+8837 71467.6543377536166664097704564+8838 71476.7411536393073516807123693+8839 71485.8280826663682996373443709+8840 71494.9151248219999887564998487+8841 71504.0022800934057931705891629+8842 71513.0895484677919816850778158+8843 71522.1769299323677167964090751+8844 71531.2644244743450537103708001+8845 71540.3520320809389393609062206+8846 71549.4397527393672114293684156+8847 71558.5275864368505973642182434+8848 71567.6155331606127134011654701+8849 71576.7035928978800635837528486+8850 71585.791765635882038784382895+8851 71594.8800513618509157257871149+8852 71603.9684500630218560029374281+8853 71613.0569617266329051053995424+8854 71622.1455863399249914401280268+8855 71631.2343238901419253547028353+8856 71640.3231743645303981610070307+8857 71649.4121377503399811593454611+8858 71658.501214034823124663004138+8859 71667.5904032052351570232500701+8860 71676.6797052488342836547713009+8861 71685.7691201528815860615569048+8862 71694.8586479046410208632166912+8863 71703.9482884913794188217403696+8864 71713.0380419003664838686959277+8865 71722.1279081188747921328669749+8866 71731.2178871341797909683288023+8867 71740.3079789335597979829629146+8868 71749.3981835042960000674097829+8869 71758.4885008336724524244595754+8870 71767.5789309089760775988806156+8871 71776.669473717496664507685323+8872 71785.7601292465268674708333903+8873 71794.850897483362205242371949+8874 71803.9417784153010600420124783+8875 71813.0327720296446765871442108+8876 71822.12387831369716112528379+8877 71831.215097254765480466960932+8878 71840.306428840159461019039848+8879 71849.3978730571917878184761805+8880 71858.4894298931780035665092093+8881 71867.5810993354365076632890803+8882 71876.6728813712885552429388153+8883 71885.7647759880582562090508544+8884 71894.8567831730725742706178897+8885 71903.9489029136613259783977432+8886 71913.0411351971571797617120473+8887 71922.1334800108956549656784806+8888 71931.2259373422151208888763188+8889 71940.3185071784567958214450537+8890 71949.4111895069647460836158387+8891 71958.5039843150858850646755165+8892 71967.5968915901699722623629861+8893 71976.6899113195696123226976659+8894 71985.7830434906402540802398098+8895 71994.8762880907401895987824341+8896 72003.9696451072305532124746118+8897 72013.0631145274753205673758922+8898 72022.1566963388413076634416043+8899 72031.2503905286981698969388004+8900 72040.3441970844184011032925988+8901 72049.4381159933773326003626846+8902 72058.5321472429531322321497251+8903 72067.6262908205268034129314597+8904 72076.7205467134821841718282232+8905 72085.8149149092059461977976601+8906 72094.9093953950875938850583901+8907 72104.0039881585194633789423838+8908 72113.0986931868967216221758066+8909 72122.1935104676173654015880933+8910 72131.2884399880822203952490093+8911 72140.3834817356949402200334615+8912 72149.4786356978620054796138169+8913 72158.5739018619927228128794901+8914 72167.6692802154992239427835594+8915 72176.7647707457964647256161721+8916 72185.8603734403022242007045005+8917 72194.9560882864371036405390075+8918 72204.0519152716245256013257853+8919 72213.147854383290732973964726+8920 72222.2439056088647880354532869+8921 72231.3400689357785715007156111+8922 72240.4363443514667815748567658+8923 72249.532731843366933005841859+8924 72258.6292313989193561375997977+8925 72267.7258430055671959635514489+8926 72276.8225666507564111805619662+8927 72285.9194023219357732433170432+8928 72295.0163500065568654191228586+8929 72304.1134096920740818431294731+8930 72313.2105813659446265739774426+8931 72322.3078650156285126498674109+8932 72331.4052606285885611450524435+8933 72340.5027681922904002267528679+8934 72349.6003876942024642124933824+8935 72358.6981191217959926278621978+8936 72367.795962462545029264691976+8937 72376.8939177039264212396623286+8938 72385.9919848334198180533236405+8939 72395.0901638385076706495419831+8940 72404.1884547066752304753648802+8941 72413.2868574254105485413076926+8942 72422.3853719822044744820603856+8943 72431.4839983645506556176144445+8944 72440.5827365599455360148097029+8945 72449.6815865558883555493008498+8946 72458.7805483398811489679433797+8947 72467.8796218994287449515987527+8948 72476.9788072220387651783585297+8949 72486.0781042952216233871872476+8950 72495.1775131064905244419838028+8951 72504.2770336433614633960611071+8952 72513.3766658933532245570437833+8953 72522.4764098439873805521836672+8954 72531.5762654827882913940928821+8955 72540.6762327972831035468942532+8956 72549.7763117750017489927888283+8957 72558.8765024034769442990402723+8958 72567.9768046702441896853759034+8959 72577.077218562841768091804137+8960 72586.177744068810744246848106+8961 72595.2783811756949637361952256+8962 72604.379129871041052071762469+8963 72613.4799901423984137611771237+8964 72622.5809619773192313776727958+8965 72631.6820453633584646304004311+8966 72640.7832402880738494351541205+8967 72649.8845467390258969855114604+8968 72658.9859647037778928243882345+8969 72668.0874941698958959160071888+8970 72677.1891351249487377182806658+8971 72686.29088755650802125560687+8972 72695.3927514521481201920795329+8973 72704.4947267994461779051107469+8974 72713.5968135859821065594667383+8975 72722.6990117993385861817163498+8976 72731.8013214271010637350920018+8977 72740.9037424568577521947629024+8978 72750.0062748761996296235202785+8979 72759.108918672720438247874396+8980 72768.2116738340166835345631413+8981 72777.3145403476876332674719353+8982 72786.417518201335316624964749+8983 72795.5206073825645232576259945+8984 72804.6238078789828023664130604+8985 72813.7271196782004617812192641+8986 72822.8305427678305670398469934+8987 72831.9340771354889404673908069+8988 72841.0377227687941602560302679+8989 72850.1414796553675595452322817+8990 72859.2453477828332255023627095+8991 72868.3493271388179984037070314+8992 72877.4534177109514707158998303+8993 72886.5576194868659861777628706+8994 72895.6619324541966388825515429+8995 72904.7663566005812723606094493+8996 72913.8708919136604786624309014+8997 72922.9755383810775974421311046+8998 72932.0802959904787150413238025+8999 72941.1851647295126635734061542+9000 72950.290144585831020008250619+9001 72959.3952355470881052573036222+9002 72968.5004376009409832590907756+9003 72977.6057507350494600651284275+9004 72986.7111749370760829262413165+9005 72995.8167101946861393792861029+9006 73004.9223564955476563342805532+9007 73014.0281138273313991619381523+9008 73023.1339821777108707816079178+9009 73032.239961534362310749619192+9010 73041.3460518849646943480311872+9011 73050.4522532171997316737870587+9012 73059.5585655187518667282722815+9013 73068.6649887773082765072771077+9014 73077.7715229805588700913628774+9015 73086.8781681161962877366319625+9016 73095.9849241719158999659011172+9017 73105.0917911354158066602780125+9018 73114.1987689943968361511407311+9019 73123.3058577365625443125199987+9020 73132.4130573496192136538839292+9021 73141.5203678212758524133250604+9022 73150.6277891392441936511494568+9023 73159.7353212912386943438676576+9024 73168.8429642649765344785872462+9025 73177.9507180481776161478068198+9026 73187.0585826285645626446111352+9027 73196.1665579938627175582672106+9028 73205.2746441318001438702211597+9029 73214.382841030107623050495536+9030 73223.491148676518654154486968+9031 73232.5995670587694529201638598+9032 73241.7080961645989508656639394+9033 73250.8167359817487943872914307+9034 73259.9254864979633438579136295+9035 73269.0343477009896727257566612+9036 73278.1433195785775666136002011+9037 73287.2524021184795224183709348+9038 73296.3615953084507474111345388+9039 73305.4708991362491583374859609+9040 73314.5803135896353805183377802+9041 73323.6898386563727469511064263+9042 73332.7994743242272974112960373+9043 73341.9092205809677775544797381+9044 73351.0190774143656380186781172+9045 73360.1290448121950335271346842+9046 73369.2391227622328219914880882+9047 73378.3493112522585636153408769+9048 73387.459610270054519998224578+9049 73396.5700198034056532399608841+9050 73405.680539840099625045418722+9051 73414.7911703679267958296669868+9052 73423.9019113746802238235227242+9053 73433.0127628481556641794945407+9054 73442.1237247761515680781210244+9055 73451.2347971464690818347039579+9056 73460.3459799469120460064361057+9057 73469.4572731652869944999233577+9058 73478.5686767894031536791010117+9059 73487.6801908070724414735439773+9060 73496.7918152061094664871706824+9061 73505.9035499743315271073404678+9062 73515.0153950995586106143442501+9063 73524.1273505696133922912882371+9064 73533.2394163723212345343704794+9065 73542.3515924955101859635500399+9066 73551.4638789270109805336085666+9067 73560.5762756546570366456040506+9068 73569.6887826662844562587165545+9069 73578.8013999497320240024856931+9070 73587.9141274928412062894396535+9071 73597.0269652834561504281155352+9072 73606.1399133094236837364707974+9073 73615.2529715585933126556855962+9074 73624.3661400188172218643557973+9075 73633.4794186779502733930764483+9076 73642.5928075238500057394154961+9077 73651.7063065443766329832775335+9078 73660.819915727393043902657361+9079 73669.9336350607648010897831493+9080 73679.0474645323601400676489865+9081 73688.1614041300499684069365978+9082 73697.275453841707864843326021+9083 73706.3896136552100783951950256+9084 73715.5038835584355274817070608+9085 73724.6182635392657990412875185+9086 73733.7327535855851476504880973+9087 73742.8473536852804946432390549+9088 73751.9620638262414272304891343+9089 73761.0768839963601976202329517+9090 73770.1918141835317221379256319+9091 73779.3068543756535803472844789+9092 73788.4220045606260141714774687+9093 73797.5372647263519270146983513+9094 73806.6526348607368828841281494+9095 73815.7681149516891055122828422+9096 73824.8837049871194774797470204+9097 73833.9994049549415393382933018+9098 73843.1152148430714887343872947+9099 73852.2311346394281795330778969+9100 73861.34716433193312094227272+9101 73870.4633039085104766373984253+9102 73879.5795533570870638864457617+9103 73888.6959126655923526753990935+9104 73897.8123818219584648340502068+9105 73906.9289608141201731621961836+9106 73916.045649630014900556221133+9107 73925.1624482575827191360615682+9108 73934.2793566847663493725552194+9109 73943.3963748995111592151730708+9110 73952.5135028897651632201344137+9111 73961.6307406434790216789047022+9112 73970.7480881486060397470760052+9113 73979.8655453931021665736298411+9114 73988.9831123649259944305821882+9115 73998.1007890520387578430104602+9116 74007.2185754424043327194622361+9117 74016.3364715239892354827455375+9118 74025.4544772847626222011004419+9119 74034.5725927126962877197518242+9120 74043.6908177957646647928430168+9121 74052.8091525219448232157501798+9122 74061.9275968792164689577771722+9123 74071.0461508555619432952307164+9124 74080.1648144389662219448756467+9125 74089.2835876174169141977700336+9126 74098.4024703789042620534799763+9127 74107.5214627114211393546738554+9128 74116.6405646029630509220958368+9129 74125.7597760415281316899184211+9130 74134.8790970151171458414738284+9131 74143.9985275117334859453640132+9132 74153.1180675193831720919491015+9133 74162.2377170260748510302140414+9134 74171.3574760198197953050132628+9135 74180.4773444886319023946931374+9136 74189.5973224205276938490920321+9137 74198.7174098035263144279177507+9138 74207.837606625649531239502156+9139 74216.9579128749217328799327666+9140 74226.0783285393699285725611215+9141 74235.1988536070237473078877079+9142 74244.3194880659154369838232438+9143 74253.4402319040798635463261124+9144 74262.56108510955451013041574+9145 74271.6820476703794762015617141+9146 74280.803119574597476697448434+9147 74289.9243008102538411701150912+9148 74299.0455913653965129284707719+9149 74308.1669912280760481811844783+9150 74317.2885003863456151799498634+9151 74326.410118828260993363124474+9152 74335.5318465418805724997432977+9153 74344.6536835152653518339064102+9154 74353.7756297364789392295405164+9155 74362.897685193587550315534184+9156 74372.0198498746600076312465627+9157 74381.1421237677677397723893869+9158 74390.2645068609847805372820578+9159 74399.3869991423877680734796001+9160 74408.5096006000559440247732914+9161 74417.6323112220711526785637597+9162 74426.7551309965178401136063462+9163 74435.8780599114830533481285298+9164 74445.0010979550564394883192117+9165 74454.1242451153302448771896543+9166 74463.2475013803993142438058759+9167 74472.3708667383610898528922937+9168 74481.4943411773156106548064174+9169 74490.6179246853655114358843869+9170 74499.7416172506160219691571551+9171 74508.8654188611749661654371116+9172 74517.9893295051527612247749462+9173 74527.1133491706624167882865507+9174 74536.2374778458195340903497565+9175 74545.3617155187423051111707071+9176 74554.4860621775515117297196635+9177 74563.6105178103705248770360417+9178 74572.7350824053253036899024814+9179 74581.8597559505443946648877436+9180 74590.9845384341589308127582375+9181 74600.1094298443026308132579757+9182 74609.2344301691117981702567567+9183 74618.3595393967253203672663735+9184 74627.4847575152846680233246502+9185 74636.6100845129338940492471039+9186 74645.735520377819632804246033+9187 74654.8610650980910992529168319+9188 74663.986718661900088122591332+9189 74673.1124810574009730610579692+9190 74682.2383522727507057946485787+9191 74691.3643322961088152866916171+9192 74700.4904211156374068963316133+9193 74709.6166187195011615377146475+9194 74718.7429250958673348395396614+9195 74727.8693402329057563049753985+9196 74736.9958641187888284719427774+9197 74746.1224967416915260737624976+9198 74755.2492380897913952001676818+9199 74764.3760881512685524586813535+9200 74773.5030469143056841363585534+9201 74782.6301143670880453618928965+9202 74791.75729049780345926808737+9203 74800.8845752946423161546891766+9204 74810.0119687457975726515884239+9205 74819.1394708394647508823804622+9206 74828.2670815638419376282916742+9207 74837.3948009071297834924685178+9208 74846.5226288575315020646296264+9209 74855.6505654032528690860807681+9210 74864.7786105325022216150924673+9211 74873.9067642334904571926400927+9212 74883.0350264944310330085062131+9213 74892.1633973035399650677450262+9214 74901.2918766490358273575086631+9215 74910.4204645191397510142351714+9216 74919.5491609020754234911979831+9217 74928.6779657860690877264166676+9218 74937.8068791593495413109287773+9219 74946.9359010101481356574225874+9220 74956.0650313266987751692305361+9221 74965.1942700972379164096831682+9222 74974.3236173100045672718233867+9223 74983.4530729532402861484808186+9224 74992.5826370151891811027060977+9225 75001.7123094840979090385648702+9226 75010.8420903482156748722913289+9227 75019.9719795957942307038010796+9228 75029.1019772150878749885631459+9229 75038.2320831943534517098309183+9230 75047.3622975218503495512318517+9231 75056.4926201858405010697157186+9232 75065.6230511745883818688612224+9233 75074.7535904763610097725407777+9234 75083.8842380794279439989432635+9235 75093.0149939720612843349545543+9236 75102.145858142535670310895638+9237 75111.2768305791282803756181235+9238 75120.4079112701188310719569482+9239 75129.5391002037895762125400892+9240 75138.6703973684253060559550865+9241 75147.8018027523133464832721848+9242 75156.933316343743558174923901+9243 75166.0649381310083357879408245+9244 75175.1966681024026071335434571+9245 75184.3285062462238323550899015+9246 75193.4604525507720031063792036+9247 75202.5925070043496417303101591+9248 75211.7246695952618004378953889+9249 75220.8569403118160604876304949+9250 75229.9893191423225313652181007+9251 75239.1218060750938499636465883+9252 75248.2544010984451797636233373+9253 75257.3871042006942100143622756+9254 75266.5199153701611549147255501+9255 75275.6528345951687527947191263+9256 75284.7858618640422652973421257+9257 75293.9189971651094765607897086+9258 75303.0522404867006924010093138+9259 75312.1855918171487394946100618+9260 75321.3190511447889645621251326+9261 75330.4526184579592335516269265+9262 75339.5862937449999308226948184+9263 75348.720076994253958330735314+9264 75357.8539681940667348116544188+9265 75366.9879673327861949668820292+9266 75376.1220743987627886487481562+9267 75385.2562893803494800462107912+9268 75394.3906122659017468709352251+9269 75403.5250430437775795437246297+9270 75412.6595817023374803813017139+9271 75421.7942282299444627834412636+9272 75430.9289826149640504204533765+9273 75440.0638448457642764210172036+9274 75449.1988149107156825603650074+9275 75458.3338927981913184488163479+9276 75467.469078496566740720662209+9277 75476.6043719942200122233988744+9278 75485.7397732795317012073113674+9279 75494.8752823408848805154062629+9280 75504.010899166665126773693687+9281 75513.1466237452605195818183124+9282 75522.2824560650616407040391646+9283 75531.4183961144615732605580491+9284 75540.5544438818559009191964132+9285 75549.6905993556427070874204532+9286 75558.826862524222574104714281+9287 75567.9632333759985824353009619+9288 75577.0997118993763098612112365+9289 75586.2362980827638306756997393+9290 75595.3729919145717148770085275+9291 75604.5097933832130273624777325+9292 75613.6467024771033271230031478+9293 75622.7837191846606664378405663+9294 75631.9208434943055900697566801+9295 75641.0580753944611344605263579+9296 75650.1954148735528269267761114+9297 75659.3328619200086848561735662+9298 75668.4704165222592149039627511+9299 75677.6080786687374121898450184+9300 75686.7458483478787594952054108+9301 75695.8837255481212264606842894+9302 75705.021710257905268784094035+9303 75714.1598024656738274186806402+9304 75723.2980021598723277717300049+9305 75732.4363093289486789035187503+9306 75741.5747239613532727266093672+9307 75750.7132460455389832054895121+9308 75759.8518755699611655565552682+9309 75768.9906125230776554484381843+9310 75778.1294568933487682026759087+9311 75787.2684086692372979947262328+9312 75796.4074678392085170553243603+9313 75805.5466343917301748721832172+9314 75814.6859083152724973920366193+9315 75823.8252895983081862230251124+9316 75832.9647782293124178374243014+9317 75842.1043741967628427747154849+9318 75851.2440774891395848449984112+9319 75860.3838880949252403327459725+9320 75869.523806002604877200900653+9321 75878.6638312006660342953125493+9322 75887.8039636775987205495187774+9323 75896.9442034218954141898640854+9324 75906.0845504220510619409624886+9325 75915.2250046665630782314997419+9326 75924.3655661439313444003764702+9327 75933.506234842658207903191772+9328 75942.6470107512484815190671132+9329 75951.787893858209442557810331+9330 75960.9288841520508320674195633+9331 75970.0699816212848540419269228+9332 75979.2111862544261746295817338+9333 75988.352498039991921341373148+9334 75997.4939169665016822598919604+9335 76006.6354430224775052485314412+9336 76015.7770761964438971610270031+9337 76024.9188164769278230513345221+9338 76034.0606638524587053838471319+9339 76043.2026183115684232439503078+9340 76052.3446798427913115489150627+9341 76061.4868484346641602591290704+9342 76070.6291240757262135896655386+9343 76079.7715067545191692221896487+9344 76088.9139964595871775172023824+9345 76098.0565931794768407266215552+9346 76107.1992969027372122066998755+9347 76116.342107617919795631279849+9348 76125.4850253135785442053853493+9349 76134.6280499782698598791496733+9350 76143.7711816005525925620799023+9351 76152.9144201689880393376573887+9352 76162.0577656721399436782741885+9353 76171.2012180985744946605052605+9354 76180.3447774368603261807162513+9355 76189.4884436755685161710066892+9356 76198.6322168032725858154884047+9357 76207.7760968085484987668990017+9358 76216.920083679974660363550197+9359 76226.0641774061319168466108525+9360 76235.2083779756035545777245182+9361 76244.3526853769752992569613103+9362 76253.497099598835315141103943+9363 76262.641620629774204262267738+9364 76271.7862484583850056468544315+9365 76280.9309830732631945348396013+9366 76290.0758244630066815993935366+9367 76299.2207726162158121668353707+9368 76308.3658275214933654369203002+9369 76317.5109891674445537034597128+9370 76326.6562575426770215752740448+9371 76335.8016326358008451974781929+9372 76344.9471144354285314730993005+9373 76354.092702930175017285026743+9374 76363.2383981086576687182941341+9375 76372.384199959496280282693176+9376 76381.5301084713130741357191769+9377 76390.6761236327326993058480584+9378 76399.8222454323822309161446767+9379 76408.9684738588911694082022804+9380 76418.1148089008914397664129287+9381 76427.2612505470173907425686935+9382 76436.4077987859057940807934688+9383 76445.5544536061958437428052123+9384 76454.7012149965291551335084413+9385 76463.848082945549764326916809+9386 76472.9950574419041272924055835+9387 76482.142138474241119121293855+9388 76491.2893260312120332537562954+9389 76500.4366201014705807060642944+9390 76509.5840206736728892981562964+9391 76518.7315277364775028815371642+9392 76527.8791412785453805675063932+9393 76537.0268612885398959557150011+9394 76546.1746877551268363630509186+9395 76555.3226206669744020528527066+9396 76564.4706600127532054644514239+9397 76573.6188057811362704430404715+9398 76582.7670579607990314698732401+9399 76591.9154165404193328927883841+9400 76601.0638815086774281570625498+9401 76610.2124528542559790365903827+9402 76619.3611305658400548653916401+9403 76628.5099146321171317694452347+9404 76637.6588050417770918988500366+9405 76646.8078017835122226603122574+9406 76655.9569048460172159499592463+9407 76665.1061142179891673864795213+9408 76674.2554298881275755445888647+9409 76683.404851845134341188822308+9410 76692.5543800777137665076518333+9411 76701.7040145745725543479296196+9412 76710.8537553244198074496566583+9413 76720.0036023159670276810765681+9414 76729.1535555379281152740944339+9415 76738.3036149790193680600204991+9416 76747.4537806279594807056385379+9417 76756.6040524734695439495987345+9418 76765.7544305042730438391348988+9419 76774.9049147090958609671058444+9420 76784.0555050766662697093607585+9421 76793.20620159571493746242839+9422 76802.357004254974923881529886+9423 76811.5079130431816801189151032+9424 76820.6589279490730480625222235+9425 76829.8100489613892595749605016+9426 76838.9612760688729357328159746+9427 76848.1126092602690860662799601+9428 76857.2640485243251077991001737+9429 76866.4155938497907850888542934+9430 76875.5672452254182882675458011+9431 76884.7190026399621730825219285+9432 76893.8708660821793799377135394+9433 76903.0228355408292331351967745+9434 76912.1749110046734401170762913+9435 76921.3270924624760907076899262+9436 76930.4793799030036563561346097+9437 76939.6317733150249893791133647+9438 76948.7842726873113222041032167+9439 76957.9368780086362666128438467+9440 76967.089589267775812985146817+9441 76976.2424064535083295430251997+9442 76985.3953295546145615951434384+9443 76994.5483585598776307815872731+9444 77003.70149345808303431895356+9445 77012.8547342380186442457598156+9446 77022.0080808884747066681733161+9447 77031.161533398243841006059584+9448 77040.3150917561210392393500912+9449 77049.4687559509036651547290113+9450 77058.6225259713914535926388505+9451 77067.7764018063865096946047909+9452 77076.9303834446933081508775747+9453 77086.0844708751186924483947629+9454 77095.2386640864718741190601994+9455 77104.3929630675644319883415122+9456 77113.5473678072103114241854832+9457 77122.7018782942258235862511198+9458 77131.8564945174296446754602581+9459 77141.0112164656428151838655326+9460 77150.1660441276887391448355423+9461 77159.3209774923931833835570465+9462 77168.4760165485842767678540236+9463 77177.6311612850925094593234232+9464 77186.7864116907507321647874471+9465 77195.9417677543941553880621898+9466 77205.0972294648603486820424712+9467 77214.2527968109892399011026973+9468 77223.4084697816231144538135783+9469 77232.5642483656066145559745398+9470 77241.72013255178673848396166+9471 77250.8761223290128398283909649+9472 77260.0322176861366267480969176+9473 77269.1884186120121612244259323+9474 77278.3447250954958583158447496+9475 77287.5011371254464854128635049+9476 77296.6576546907251614932733243+9477 77305.8142777801953563776982831+9478 77314.9710063827228899854615599+9479 77324.1278404871759315907656205+9480 77333.284780082424999079186267+9481 77342.4418251573429582044803856+9482 77351.5989757008050218457072281+9483 77360.7562317016887492646630618+9484 77369.9135931488740453636290224+9485 77379.0710600312431599434320045+9486 77388.228632337680686961818426+9487 77397.3863100570735637921406996+9488 77406.5440931783110704823562478+9489 77415.701981690284829014338897+9490 77424.8599755818888025635024848+9491 77434.0180748420192947587365172+9492 77443.1762794595749489426537109+9493 77452.3345894234567474321492564+9494 77461.4930047225680107792716374+9495 77470.6515253458143970324048435+9496 77479.8101512821039009977618105+9497 77488.9688825203468535011889264+9498 77498.1277190494559206502814378+9499 77507.2866608583461030968095937+9500 77516.4457079359347352994553634+9501 77525.604860271141484786859564+9502 77534.7641178528883514209792358+9503 77543.9234806700996666607551003+9504 77553.0829487117020928260889402+9505 77562.2425219666246223621307354+9506 77571.4022004237985771038753946+9507 77580.5619840721576075410689186+9508 77589.7218729006376920834238319+9509 77598.8818668981771363261437219+9510 77608.0419660537165723157567208+9511 77617.2021703561989578162577696+9512 77626.3624797945695755755595014+9513 77635.5228943577760325922515809+9514 77644.6834140347682593826683395+9515 77653.8440388144985092482645428+9516 77663.0047686859213575432991289+9517 77672.1656036379937009428267558+9518 77681.3265436596747567109969966+9519 77690.48758873992606196966102+9520 77699.6487388677114729672855952+9521 77708.8099940319971643481742595+9522 77717.9713542217516284219954877+9523 77727.1328194259456744336177021+9524 77736.2943896335524278332509608+9525 77745.4560648335473295468951656+9526 77754.6178450149081352470946258+9527 77763.7797301666149146239988203+9528 77772.941720277650050656729194+9529 77782.1038153369982388850518301+9530 77791.2660153336464866813558379+9531 77800.4283202565841125229372937+9532 77809.5907300948027452645885771+9533 77818.7532448372963234114929403+9534 77827.915864473061094392424152+9535 77837.0785889910956138332510545+9536 77846.2414183804007448307468755+9537 77855.4043526299796572267031336+9538 77864.5673917288378268823479784+9539 77873.7305356659830349530688059+9540 77882.8937844304253671634389891+9541 77892.0571380111772130825485645+9542 77901.220596397253265399638716+9543 77910.3841595776705192000398958+9544 77919.547827541448271241413424+9545 77928.7116002776081192302964084+9546 77937.8754777751739610989498239+9547 77947.0394600231719942825095949+9548 77956.2035470106307149964405198+9549 77965.3677387265809175142928813+9550 77974.532035160055693445761582+9551 77983.6964363000904310150476483+9552 77992.8609421357228143395219433+9553 78002.0255526559928227086909316+9554 78011.1902678499427298634643366+9555 78020.3550877066171032757245341+9556 78029.520012215062803428197522+9557 78038.6850413643289830946253106+9558 78047.850175143467086620239574+9559 78057.0154135415308492025364067+9560 78066.180756547576296172352026+9561 78075.3462041506617422752392645+9562 78084.5117563398477909531446945+9563 78093.6774131041973336263862274+9564 78102.8431744327755489759310307+9565 78112.0090403146499022259736062+9566 78121.1750107388901444268138719+9567 78130.3410856945683117380350911+9568 78139.507265170758724711981492+9569 78148.6735491565379875775354209+9570 78157.8399376409849875241938732+9571 78167.0064306131808939864442448+9572 78176.1730280622091579284391485+9573 78185.3397299771555111289701386+9574 78194.506536347107965466740188+9575 78203.6734471611568122059347612+9576 78212.8404624083946212820913282+9577 78222.0075820779162405882671626+9578 78231.1748061588187952615052683+9579 78240.3421346402016869695982801+9580 78249.5095675111665931981501815+9581 78258.6771047608174665379356846+9582 78267.844746378260533972557117+9583 78277.0124923526042961663986611+9584 78286.1803426729595267528777887+9585 78295.3482973284392716229937383+9586 78304.5163563081588482141728779+9587 78313.6845196012358447994108003+9588 78322.852787196790119776710995+9589 78332.0211590839438009588199428+9590 78341.1896352518212848632584771+9591 78350.3582156895492360026492601+9592 78359.5269003862565861753402165+9593 78368.6956893310745337563237727+9594 78377.8645825131365429884517461+9595 78387.0335799215783432739457311+9596 78396.2026815455379284662028274+9597 78405.3718873741555561618965568+9598 78414.5411973965737469933728148+9599 78423.7106116019372839213407037+9600 78432.8801299793932115278580924+9601 78442.0497525180908353096117512+9602 78451.2194792071817209714919062+9603 78460.3893100358196937204610619+9604 78469.5592449931608375597169371+9605 78478.7292840683634945831493626+9606 78487.899427250588264270090986+9607 78497.0696745289980027803616323+9608 78506.2400258927578222496061664+9609 78515.4104813310350900849257048+9610 78524.5810408329994282608020249+9611 78533.7517043878227126153150178+9612 78542.9224719846790721466530332+9613 78552.0933436127448883099159647+9614 78561.2643192611987943142109207+9615 78570.4353989192216744200403318+9616 78579.6065825759966632369823408+9617 78588.7778702207091450216633235+9618 78597.9492618425467529760223892+9619 78607.1207574306993685458677081+9620 78616.2923569743591207197245148+9621 78625.4640604627203853279746358+9622 78634.6358678849797843422873897+9623 78643.8077792303361851753417085+9624 78652.9797944879906999808393292+9625 78662.1519136471466849538089035+9626 78671.3241366970097396312008758+9627 78680.4964636267877061927729773+9628 78689.6688944256906687622661858+9629 78698.8414290829309527088710007+9630 78708.0140675877231239489838814+9631 78717.1868099292839882482537+9632 78726.3596560968325905239180558+9633 78735.5326060795902141474293034+9634 78744.7056598667803802473701415+9635 78753.8788174476288470126586149+9636 78763.0520788113636089960423768+9637 78772.2254439472148964178820636+9638 78781.3989128444151744702236303+9639 78790.5724854921991426211594987+9640 78799.7461618798037339194783657+9641 78808.9199419964681142996035256+9642 78818.0938258314336818868195533+9643 78827.2678133739440663027872016+9644 78836.4419046132451279713463608+9645 78845.6160995385849574246069339+9646 78854.7903981392138746093274753+9647 78863.9648004043844281935814465+9648 78873.1393063233513948737109375+9649 78882.3139158853717786815677065+9650 78891.4886290797048102920413883+9651 78900.663445895611946330874723+9652 78909.8383663223568686827656555+9653 78919.0133903492054837997561583+9654 78928.1885179654259220099076285+9655 78937.3637491602885368262627104+9656 78946.5390839230659042560933959+9657 78955.7145222430328221104352541+9658 78964.8900641094663093139076419+9659 78974.0657095116456052148197482+9660 78983.2414584388521688955623226+9661 78992.4173108803696784832849419+9662 79001.5932668254840304608586662+9663 79010.7693262634833389781239361+9664 79019.9454891836579351634235651+9665 79029.1217555753003664354206783+9666 79038.2981254277053958152014506+9667 79047.4745987301700012386624965+9668 79056.6511754719933748691827654+9669 79065.8278556424769224105797945+9670 79075.0046392309242624203501717+9671 79084.181526226641225623194063+9672 79093.3585166189358542248236564+9673 79102.5356103971184012260553758+9674 79111.7128075505013297371857187+9675 79120.8901080683993122926505704+9676 79130.0675119401292301659678484+9677 79139.2450191550101726849633313+9678 79148.422629702363436547279525+9679 79157.6003435715125251361674201+9680 79166.7781607517831478365609951+9681 79175.9560812325032193514343183+9682 79185.1341050030028590184411034+9683 79194.3122320526143901268365724+9684 79203.4904623706723392346814803+9685 79212.6687959465134354863281554+9686 79221.8472327694766099301884103+9687 79231.0257728289029948367831782+9688 79240.2044161141359230170737276+9689 79249.3831626145209271410743128+9690 79258.5620123194057390567461116+9691 79267.740965218140289109172308+9692 79276.9200213000767054600141735+9693 79286.0991805545693134072480021+9694 79295.2784429709746347051827539+9695 79304.4578085386513868847582636+9696 79313.6372772469604825741238677+9697 79322.8168490852650288194973075+9698 79331.9965240429303264063037617+9699 79341.1763021093238691805948651+9700 79350.3561832738153433707475697+9701 79359.5361675257766269094427017+9702 79368.7162548545817887559230733+9703 79377.896445249607088218531003+9704 79387.0767387002309742775251005+9705 79396.2571351958340849081761743+9706 79405.4376347257992464041421155+9707 79414.6182372795114727011216163+9708 79423.7989428463579647007865782+9709 79432.9797514157281095949930673+9710 79442.1606629770134801902706721+9711 79451.3416775196078342325901222+9712 79460.5227950329071137324090229+9713 79469.7040155063094442899955634+9714 79478.8853389292151344210300553+9715 79488.0667652910266748824841586+9716 79497.2482945811487379987776525+9717 79506.4299267889881769882126066+9718 79515.6116619039540252896848127+9719 79524.7934999154574958896723315+9720 79533.9754408129119806495010134+9721 79543.1574845857330496328868508+9722 79552.3396312233384504337550193+9723 79561.5218807151481075043354644+9724 79570.7042330505841214835348943+9725 79579.8866882190707685255850332+9726 79589.069246210034499628966996+9727 79598.2519070129039399656116407+9728 79607.4346706171098882103757572+9729 79616.6175370120853158707939512+9730 79625.8005061872653666171060803+9731 79634.9835781320873556125601022+9732 79644.1667528359907688439901924+9733 79653.35003028841726245266999+9734 79662.5334104788106620654408317+9735 79671.7168933966169621261148303+9736 79680.9004790312843252271526586+9737 79690.0841673722630814416158976+9738 79699.2679584090057276553938059+9739 79708.4518521309669268997043717+9740 79717.6358485276035076838695061+9741 79726.8199475883744633283642359+9742 79736.0041493027409512981397563+9743 79745.1884536601662925362202028+9744 79754.3728606501159707975730013+9745 79763.5573702620576319832526568+9746 79772.7419824854610834748178398+9747 79781.9266973097982934690216303+9748 79791.1115147245433903127747801+9749 79800.2964347191726618383818513+9750 79809.4814572831645546990500941+9751 79818.6665824059996737046709209+9752 79827.8518100771607811578738393+9753 79837.0371402861327961903527029+9754 79846.2225730224027940994641414+9755 79855.4081082754600056850980291+9756 79864.5937460347958165868198539+9757 79873.7794862899037666212848461+9758 79882.965329030279549119923729+9759 79892.1512742454210102668999507+9760 79901.3373219248281484373382597+9761 79910.5234720580031135358244838+9762 79919.709724634450206335176374+9763 79928.8960796436758778154853749+9764 79938.0825370751887285034291821+9765 79947.269096918499507811854949+9766 79956.4557591631211133796330028+9767 79965.6425237985685904117809334+9768 79974.8293908143591310198579142+9769 79984.0163602000120735626291194+9770 79993.2034319450489019870000965+9771 80002.3906060389932451692209588+9772 80011.5778824713708762563602573+9773 80020.7652612317097120080483959+9774 80029.9527423095398121384904508+9775 80039.1403256943933786587482569+9776 80048.3280113758047552192916235+9777 80057.5157993433104264528185411+9778 80066.7036895864490173173442423+9779 80075.8916820947612924395589794+9780 80085.0797768577901554584543806+9781 80094.2679738650806483692182481+9782 80103.4562731061799508673976611+9783 80112.6446745706373796933302456+9784 80121.833178248004387976843475+9785 80131.0217841278345645822218641+9786 80140.2104921996836334534419191+9787 80149.3993024531094529596747078+9788 80158.5882148776720152410559129+9789 80167.7772294629334455547232308+9790 80176.9663461984580016211209814+9791 80186.1555650738120729705717902+9792 80195.344886078564180290115208+9793 80204.5343092022849747706131311+9794 80213.7238344345472374541218858+9795 80222.9134617649258785815308415+9796 80232.1031911829979369404674156+9797 80241.2930226783425792134683355+9798 80250.4829562405410993264170202+9799 80259.6729918591769177972469471+9800 80268.8631295238355810849108677+9801 80278.0533692241047609386157358+9802 80287.2437109495742537473232148+9803 80296.4341546898359798895156263+9804 80305.6247004344839830832272057+9805 80314.8153481731144297363405299+9806 80324.0060978953256082971479806+9807 80333.1969495907179286051781099+9808 80342.3879032488939212422867709+9809 80351.5789588594582368840128809+9810 80360.7701164120176456511986793+9811 80369.9613758961810364618743486+9812 80379.1527373015594163834068617+9813 80388.3442006177659099849129205+9814 80397.5357658344157586899358538+9815 80406.7274329411263201293863369+9816 80415.9192019275170674947468007+9817 80425.1110727832095888915393952+9818 80434.3030454978275866930573731+9819 80443.4951200609968768943597594+9820 80452.6872964623453884665291733+9821 80461.8795746915031627111926679+9822 80471.0719547381023526153054545+9823 80480.2644365917772222061973762+9824 80489.4570202421641459068819993+9825 80498.6497056789016078916281873+9826 80507.8424928916302014417940232+9827 80517.0353818699926283019229497+9828 80526.2283726036336980361019899+9829 80535.4214650822003273845819181+9830 80544.6146592953415396206592468+9831 80553.8079552327084639078198956+9832 80563.0013528839543346571444101+9833 80572.1948522387344908849745977+9834 80581.3884532867063755708414469+9835 80590.5821560175295350156541973+9836 80599.7759604208656182001504281+9837 80608.9698664863783761436070314+9838 80618.1638742037336612628119397+9839 80627.3579835625994267312964718+9840 80636.5521945526457258388281682+9841 80645.7465071635447113511639814+9842 80654.9409213849706348700636894+9843 80664.1354372065998461935634003+9844 80673.3300546181107926765090162+9845 80682.5247736091840185913495235+9846 80691.7195941695021644891899787+9847 80700.9145162887499665611040569+9848 80710.1095399566142559997060315+9849 80719.3046651627839583609820542+9850 80728.4998918969500929263806023+9851 80737.6952201488057720651619626+9852 80746.8906499080462005970066203+9853 80756.0861811643686751548824215+9854 80765.2818139074725835481703776+9855 80774.4775481270594041260489815+9856 80783.6733838128327051411369027+9857 80792.8693209544981441133939317+9858 80802.0653595417634671942800426+9859 80811.2614995643385085311724413+9860 80820.4577410119351896320404715+9861 80829.6540838742675187303782446+9862 80838.8505281410515901503948647+9863 80848.0470738020055836724621179+9864 80857.2437208468497638988194948+9865 80866.4404692653064796195364164+9866 80875.6373190471001631787315322+9867 80884.8342701819573298410489613+9868 80894.0313226596065771583913456+9869 80903.2284764697785843369095851+9870 80912.4257316022061116042491251+9871 80921.6230880466239995770526665+9872 80930.8205457927691686287191667+9873 80940.0181048303806182574190045+9874 80949.2157651491994264543651773+9875 80958.4135267389687490723404008+9876 80967.6113895894338191944799833+9877 80976.8093536903419465033103429+9878 80986.0074190314425166500430404+9879 80995.2055856024869906241241968+9880 81004.4038533932289041230391674+9881 81013.6022223934238669223723421+9882 81022.8006925928295622461219442+9883 81031.9992639812057461372696979+9884 81041.197936548314246828605235+9885 81050.3967102839189641138051135+9886 81059.5955851777858687187663175+9887 81068.7945612196830016731941118+9888 81077.9936383993804736824441199+9889 81087.1928167066504644996184999+9890 81096.3920961312672222979160867+9891 81105.5914766630070630432363751+9892 81114.7909582916483698670372134+9893 81123.9905410069715924394460796+9894 81133.1902247987592463426248132+9895 81142.3900096567959124443876731+9896 81151.5898955708682362720725946+9897 81160.7898825307649273866655165+9898 81169.9899705262767587571776524+9899 81179.1901595471965661352755756+9900 81188.3904495833192474301639925+9901 81197.5908406244417620837210761+9902 81206.7913326603631304458862305+9903 81215.9919256808844331503001619+9904 81225.1926196758088104901971258+9905 81234.393414634941461794549225+9906 81243.5943105480896448044626306+9907 81252.7953074050626750498255984+9908 81261.9964051956719252262081545+9909 81271.1976039097308245720133222+9910 81280.3989035370548582458797639+9911 81289.6003040674615667043357112+9912 81298.8018054907705450797040559+9913 81308.0034077968034425582584756+9914 81317.205110975383961758630467+9915 81326.4069150163378581104671611+9916 81335.608819909492939233339793+9917 81344.8108256446790643159027+9918 81354.012932211728143495302722+9919 81363.2151396004741372368388787+9920 81372.417447800753055713872195+9921 81381.6198568024029581879855522+9922 81390.8223665952639523893934349+9923 81400.0249771691781938976014512+9924 81409.2276885139898855223154985+9925 81418.4305006195452766846004492+9926 81427.6334134756926627982882311+9927 81436.8364270722823846516351769+9928 81446.0395413991668277892285168+9929 81455.2427564462004218941418888+9930 81464.4460722032396401703397424+9931 81473.6494886601429987253305079+9932 81482.8530058067710559530684096+9933 81492.0566236329864119171037936+9934 81501.2603421286537077339818495+9935 81510.4641612836396249568895966+9936 81519.6680810878128849595510136+9937 81528.8721015310442483203701842+9938 81538.0762226032065142068223349+9939 81547.2804442941745197600926403+9940 81556.4847665938251394799626712+9941 81565.6891894920372846099443604+9942 81574.8937129786919025226613627+9943 81584.0983370436719761054776842+9944 81593.3030616768625231463734556+9945 81602.5078868681505957200677275+9946 81611.7128126074252795743881609+9947 81620.9178388845776935168874912+9948 81630.1229656895009888017066394+9949 81639.3281930120903485166843487+9950 81648.5335208422429869707132208+9951 81657.7389491698581490813420292+9952 81666.9444779848371097626241854+9953 81676.1501072770831733132122342+9954 81685.3558370365016728046982551+9955 81694.561667252999969470200045+9956 81703.7675979164874520931929607+9957 81712.9736290168755363965872957+9958 81722.1797605440776644320510698+9959 81731.3859924880093039695781072+9960 81740.5923248385879478873012804+9961 81749.7987575857331135615507965+9962 81759.0052907193663422571574035+9963 81768.211924229411198518000393+9964 81777.4186581057932695578002771+9965 81786.6254923384401646511560156+9966 81795.8324269172815145248266728+9967 81805.0394618322489707492573791+9968 81814.2465970732762051303494759+9969 81823.4538326302989091014747218+9970 81832.6611684932547931157334367+9971 81841.868604652083586038456462+9972 81851.0761410967270345399508142+9973 81860.283777817128902488488911+9974 81869.4915148032349703435412457+9975 81878.6993520449930345492523898+9976 81887.9072895323529069281602007+9977 81897.1153272552664140751581133+9978 81906.3234652036873967517003927+9979 81915.5317033675717092802502278+9980 81924.7400417368772189389705425+9981 81933.948480301563805356657404+9982 81943.157019051593359907915906+9983 81952.3656579769297851085784063+9984 81961.5743970675389940113649959+9985 81970.7832363133889096017860802+9986 81979.9921757044494641942869489+9987 81989.2012152306925988286342158+9988 81998.4103548820922626665440052+9989 82007.6195946486244123885517655+9990 82016.8289345202670115911235883+9991 82026.0383744870000301840089123+9992 82035.2479145388054437878344908+9993 82044.4575546656672331319395033+9994 82053.6672948575713834524516891+9995 82062.877135104505883890604383+9996 82072.0870753964607268912943326+9997 82081.2971157234279076018801769+9998 82090.5072560754014232712214654+9999 82099.7174964423772726489580977+10000 82108.9278368143534553850300635+10001 82118.1382771813299714294373625+10002 82127.3488175333088204322399843+10003 82136.5594578602940011437978287+10004 82145.7701981522915108152504454+10005 82154.9810383993093445992364748+10006 82164.1919785913574949508526686+10007 82173.4030187184479510288523714+10008 82182.6141587705946980970833431+10009 82191.8253987378137169261648037+10010 82201.036738610122983195403579+10011 82210.2481783775424668949492294+10012 82219.4597180300941317281880425+10013 82228.6713575578019345143757689+10014 82237.8830969506918245915089828+10015 82247.0949361987917432194349488+10016 82256.3068752921316229831998747+10017 82265.5189142207433871966354323+10018 82274.7310529746609493061834264+10019 82283.9432915439202122949584937+10020 82293.1556299185590680870487133+10021 82302.3680680886173969520540083+10022 82311.580606044137066909862222+10023 82320.793243775161933135662749+10024 82330.0059812717378373651976025+10025 82339.2188185239126073002498003+10026 82348.4317555217360560143689498+10027 82357.6447922552599813588339156+10028 82366.8579287145381653688524491+10029 82376.0711648896263736699976645+10030 82385.284500770582354884881241+10031 82394.4979363474658400400632341+10032 82403.7114716103385419731983788+10033 82412.9251065492641547404187652+10034 82422.1388411543083530239527697+10035 82431.3526754155387915399801247+10036 82440.5666093230251044467230075+10037 82449.7806428668389047527730319+10038 82458.9947760370537837256540256+10039 82468.209008823745310300620474+10040 82477.4233412169910304896915149+10041 82486.6377732068704667909203663+10042 82495.8523047834651175978990688+10043 82505.0669359368584566094984282+10044 82514.2816666571359322398430377+10045 82523.4964969343849670285212659+10046 82532.7114267586949570510300915+10047 82541.9264561201572713294546686+10048 82551.1415850088652512433825066+10049 82560.3568134149142099410521456+10050 82569.5721413284014317507362136+10051 82578.7875687394261715923587467+10052 82588.0030956380896543893466566+10053 82597.2187220144950744807152289+10054 82606.434447858747595033387536+10055 82615.6502731609543474547476475+10056 82624.8661979112244308054275231+10057 82634.0822220996689112123274701+10058 82643.2983457164008212818700517+10059 82652.5145687515351595134873275+10060 82661.7308911951888897133413122+10061 82670.9473130374809404082775355+10062 82680.1638342685322042600115881+10063 82689.380454878465537479548537+10064 82698.5971748574057592418350957+10065 82707.813994195479651100644433+10066 82717.0309128828159564036935039+10067 82726.2479309095453797079927895+10068 82735.4650482658005861954283278+10069 82744.682264941716201088575922+10070 82753.89958092742880906674741+10071 82763.1169962130769536822688803+10072 82772.3345107888011367769907189+10073 82781.5521246447438178990293722+10074 82790.7698377710494137197407112+10075 82799.9876501578642974509248817+10076 82809.2055617953367982622625251+10077 82818.4235726736172006989822568+10078 82827.6416827828577440997592851+10079 82836.8598921132126220148450579+10080 82846.0782006548379816244278211+10081 82855.2966083978919231572239754+10082 82864.5151153325344993093001166+10083 82873.7337214489277146631256441+10084 82882.9524267372355251068558247+10085 82892.1712311876238372538451969+10086 82901.390134790260507862391201+10087 82910.6091375353153432557079214+10088 82919.8282394129600987421298268+10089 82929.0474404133684780355453951+10090 82938.2667405267161326760605074+10091 82947.4861397431806614508914989+10092 82956.7056380529416098154877525+10093 82965.92523544618046931488372+10094 82975.1449319130806770052802599+10095 82984.3647274438276148758551757+10096 82993.5846220286086092708028422+10097 83002.8046156576129303116028071+10098 83012.0247083210317913195172532+10099 83021.244900009058348238317208+10100 83030.4651907118876990572373892+10101 83039.6855804197168832341595703+10102 83048.9060691227448811190243553+10103 83058.1266568111726133774712485+10104 83067.3473434752029404147069063+10105 83076.5681291050406617996014588+10106 83085.7890136908925156890127877+10107 83095.0099972229671782523386476+10108 83104.2310796914752630962965195+10109 83113.4522610866293206899310811+10110 83122.6735413986438377898491843+10111 83131.8949206177352368656822253+10112 83141.1163987341218755257757957+10113 83150.3379757380240459431065021+10114 83159.5596516196639742814258419+10115 83168.7814263692658201216310232+10116 83178.0032999770556758883626162+10117 83187.2252724332615662768289245+10118 83196.4473437281134476798569637+10119 83205.6695138518432076151699359+10120 83214.891782794684664152891088+10121 83224.1141505468735653432738416+10122 83233.336617098647588644658083+10123 83242.5591824402463403516525021+10124 83251.7818465619113550235428673+10125 83261.0046094538860949129261263+10126 83270.2274711064159493945702197+10127 83279.450431509748234394499498+10128 83288.673490654132191819305628+10129 83297.8966485298189889856838799+10130 83307.1199051270617180501946823+10131 83316.3432604361153954392503337+10132 83325.5667144472369612793267608+10133 83334.7902671506852788274002114+10134 83344.013918536721133901608771+10135 83353.2376685956072343121385926+10136 83362.4615173176082092923347288+10137 83371.6854646929906089300364548+10138 83380.9095107120229035991369727+10139 83390.1336553649754833913673852+10140 83399.3578986421206575483048289+10141 83408.5822405337326538936046565+10142 83417.8066810300876182654565574+10143 83427.0312201214636139492645062+10144 83436.255857798140621110550429+10145 83445.4805940504005362280814769+10146 83454.7054288685271715272207973+10147 83463.930362242806254413501691+10148 83473.1553941635254269064250482+10149 83482.3805246209742450734799493+10150 83491.6057536054441784643873249+10151 83500.8310811072286095455665612+10152 83510.0565071166228331348249439+10153 83519.2820316239240558362698295+10154 83528.5076546194313954754434339+10155 83537.7333760934458805346801304+10156 83546.9591960362704495886861456+10157 83556.1851144382099507403415449+10158 83565.4111312895711410567243983+10159 83574.6372465806626860053570156+10160 83583.8634603017951588906741443+10161 83593.089772443281040290713018+10162 83602.316182995434717494025149+10163 83611.5426919485724839368097538+10164 83620.7692992930125386402687032+10165 83629.9960050190749856481828888+10166 83639.2228091170818334647098958+10167 83648.449711577356994492402874+10168 83657.6767123902262844704504981+10169 83666.9038115460174219131379079+10170 83676.1310090350600275485285213+10171 83685.3583048476856237573666099+10172 83694.5856989742276340122005291+10173 83703.8131914050213823167264958+10174 83713.040782130404092645352802+10175 83722.26847114071488838298436+10176 83731.4962584262947917650274671+10177 83740.7241439774867233176146849+10178 83749.9521277846355012980497227+10179 83759.1802098380878411354722179+10180 83768.4083901281923548717423054+10181 83777.6366686452995506025448678+10182 83786.865045379761831918713359+10183 83796.0935203219334973477730928+10184 83805.3220934621707397957038886+10185 83814.5507647908316459889219675+10186 83823.7795342982761959164809904+10187 83833.0084019748662622724921303+10188 83842.2373678109656098987630722+10189 83851.4664317969398952276558323+10190 83860.6955939231566657251632897+10191 83869.924854179985359334204323+10192 83879.1542125577973039181374444+10193 83888.3836690469657167044928247+10194 83897.6132236378657037289226015+10195 83906.8428763208742592793693635+10196 83916.0726270863702653404527048+10197 83925.3024759247344910380737412+10198 83934.5324228263495920842374817+10199 83943.7624677816001102220929494+10200 83952.9926107808724726711909443+10201 83962.2228518145549915729593408+10202 83971.4531908730378634363958148+10203 83980.6836279467131685839778919+10204 83989.9141630259748705977902123+10205 83999.1447961012188157658689043+10206 84008.3755271628427325287629606+10207 84017.6063562012462309263125114+10208 84026.8372832068308020446438876+10209 84036.0683081699998174633813684+10210 84045.2994310811585287030755066+10211 84054.5306519307140666728479258+10212 84063.7619707090754411182524838+10213 84072.9933874066535400693526958+10214 84082.2249020138611292890153122+10215 84091.4565145211128517214199436+10216 84100.6882249188252269407846298+10217 84109.9200331974166506003072449+10218 84119.1519393473073938813226337+10219 84128.383943358919602942675374+10220 84137.6160452226772983703080592+10221 84146.8482449290063746270649954+10222 84156.0805424683345995027112081+10223 84165.3129378310916135641666533+10224 84174.5454310077089296059555268+10225 84183.7780219886199321008705677+10226 84193.0107107642598766508522502+10227 84202.243497325065889438082759+10228 84211.4763816614769666762946431+10229 84220.7093637639339740622940433+10230 84229.9424436228796462276983879+10231 84239.1756212287585861908884528+10232 84248.4088965720172648091746803+10233 84257.6422696431040202311776526+10234 84266.8757404324690573494226146+10235 84276.1093089305644472531479423+10236 84285.3429751278441266813274517+10237 84294.5767390147638974759064439+10238 84303.8106005817814260352513819+10239 84313.0445598193562427678130954+10240 84322.278616717949741546003408+10241 84331.5127712680251791602850845+10242 84340.7470234600476747734749919+10243 84349.9813732844842093752603722+10244 84359.2158207318036252369281212+10245 84368.4503657924766253663069709+10246 84377.6850084569757729629224701+10247 84386.9197487157754908733646606+10248 84396.154586559352061046868344+10249 84405.3895219781836239911058373+10250 84414.6245549627501782281921108+10251 84423.8596855035335797509022078+10252 84433.0949135910175414791008405+10253 84442.3302392156876327163840587+10254 84451.5656623680312786069328893+10255 84460.8011830385377595925788416+10256 84470.0368012176982108700811766+10257 84479.2725168960056218486158356+10258 84488.5083300639548356074759257+10259 84497.74424071204254835398366+10260 84506.9802488307673088816136467+10261 84516.2163544106295180283274278+10262 84525.4525574421314281351191614+10263 84534.6888579157771425047723458+10264 84543.9252558220726148608274834+10265 84553.1617511515256488067605803+10266 84562.3983438946458972853723801+10267 84571.6350340419448620383882277+10268 84580.8718215839358930662684629+10269 84590.1087065111341880882292385+10270 84599.3456888140567920024736629+10271 84608.5827684832225963466331635+10272 84617.8199455091523387584189681+10273 84627.0572198823686024364836043+10274 84636.2945915933958156014923113+10275 84645.5320606327602509574042653+10276 84654.7696269909900251529635142+10277 84664.0072906586150982433995203+10278 84673.2450516261672731523372091+10279 84682.4829098841801951339164222+10280 84691.7208654231893512351206722+10281 84700.9589182337320697583150985+10282 84710.1970683063475197239935214+10283 84719.4353156315767103337344931+10284 84728.6736601999624904333662445+10285 84737.9121020020495479763404256+10286 84747.1506410283844094873145383+10287 84756.38927726951543952594296+10288 84765.628010715992840150876457+10289 84774.8668413583686503839700856+10290 84784.1057691871967456746993805+10291 84793.3447941930328373647847291+10292 84802.5839163664344721530238299+10293 84811.8231356979610315603321347+10294 84821.0624521781737313949911731+10295 84830.301865797635621218104659+10296 84839.5413765469115838092622769+10297 84848.7809844165683346324110484+10298 84858.0206893971744213019341781+10299 84867.2604914793002230489372764+10300 84876.5003906535179501877418616+10301 84885.7403869104016435825860375+10302 84894.9804802405271741145322477+10303 84904.2206706344722421485820067+10304 84913.460958082816377000997505+10305 84922.7013425761409364068299904+10306 84931.9418241050291059876548235+10307 84941.1824026600658987195131076+10308 84950.4230782318381544010597936+10309 84959.6638508109345391219181575+10310 84968.9047203879455447312405541+10311 84978.1456869534634883064753424+10312 84987.3867504980825116223398868+10313 84996.6279110123985806199995315+10314 85005.8691684870094848764524493+10315 85015.110522912514837074120265+10316 85024.3519742795160724706443537+10317 85033.5935225786164483688877134+10318 85042.8351678004210435871423139+10319 85052.0769099355367579295418207+10320 85061.3187489745723116566795963+10321 85070.5606849081382449564318771+10322 85079.8027177268469174149860287+10323 85089.0448474213125074880737791+10324 85098.2870739821510119724093309+10325 85107.5293973999802454773322527+10326 85116.7718176654198398966550515+10327 85126.0143347690912438807153261+10328 85135.2569487016177223086324034+10329 85144.4996594536243557607683576+10330 85153.7424670157380399913933134+10331 85162.9853713785874854015549361+10332 85172.2283725328032165121520069+10333 85181.4714704690175714372119873+10334 85190.7146651778647013573724721+10335 85199.9579566499805699935664332+10336 85209.2013448760029530809111559+10337 85218.4448298465714378428007677+10338 85227.6884115523274224652022632+10339 85236.932089983914115571154925+10340 85246.1758651319765356954730428+10341 85255.419736987161510759651833+10342 85264.6637055401176775469764595+10343 85273.9077707814954811778340582+10344 85283.1519327019471745852286666+10345 85292.3961912921268179904989615+10346 85301.6405465426902783792387052+10347 85310.8849984442952289774198035+10348 85320.1295469876011487277178764+10349 85329.374192163269321766040246+10350 85338.6189339619628368982562401+10351 85347.8637723743465870771297176+10352 85357.1087073910872688794537152+10353 85366.3537390028533819833871199+10354 85375.5988672003152286459932671+10355 85384.8440919741449131809803703+10356 85394.0894133150163414366436817+10357 85403.3348312136052202740092881+10358 85412.5803456605890570451794444+10359 85421.8259566466471590718793471+10360 85431.0716641624606331242052512+10361 85440.3174681987123848995738324+10362 85449.5633687460871185018726986+10363 85458.8093657952713359208119525+10364 85468.0554593369533365114767092+10365 85477.3016493618232164740804718+10366 85486.5479358605728683339192673+10367 85495.7943188238959804215264467+10368 85505.0407982424880363530280525+10369 85514.2873741070463145106986566+10370 85523.5340464082698875237175717+10371 85532.7808151368596217491253411+10372 85542.0276802835181767529804074+10373 85551.2746418389500047917158672+10374 85560.5216997938613502936962122+10375 85569.7688541389602493409739624+10376 85579.0161048649565291512460943+10377 85588.2634519625618075600101674+10378 85597.510895422489492502920054+10379 85606.7584352354547814983411744+10380 85616.0060713921746611301051436+10381 85625.2538038833679065304637311+10382 85634.5016326997550808632420397+10383 85643.7495578320585348071908062+10384 85652.9975792710024060395377286+10385 85662.2456970073126187197377243+10386 85671.4939110317168829734220222+10387 85680.7422213349446943765459949+10388 85689.9906279077273334397356338+10389 85699.2391307407978650928325718+10390 85708.4877298248911381696375592+10391 85717.7364251507437848928522951+10392 85726.9852167090942203592195213+10393 85736.2341044906826420248612814+10394 85745.4830884862510291908152508+10395 85754.7321686865431424887690421+10396 85763.9813450823045233669923907+10397 85773.2306176642824935764671247+10398 85782.4799864232261546572148256+10399 85791.729451349886387424822083+10400 85800.9790124350158514571632497+10401 85810.2286696693689845813206011+10402 85819.4784230437020023607018048+10403 85828.7282725487728975823546054+10404 85837.9782181753414397444786293+10405 85847.2282599141691745441342157+10406 85856.4783977560194233651481775+10407 85865.7286316916572827662163996+10408 85874.9789617118496239692031785+10409 85884.2293878073650923476372085+10410 85893.4799099689741069154041221+10411 85902.730528187448859815635487+10412 85911.9812424535633158097941688+10413 85921.2320527580932117669559623+10414 85930.4829590918160561532873986+10415 85939.7339614455111285217196338+10416 85948.9850598099594790018183246+10417 85958.2362541759439277898493968+10418 85967.4875445342490646390406136+10419 85976.738930875661248350038848+10420 85985.9904131909686062615629673+10421 85995.2419914709610337412522345+10422 86004.4936657064301936767101334+10423 86013.7454358881695159667435232+10424 86022.9973020069741970127970298+10425 86032.2492640536411992105825786+10426 86041.5013220189692504419039772+10427 86050.7534758937588435666764528+10428 86060.0057256688122359151410514+10429 86069.2580713349334487802738058+10430 86078.5105128829282669103895783+10431 86087.7630503036042380019404853+10432 86097.0156835877706721925088104+10433 86106.2684127262386415539943125+10434 86115.5212377098209795859958362+10435 86124.7741585293322807093871311+10436 86134.0271751755888997600867871+10437 86143.2802876394089514830221923+10438 86152.5334959116123100262874216+10439 86161.7867999830206084354949615+10440 86171.0401998444572381483211797+10441 86180.2936954867473484892454462+10442 86189.5472869007178461644828127+10443 86198.8009740771973947571101587+10444 86208.0547570070164142223857103+10445 86217.3086356810070803832618404+10446 86226.5626100900033244260910572+10447 86235.8166802248408323965250881+10448 86245.0708460763570446956069676+10449 86254.3251076353911555760560363+10450 86263.5794648927841126387457581+10451 86272.8339178393786163293742646+10452 86282.0884664660191194353275335+10453 86291.3431107635518265827351094+10454 86300.5978507228246937337182743+10455 86309.8526863346874276838305769+10456 86319.107617589991485559690627+10457 86328.3626444795900743168070648+10458 86337.6177669943381502375956124+10459 86346.872985125092418429588115+10460 86356.1282988627113323238334818+10461 86365.3837081980550931734904327+10462 86374.6392131219856495526119616+10463 86383.8948136253666968551214216+10464 86393.1505096990636767939801439+10465 86402.4063013339437769005464962+10466 86411.6621885208759300241262908+10467 86420.9181712507308138317144496+10468 86430.1742495143808503079278363+10469 86439.4304233027002052551291632+10470 86448.6866926065647877937418814+10471 86457.9430574168522498627559643+10472 86467.1995177244419857204244916+10473 86476.4560735202151314451509446+10474 86485.7127247950545644365671202+10475 86494.9694715398449029168015728+10476 86504.2263137454725054319384944+10477 86513.4832514028254703536669404+10478 86522.7402845027936353811203118+10479 86531.9974130362685770429060009+10480 86541.2546369941436101993251127+10481 86550.5119563673137875447821686+10482 86559.7693711466758991103847031+10483 86569.026881323128471766732663+10484 86578.284486887571768726897518+10485 86587.5421878309077890495909927+10486 86596.7999841440402671425233291+10487 86606.05787581787467226595099+10488 86615.3158628433182080364137118+10489 86624.5739452112798119306608181+10490 86633.8321229126701547897667019+10491 86643.0903959384016403234353877+10492 86652.3487642793884046144940836+10493 86661.6072279265463156235756313+10494 86670.8657868707929726939897666+10495 86680.1244411030477060567830987+10496 86689.383190614231576335987719+10497 86698.6420353952673740540583495+10498 86707.9009754370796191374979407+10499 86717.1600107305945604226716301+10500 86726.4191412667401751618089703+10501 86735.6783670364461685291943385+10502 86744.9376880306439731275454366+10503 86754.1971042402667484945797925+10504 86763.4566156562493806097691746+10505 86772.7162222695284814012818274+10506 86781.9759240710423882531124417+10507 86791.2357210517311635123997675+10508 86800.4956132025365939969317819+10509 86809.7556005144021905028383229+10510 86819.0156829782731873124710985+10511 86828.2758605850965417024709827+10512 86837.5361333258209334520225105+10513 86846.7965011913967643512954807+10514 86856.056964172776157710073579+10515 86865.317522260912957866569932+10516 86874.5781754467627296964295034+10517 86883.8389237212827581219182433+10518 86893.0997670754320476212989019+10519 86902.3607055001713217383934191+10520 86911.6217389864630225923318011+10521 86920.8828675252713103874873951+10522 86930.1440911075620629235984744+10523 86939.4054097243028751060760444+10524 86948.6668233664630584564977815+10525 86957.9283320250136406232880164+10526 86967.1899356909273648925836735+10527 86976.4516343551786896992860779+10528 86985.7134280087437881382985419+10529 86994.9753166426005474759496426+10530 87004.2373002477285686616021025+10531 87013.4993788151091658394471849+10532 87022.7615523357253658604845168+10533 87032.0238208005619077946872493+10534 87041.2861842006052424433524698+10535 87050.5486425268435318516367771+10536 87059.8111957702666488212769309+10537 87069.0738439218661764234954886+10538 87078.3365869726354075120913421+10539 87087.5994249135693442367150657+10540 87096.8623577356646975563289883+10541 87106.1253854299198867528519013+10542 87115.3885079873350389449883166+10543 87124.6517253989119886022421848+10544 87133.9150376556542770591149871+10545 87143.1784447485671520294881148+10546 87152.4419466686575671211894462+10547 87161.7055434069341813507440367+10548 87170.9692349544073586583088317+10549 87180.2330213020891674227913181+10550 87189.4969024409933799771520252+10551 87198.7608783621354721238907879+10552 87208.0249490565326226507166869+10553 87217.2891145152037128464015764+10554 87226.5533747291693260168171144+10555 87235.8177296894517470011552076+10556 87245.0821793870749616883317841+10557 87254.3467238130646565335738072+10558 87263.6113629584482180751894442+10559 87272.8760968142547324515213016+10560 87282.1409253715149849180826425+10561 87291.4058486212614593648764973+10562 87300.6708665545283378338975828+10563 87309.9359791623515000368169418+10564 87319.2011864357685228728492184+10565 87328.4664883658186799468024802+10566 87337.7318849435429410873105033+10567 87346.9973761599839718652474327+10568 87356.2629620061861331123247318+10569 87365.5286424731954804398703345+10570 87374.794417552059763757789915+10571 87384.0602872338284267937101873+10572 87393.3262515095526066123041496+10573 87402.5923103702851331347981877+10574 87411.8584638070805286586609499+10575 87421.1247118109950073774739098+10576 87430.3910543730864749009835278+10577 87439.6574914844145277753349299+10578 87448.9240231360404530034870132+10579 87458.190649319027227565808896+10580 87467.4573700244395179408576252+10581 87476.7241852433436796263370554+10582 87485.9910949668077566602378142+10583 87495.2580991859014811421582686+10584 87504.5251978916962727548064061+10585 87513.7923910752652382856825464+10586 87523.059678727683171148942796+10587 87532.3270608400265509074431637+10588 87541.5945374033735427949642476+10589 87550.8621084088039972386164127+10590 87560.1297738473994493814253695+10591 87569.3975337102431186050980724+10592 87578.6653879884199080529688498+10593 87587.9333366730164041531256827+10594 87597.2013797551208761417165453+10595 87606.4695172258232755864357245+10596 87615.7377490762152359101900308+10597 87625.0060752973900719149448189+10598 87634.2744958804427793057497295+10599 87643.5430108164700342149440714+10600 87652.8116200965701927265417555+10601 87662.0803237118432904007956992+10602 87671.3491216533910417989416135+10603 87680.6180139123168400081210916+10604 87689.8870004797257561664839107+10605 87699.1560813467245389884694663+10606 87708.4252565044216142902672511+10607 87717.6945259439270845154562968+10608 87726.9638896563527282608234926+10609 87736.2333476328119998023606972+10610 87745.5028998644200286214405597+10611 87754.7725463422936189311709646+10612 87764.0422870575512492029280182+10613 87773.3121220013130716930674902+10614 87782.5820511647009119698146287+10615 87791.8520745388382684403322627+10616 87801.1221921148503118779671091+10617 87810.3924038838638849496742004+10618 87819.6627098370075017436193482+10619 87828.93310996541134729695956+10620 87838.2036042602072771238013244+10621 87847.4741927125288167433366818+10622 87856.7448753135111612081569961+10623 87866.0156520542911746327443445+10624 87875.2865229260073897221404416+10625 87884.5574879198000073007930135+10626 87893.82854702681089584157954+10627 87903.0997002381835909950082796+10628 87912.3709475450632951185964951+10629 87921.6422889385968768064257964+10630 87930.9137244099328704188745167+10631 87940.1852539502214756125270383+10632 87949.4568775506145568702599872+10633 87958.7285952022656430315052097+10634 87968.0004068963299268226894515+10635 87977.2723126239642643878506531+10636 87986.5443123763271748194307811+10637 87995.8164061445788396892451104+10638 88005.0885939198811025796278756+10639 88014.360875693397468614754208+10640 88023.633251456293103992138276+10641 88032.9057211997348355143075454+10642 88042.1782849148911501206530774+10643 88051.4509425929321944194557814+10644 88060.7236942250297742200885395+10645 88069.9965398023573540653941214+10646 88079.2694793160900567642388051+10647 88088.5425127574046629242416232+10648 88097.8156401174796104846791503+10649 88107.0888613874949942495657503+10650 88116.3621765586325654209092008+10651 88125.6355856220757311321416125+10652 88134.9090885690095539817255605+10653 88144.1826853906207515669353469+10654 88153.4563760780976960178133105+10655 88162.7301606226304135313011033+10656 88172.00403901541058390554585+10657 88181.2780112476315400743811104+10658 88190.5520773104882676419825602+10659 88199.8262371951774044176983111+10660 88209.1004908928972399510537855+10661 88218.3748383948477150669310662+10662 88227.6492796922304214009226378+10663 88236.9238147762486009348594387+10664 88246.1984436381071455325131419+10665 88255.4731662690125964754725825+10666 88264.7479826601731439991942509+10667 88274.0228928027986268292267697+10668 88283.2978966881005317176092727+10669 88292.572994307291992979443605+10670 88301.8481856515877920296402616+10671 88311.1234707122043569198379851+10672 88320.3988494803597618754969384+10673 88329.6743219472737268331653741+10674 88338.9498881041676169779197164+10675 88348.2255479422644422809779769+10676 88357.501301452788857037486421+10677 88366.7771486269671594044794051+10678 88376.053089456027290939012303+10679 88385.3291239311988361364674404+10680 88394.6052520437130219690329569+10681 88403.8814737848027174243545138+10682 88413.1577891457024330443597679+10683 88422.434198117648320464255529+10684 88431.7107006918781719516975219+10685 88440.9872968596314199461326708+10686 88450.2639866121491365983138257+10687 88459.5407699406740333099868511+10688 88468.8176468364504602737499946+10689 88478.0946172907244060130854564+10690 88487.3716812947434969225630784+10691 88496.6488388397569968082160722+10692 88505.9260899170158064280887062+10693 88515.2034345177724630329558711+10694 88524.4808726332811399072144431+10695 88533.7584042547976459099463648+10696 88543.0360293735794250161533638+10697 88552.3137479808855558581632283+10698 88561.591560067976751267207559+10699 88570.8694656261153578151709194+10700 88580.1474646465653553565113012+10701 88589.425557120592356570351827+10702 88598.7037430394636065027436105+10703 88607.9820223944479821090996917+10704 88617.2603951768159917967999707+10705 88626.5388613778397749679670568+10706 88635.8174209887931015624129564+10707 88645.0960740009513716007565163+10708 88654.3748204055916147277115467+10709 88663.6536601939924897555455399+10710 88672.9325933574342842077089092+10711 88682.2116198871989138626346651+10712 88691.4907397745699222977084512+10713 88700.7699530108324804334088596+10714 88710.0492595872733860776179461+10715 88719.3286594951810634701018666+10716 88728.6081527258455628271615542+10717 88737.8877392705585598864533586+10718 88747.1674191206133554519795685+10719 88756.4471922673048749392487362+10720 88765.7270587019296679206057281+10721 88775.007018415785907670731419+10722 88784.2870714001733907123119525+10723 88793.5672176463935363618774889+10724 88802.8474571457493862758103604+10725 88812.1277898895456039965225553+10726 88821.4082158690884744988024521+10727 88830.6887350756859037363307248+10728 88839.9693475006474181883653399+10729 88849.2500531352841644065955676+10730 88858.5308519709089085621649267+10731 88867.8117439988360359928629863+10732 88877.0927292103815507504859438+10733 88886.3738075968630751483659021+10734 88895.654979149599849309068767+10735 88904.9362438599127307122606853+10736 88914.2176017191241937427429464+10737 88923.4990527185583292386552688+10738 88932.7805968495408440398473915+10739 88942.0622341033990605364188944+10740 88951.3439644714619162174271676+10741 88960.6257879450599632197634518+10742 88969.9077045155253678771968713+10743 88979.1897141741919102695863827+10744 88988.4718169123949837722605592+10745 88997.7540127214715946055651339+10746 89007.036301592760361384578223+10747 89016.3186835176015146689931522+10748 89025.6011584873368965131688069+10749 89034.8837264933099600163474287+10750 89044.1663875268657688730397813+10751 89053.4491415793509969235776066+10752 89062.7319886421139277048332937+10753 89072.0149287065044540011066833+10754 89081.2979617638740773951789301+10755 89090.5810878055759078195333435+10756 89099.8643068229646631077431324+10757 89109.1476188073966685460259736+10758 89118.4310237502298564249653269+10759 89127.7145216428237655913984208+10760 89136.9981124765395410004708297+10761 89146.2817962427399332678575658+10762 89155.5655729327892982221506088+10763 89164.8494425380535964574127951+10764 89174.1334050499003928858979901+10765 89183.4174604596988562909374659+10766 89192.7016087588197588799924077+10767 89201.9858499386354758378724702+10768 89211.2701839905199848801203098+10769 89220.5546109058488658065620125+10770 89229.8391306759993000550233421+10771 89239.1237432923500702552117316+10772 89248.4084487462815597827639406+10773 89257.6932470291757523134593017+10774 89266.9781381324162313775984796+10775 89276.263122047388179914547665+10776 89285.5481987654783798274481284+10777 89294.8333682780752115380910546+10778 89304.1186305765686535419575835+10779 89313.4039856523502819634239794+10780 89322.689433496813270111131852+10781 89331.9749741013523880335233538+10782 89341.2606074573640020745412756+10783 89350.5463335562460744294939652+10784 89359.8321523893981627010849924+10785 89369.118063948221419455607483+10786 89378.4040682241185917793030473+10787 89387.6901652084940208348852249+10788 89396.9763548927536414182273707+10789 89406.2626372683049815152149059+10790 89415.5490123265571618587618571+10791 89424.8354800589208954859916076+10792 89434.1220404568084872955817859+10793 89443.4086935116338336052732136+10794 89452.6954392148124217095428381+10795 89461.9822775577613294374405728+10796 89471.2692085318992247105899712+10797 89480.5562321286463651013526559+10798 89489.8433483394245973911564294+10799 89499.130557155657357128986989+10800 89508.4178585687696681900431719+10801 89517.7052525701881423345556525+10802 89526.9927391513409787667690185+10803 89536.2803183036579636940871487+10804 89545.5679900185704698863818175+10805 89554.8557542875114562354644502+10806 89564.1436111019154673147209546+10807 89573.4315604532186329389095517+10808 89582.7196023328586677241215319+10809 89592.0077367322748706479048601+10810 89601.295963642908124609550555+10811 89610.5842830562008959905417673+10812 89619.8726949635972342151654805+10813 89629.1611993565427713112867613+10814 89638.4497962264847214712854821+10815 89647.7384855648718806131554418+10816 89657.0272673631546259417658094+10817 89666.316141612784915510284816+10818 89675.6051083052162877817656191+10819 89684.894167431903861190894265+10820 89694.1833189843043337058996742+10821 89703.4725629538759823906255752+10822 89712.7618993320786629667643117+10823 89722.0513281103738093762524473+10824 89731.3408492802244333438280959+10825 89740.6304628330951239397498991+10826 89749.9201687604520471426775799+10827 89759.2099670537629454027139947+10828 89768.4998577044971372046086117+10829 89777.7898407041255166311223392+10830 89787.0799160441205529265536308+10831 89796.3700837159562900604257914+10832 89805.6603437111083462913354118+10833 89814.9506960210539137309618551+10834 89824.2411406372717579082377224+10835 89833.5316775512422173336802227+10836 89842.8223067544472030638833726+10837 89852.1130282383701982661709528+10838 89861.403841994496257783410145+10839 89870.6947480143120076989857772+10840 89879.985746289305644901935103+10841 89889.2768368109669366522430389+10842 89898.5680195707872201462977887+10843 89907.8592945602594020825067779+10844 89917.1506617708779582270728272+10845 89926.4421211941389329799304883+10846 89935.7336728215399389408424706+10847 89945.0253166445801564756560835+10848 89954.3170526547603332827196208+10849 89963.6088808435827839594586145+10850 89972.9008012025513895691118823+10851 89982.1928137231715972076272979+10852 89991.4849183969504195707172076+10853 90000.7771152153964345210734218+10854 90010.0694041700197846557417069+10855 90019.3617852523321768736557044+10856 90028.654258453846881943330204+10857 90037.9468237660787340707136962+10858 90047.239481180544130467200133+10859 90056.5322306887610309177998212+10860 90065.825072282248957349469377+10861 90075.1180059525289933996006673+10862 90084.4110316911237839846686648+10863 90093.7041494895575348690381444+10864 90102.9973593393560122339291473+10865 90112.2906612320465422465411391+10866 90121.5840551591580106293357906+10867 90130.8775411122208622294783063+10868 90140.171119082767100588437229+10869 90149.4647890623302875117426473+10870 90158.7585510424455426389027328+10871 90168.0524050146495430134785345+10872 90177.3463509704805226533169576+10873 90186.6403889014782721209418538+10874 90195.9345187991841380941031504+10875 90205.2287406551410229364839457+10876 90214.5230544608933842685654979+10877 90223.817460207987234538650035+10878 90233.1119578879701405940413135+10879 90242.4065474923912232523828524+10880 90251.7012290128011568731537712+10881 90260.9960024407521689293221587+10882 90270.2908677677980395791559005+10883 90279.5858249854941012381908931+10884 90288.8808740853972381513565716+10885 90298.1760150590658859652586792+10886 90307.4712478980600313006192069+10887 90316.7665725939412113248734295+10888 90326.0619891382725133249239677+10889 90335.3574975226185742800518025+10890 90344.6530977385455804349841716+10891 90353.9487897776212668731192738+10892 90363.244573631414917089907711+10893 90372.5404492914973625663905953+10894 90381.8364167494409823428942487+10895 90391.1324759968197025928814251+10896 90400.4286270252089961969589804+10897 90409.7248698261858823170419216+10898 90419.0212043913289259706737608+10899 90428.3176307122182376055031044+10900 90437.6141487804354726739164038+10901 90446.9107585875638312078267976+10902 90456.2074601251880573936189734+10903 90465.5042533848944391472499764+10904 90474.8011383582708076895058954+10905 90484.098115036906537121414353+10906 90493.3951834123925439998127286+10907 90502.6923434763212869130720449+10908 90511.9895952202867660569764431+10909 90521.2869386358845228107581791+10910 90530.5843737147116393132880663+10911 90539.8819004483667380394212965+10912 90549.179518828449981376498565+10913 90558.4772288465630712010024313+10914 90567.775030494309248455368842+10915 90577.0729237632932927249537474+10916 90586.3709086451215218151547374+10917 90595.6689851314017913286876291+10918 90604.9671532137434942430179326+10919 90614.2654128837575604879471262+10920 90623.5637641330564565233536673+10921 90632.8622069532541849170886716+10922 90642.1607413359662839230261871+10923 90651.4593672728098270592679927+10924 90660.7580847554034226865028524+10925 90670.0568937753672135865201513+10926 90679.3557943243228765408778461+10927 90688.6547863938936219097246568+10928 90697.9538699757041932107764305+10929 90707.2530450613808666984466061+10930 90716.5523116425514509431307105+10931 90725.8516697108452864106448136+10932 90735.1511192578932450418178745+10933 90744.450660275327729832237906+10934 90753.750292754782674412151889+10935 90763.050016687893542626519365+10936 90772.3498320662973281152196375+10937 90781.6497388816325538934125117+10938 90790.9497371255392719320525016+10939 90800.2498267896590627385564363+10940 90809.5500078656350349376243925+10941 90818.8502803451118248522138862+10942 90828.1506442197355960846672512+10943 90837.4510994811540390979921356+10944 90846.7516461210163707972950463+10945 90856.0522841309733341113678704+10946 90865.3530135026771975744273062+10947 90874.6538342277817549080071304+10948 90883.9547462979423246030032348+10949 90893.2557497048157495018713616+10950 90902.5568444400603963809774664+10951 90911.858030495336155533100642+10952 90921.1593078623044403500885297+10953 90930.4606765326281869056651522+10954 90939.7621364979718535383910957+10955 90949.0636877500014204347759731+10956 90958.3653302803843892125430984+10957 90967.6670640807897825040463028+10958 90976.9688891428881435398388234+10959 90986.2708054583515357323941944+10960 90995.5728130188535422599790723+10961 91004.8749118160692656506779255+10962 91014.1771018416753273665695181+10963 91023.4793830873498673880551208+10964 91032.7817555447725437983383774+10965 91042.0842192056245323680567592+10966 91051.386774061588526140064537+10967 91060.6894201043487350143672041+10968 91069.9921573255908853332072771+10969 91079.2949857170022194663014098+10970 91088.5979052702714953962287487+10971 91097.9009159770889863039704611+10972 91107.204017829146480154600369+10973 91116.5072108181372792831266174+10974 91125.8104949357561999804843095+10975 91135.1138701736995720796790403+10976 91144.4173365236652385420812591+10977 91153.7208939773525550438713926+10978 91163.0245425264623895626356594+10979 91172.3282821626971219641125085+10980 91181.6321128777606435890896117+10981 91190.9360346633583568404513421+10982 91200.2400475111971747703766709+10983 91209.5441514129855206676874121+10984 91218.8483463604333276453467485+10985 91228.1526323452520382281079702+10986 91237.4570093591546039403133558+10987 91246.7614773938554848938431305+10988 91256.0660364410706493762144301+10989 91265.3706864925175734388302051+10990 91274.6754275399152404853779945+10991 91283.9802595749841408603785031+10992 91293.2851825894462714378839124+10993 91302.5901965750251352103258584+10994 91311.8953015234457408775130069+10995 91321.2004974264346024357781602+10996 91330.5057842757197387672748245+10997 91339.8111620630306732294231729+10998 91349.1166307800984332445053336+10999 91358.4221904186555498894099374+11000 91367.7278409704360574855258553+11001 91377.0335824271754931887850591+11002 91386.3394147806108965798545364+11003 91395.6453380224808092544771942+11004 91404.9513521445252744139616804+11005 91414.2574571384858364558210586+11006 91423.5636529961055405645602662+11007 91432.8699397091289323026122898+11008 91442.1763172693020572014229893+11009 91451.482785668372460352684504+11010 91460.7893448980891859997171726+11011 91470.0959949502027771289998999+11012 91479.402735816465275061848903+11013 91488.7095674886302190462447687+11014 91498.0164899584526458488077568+11015 91507.3235032176890893469212796+11016 91516.6306072580975801210034915+11017 91525.9378020714376450469269222+11018 91535.2450876494703068885860845+11019 91544.5524639839580838906129915+11020 91553.8599310666649893712405146+11021 91563.1674888893565313153135157+11022 91572.4751374437997119674476874+11023 91581.7828767217630274253360326+11024 91591.0907067150164672332029176+11025 91600.3986274153315139754056323+11026 91609.7066388144811428701833883+11027 91619.0147409042398213635536916+11028 91628.3229336763835087233560191+11029 91637.6312171226896556334427357+11030 91646.9395912349372037880171824+11031 91656.2480560049065854861188713+11032 91665.5566114243797232262557177+11033 91674.8652574851400293011832463+11034 91684.1739941789724053928307015+11035 91693.4828214976632421673739977+11036 91702.7917394330004188704554418+11037 91712.1007479767733029225501616+11038 91721.4098471207727495144791741+11039 91730.7190368567911012030690265+11040 91740.0283171766221875069579445+11041 91749.3376880720613245025484207+11042 91758.6471495349053144201061768+11043 91767.9567015569524452400054348+11044 91777.2663441300024902891204278+11045 91786.5760772458567078373630885+11046 91795.8859008963178406943668449+11047 91805.1958150731901158063164602+11048 91814.5058197682792438529238497+11049 91823.8159149733924188445498078+11050 91833.1261006803383177194715807+11051 91842.4363768809270999412962175+11052 91851.7467435669704070965196348+11053 91861.0572007302813624922313275+11054 91870.3677483626745707539646617+11055 91879.6783864559661174236926818+11056 91888.9891150019735685579693684+11057 91898.2999339925159703262162785+11058 91907.6108434194138486091545049+11059 91916.9218432744892085973818871+11060 91926.2329335495655343900954089+11061 91935.5441142364677885939587175+11062 91944.8553853270224119221146971+11063 91954.1667468130573227933430331+11064 91963.4781986864019169313626999+11065 91972.7897409388870669642793082+11066 91982.101373562345122024177245+11067 91991.4130965486099073468565419+11068 92000.7249098895167238717144058+11069 92010.0368135769023478417713466+11070 92019.3488076026050304038418371+11071 92028.6608919584644972088494395+11072 92037.9730666363219480122863326+11073 92047.2853316280200562748171761+11074 92056.5976869254029687630272452+11075 92065.9101325203163051503147711+11076 92075.2226684046071576179274226+11077 92084.5352945701240904561428627+11078 92093.8480110087171396655933168+11079 92103.1608177122378125587340855+11080 92112.4737146725390873614559388+11081 92121.7867018814754128148413256+11082 92131.0997793309027077770643345+11083 92140.4129470126783608254343402+11084 92149.7262049186612298585832714+11085 92159.0395530407116416987964349+11086 92168.3529913706913916944868311+11087 92177.6665199004637433228128975+11088 92186.9801386218934277924396127+11089 92196.2938475268466436464429001+11090 92205.6076466071910563653572625+11091 92214.921535854795797970366587+11092 92224.2355152615314666266380523+11093 92233.5495848192701262467990764+11094 92242.8637445198853060945572388+11095 92252.177994355252000388463113+11096 92261.4923343172466679058159457+11097 92270.8067643977472315867121168+11098 92280.1212845886330781382363176+11099 92289.4358948817850576387953821+11100 92298.7505952690854831425947059+11101 92308.0653857424181302842571916+11102 92317.380266293668236883584653+11103 92326.6952369147225025504616164+11104 92336.0102975974690882899014539+11105 92345.3254483337976161072347842+11106 92354.6406891155991686134400785+11107 92363.9560199347662886306164051+11108 92373.2714407831929787975982508+11109 92382.5869516527747011757123545+11110 92391.9025525354083768546764878+11111 92401.2182434229923855586401212+11112 92410.53402430742656525236691+11113 92419.8498951806122117475589366+11114 92429.1658560344520783093226461+11115 92438.4819068608503752627764108+11116 92447.7980476517127695997996598+11117 92457.1142783989463845859235107+11118 92466.4305990944597993673628392+11119 92475.7470097301630485781897226+11120 92485.0635102979676219476481953+11121 92494.3801007897864639076102507+11122 92503.696781197533973200173027+11123 92513.0135515131260024853971141+11124 92522.3304117284798579491859164+11125 92531.6473618355142989113060099+11126 92540.9644018261495374335484294+11127 92550.2815316923072379280308219+11128 92559.5987514259105167656404046+11129 92568.9160610188839418846176618+11130 92578.2334604631535323992807204+11131 92587.5509497506467582088903379+11132 92596.8685288732925396066554421+11133 92606.1861978230212468888791577+11134 92615.5039565917646999642452575+11135 92624.8218051714561679632449755+11136 92634.1397435540303688477441176+11137 92643.4577717314234690206904085+11138 92652.7758896955730829359610105+11139 92662.094097438418272708350152+11140 92671.4123949518995477236968025+11141 92680.7307822279588642491523318+11142 92690.0492592585396250435880898+11143 92699.3678260355866789681428443+11144 92708.6864825510463205969100147+11145 92718.0052287968662898277646381+11146 92727.3240647649957714933300055+11147 92736.6429904473853949720839053+11148 92745.9620058359872337996044115+11149 92755.2811109227548052799551544+11150 92764.6003056996430700972100104+11151 92773.9195901586084319271171492+11152 92783.2389642916087370489023757+11153 92792.5584280906032739572117037+11154 92801.8779815475527729741930995+11155 92811.1976246544194058617173333+11156 92820.5173574031667854337378747+11157 92829.837179785759965168789772+11158 92839.1570917941654388226274507+11159 92848.4770934203511400410013711+11160 92857.7971846562864419725734816+11161 92867.1173654939421568819714055+11162 92876.4376359252905357629812999+11163 92885.7579959423052679518793233+11164 92895.0784455369614807409016518+11165 92904.3989847012357389918529795+11166 92913.719613427106044749853443+11167 92923.0403317065518368572239068+11168 92932.361139531553990567509549+11169 92941.6820368940948171596416829+11170 92951.0030237861580635522377562+11171 92960.3241001997289119180394624+11172 92969.6452661267939792984889048+11173 92978.9665215593413172184427509+11174 92988.287866489360411301024315+11175 92997.6093009088421808826135072+11176 93006.9308248097789786279745879+11177 93016.2524381841645901455216658+11178 93025.5741410239942336027218769+11179 93034.8959333212645593416361848+11180 93044.2178150679736494945977383+11181 93053.5397862561210176000277277+11182 93062.8618468777076082183886752+11183 93072.1839969247357965482751006+11184 93081.5062363892093880426414992+11185 93090.8285652631336180251675712+11186 93100.1509835385151513067606414+11187 93109.4734912073620818021952069+11188 93118.7960882616839321468895533+11189 93128.1187746934916533138193761+11190 93137.4415504947976242305683474+11191 93146.7644156576156513965155666+11192 93156.0873701739609685001598333+11193 93165.4104140358502360365806821+11194 93174.7335472353015409250361173+11195 93184.0567697643343961266969874+11196 93193.3800816149697402625179377+11197 93202.7034827792299372312448801+11198 93212.0269732491387758275589197+11199 93221.3505530167214693603566761+11200 93230.6742220740046552711669403+11201 93239.9979804130163947527036039+11202 93249.3218280257861723675548028+11203 93258.6457649043448956670082113+11204 93267.9697910407248948100124287+11205 93277.2939064269599221822743959+11206 93286.6181110550851520154927823+11207 93295.9424049171371800067272811+11208 93305.2667880051540229379037539+11209 93314.5912603111751182954551635+11210 93323.9158218272413238900982328+11211 93333.2404725453949174767457719+11212 93342.5652124576795963745546113+11213 93351.8900415561404770871090802+11214 93361.2149598328240949227399711+11215 93370.5399672797784036149789291+11216 93379.865063889052774943148206+11217 93389.1902496526979983530857185+11218 93398.5155245627662805780053507+11219 93407.8408886113112452594924401+11220 93417.1663417903879325686343871+11221 93426.4918840920527988272863282+11222 93435.8175155083637161294718117+11223 93445.1432360313799719629184167+11224 93454.469045653162268830728255+11225 93463.7949443657727238731832954+11226 93473.1209321612748684896854513+11227 93482.4470090317336479608313701+11228 93491.7731749692154210706218661+11229 93501.0994299657879597288059361+11230 93510.425774013520448593359297+11231 93519.7522071044834846930973874+11232 93529.0787292307490770504227711+11233 93538.4053403843906463042068854+11234 93547.732040557483024332806071+11235 93557.0588297421024538772118271+11236 93566.3857079303265881643352297+11237 93575.7126751142344905304254539+11238 93585.0397312859066340446223417+11239 93594.366876437424901132642954+11240 93603.6941105608725832006020481+11241 93613.0214336483343802589664207+11242 93622.348845691896400546643058+11243 93631.6763466836461601552010315+11244 93641.0039366156725826532270816+11245 93650.3316154800659987108148287+11246 93659.6593832689181457241875532+11247 93668.9872399743221674404544837+11248 93678.3151855883726135825005352+11249 93687.6432201031654394740094384+11250 93696.9713435107980056646201983+11251 93706.2995558033690775552168264+11252 93715.6278569729788250233512843+11253 93724.9562470117288220487995811+11254 93734.2847259117220463392509646+11255 93743.6132936650628789561301487+11256 93752.941950263857103940552515+11257 93762.2706957002119079394122331+11258 93771.5995299662358798316032372+11259 93780.9284530540390103543730031+11260 93790.2574649557326917298090636+11261 93799.5865656634297172914582063+11262 93808.915755169244281111078292+11263 93818.2450334652919776255226376+11264 93827.5744005436898012637569024+11265 93836.9038563965561460740084204+11266 93846.233401016010805351047919+11267 93855.5630343941749712636035662+11268 93864.8927565231712344819072862+11269 93874.2225673951235838053732865+11270 93883.5524670021574057904087363+11271 93892.8824553363994843783565382+11272 93902.2125323899780005235701351+11273 93911.5426981550225318216202923+11274 93920.8729526236640521376337983+11275 93930.203295788034931234764024+11276 93939.533727640268934402793282+11277 93948.8642481725012220868669297+11278 93958.1948573768683495163591542+11279 93967.5255552455082663338703842+11280 93976.8563417705603162243562679+11281 93986.1872169441652365443881602+11282 93995.5181807584651579515450598+11283 94004.8492332056036040339369392+11284 94014.180374277725490939859408+11285 94023.5116039669771270075796521+11286 94032.8429222655062123952535909+11287 94042.1743291654618387109741936+11288 94051.5058246589944886429508968+11289 94060.8374087382560355898200657+11290 94070.1690813953997432910864405+11291 94079.5008426225802654576955095+11292 94088.8326924119536454027367529+11293 94098.1646307556773156722776961+11294 94107.4966576459100976763287177+11295 94116.8287730748122013199385527+11296 94126.1609770345452246344204334+11297 94135.49326951727215340870881+11298 94144.8256505151573608208465933+11299 94154.158120020366607069602862+11300 94163.4906780250670390062209764+11301 94172.8233245214271897662970408+11302 94182.1560595016169784017886575+11303 94191.4888829578077095131539138+11304 94200.8217948821720728816205459+11305 94210.15479526688414310158522+11306 94219.4878841041193792131428754+11307 94228.8210613860546243347460699+11308 94238.1543271048681052959942721+11309 94247.4876812527394322705530408+11310 94256.821123821849598409203037+11311 94266.1546548043809794730188077+11312 94275.4882741925173334666772872+11313 94284.8219819784438002718959568+11314 94294.1557781543469012810006061+11315 94303.4896627124145390306226387+11316 94312.8236356448359968355258643+11317 94322.1576969438019384225627222+11318 94331.4918466015044075647598756+11319 94340.8260846101368277155331227+11320 94350.1604109618940016430315655+11321 94359.4948256489721110646109807+11322 94368.8293286635687162814363335+11323 94378.1639199978827558132133804+11324 94387.4985996441145460330493004+11325 94396.8333675944657808024423006+11326 94406.1682238411395311064001379+11327 94415.5031683763402446886874999+11328 94424.8382011922737456872021882+11329 94434.1733222811472342694800479+11330 94443.5085316351692862683285853+11331 94452.843829246549852817589218+11332 94462.1792151075002599880281004+11333 94471.5146892102332084233554676+11334 94480.8502515469627729763734412+11335 94490.1859021099044023452522401+11336 94499.5216408912749187099347404+11337 94508.8574678832925173686693266+11338 94518.1933830781767663746709788+11339 94527.5293864681486061729105383+11340 94536.8654780454303492370320955+11341 94546.2016578022456797063984442+11342 94555.5379257308196530232645443+11343 94564.8742818233786955700789382+11344 94574.2107260721506043069130638+11345 94583.5472584693645464090184067+11346 94592.8838790072510589045114375+11347 94602.2205876780420483121862757+11348 94611.5573844739707902794550251+11349 94620.8942693872719292204157247+11350 94630.231242410181477954047857+11351 94639.5683035349368173425353608+11352 94648.9054527537766959297170885+11353 94658.2426900589412295796646551+11354 94667.5800154426719011153876206+11355 94676.917428897211559957665951+11356 94686.2549304148044217640097006+11357 94695.5925199876960680677458615+11358 94704.9301976081334459172323222+11359 94714.2679632683648675151988804+11360 94723.6058169606400098582152549+11361 94732.9437586772099143762860385+11362 94742.2817884103269865725725383+11363 94751.6199061522449956632414463+11364 94760.9581118952190742174402844+11365 94770.2964056315057177973995693+11366 94779.6347873533627845986616398+11367 94788.9732570530494950904360917+11368 94798.3118147228264316560817656+11369 94807.6504603549555382337152294+11370 94816.9891939417001199569457027+11371 94826.3280154753248427957363651+11372 94835.6669249480957331973919945+11373 94845.0059223522801777276728796+11374 94854.3450076801469227120349495+11375 94863.6841809239660738769960677+11376 94873.0234420760090959916284322+11377 94882.3627911285488125091770285+11378 94891.7022280738594052088040786+11379 94901.0417529042164138374594315+11380 94910.3813656118967357518768399+11381 94919.7210661891786255606960665+11382 94929.0608546283416947667107667+11383 94938.4007309216669114092420906+11384 94947.7406950614365997066379503+11385 94957.0807470399344396988978965+11386 94966.4208868494454668904235499+11387 94975.7611144822560718928945313+11388 94985.1014299306540000682698371+11389 94994.4418331869283511719146026+11390 95003.7823242433695789958522007+11391 95013.1229030922694910121416184+11392 95022.4635697259212480163800588+11393 95031.804324136619363771330711+11394 95041.1451663166597046506756351+11395 95050.4860962583394892828937061+11396 95059.8271139539572881952635624+11397 95069.1682193958130234579915036+11398 95078.5094125762079683284642841+11399 95087.8506934874447468956267449+11400 95097.1920621218273337244842325+11401 95106.5335184716610535007297476+11402 95115.8750625292525806754957688+11403 95125.2166942869099391102306991+11404 95134.5584137369425017216998773+11405 95143.9002208716609901271111027+11406 95153.2421156833774742893646159+11407 95162.5840981644053721624274832+11408 95171.9261683070594493368323289+11409 95181.2683261036558186853003612+11410 95190.6105715465119400084886377+11411 95199.9529046279466196808615158+11412 95209.2953253402800102966862327+11413 95218.6378336758336103161525624+11414 95227.9804296269302637116164941+11415 95237.3231131858941596139678774+11416 95246.6658843450508319591219814+11417 95256.0087430967271591346349118+11418 95265.3516894332513636264428331+11419 95274.694723346953011665724941+11420 95284.0378448301630128758901308+11421 95293.3810538752136199196873076+11422 95302.7243504744384281464392852+11423 95312.0677346201723752394002174+11424 95321.4112063047517408632365106+11425 95330.7547655205141463116311607+11426 95340.0984122597985541550114622+11427 95349.4421465149452678884000351+11428 95358.7859682782959315793891154+11429 95368.1298775421935295162380549+11430 95377.4738742989823858560939776+11431 95386.8179585410081642733355377+11432 95396.1621302606178676080397257+11433 95405.5063894501598375145716689+11434 95414.8507361019837541102973728+11435 95424.1951702084406356244193485+11436 95433.5396917618828380469350743+11437 95442.8843007546640547777182354+11438 95452.2289971791393162757226902+11439 95461.5737810276649897083091084+11440 95470.9186522925987786006942272+11441 95480.263610966299722485522673+11442 95489.6086570411281965525612936+11443 95498.9537905094459112985159485+11444 95508.299011363615912176970704+11445 95517.6443195960025792484493778+11446 95526.9897151989716268305993819+11447 95536.3351981648901031484978093+11448 95545.6807684861263899850797105+11449 95555.0264261550502023316885081+11450 95564.3721711640325880387484945+11451 95573.7180035054459274665593602+11452 95583.0639231716639331362126994+11453 95592.4099301550616493806304396+11454 95601.756024448015451995725142+11455 95611.1022060429030478916821189+11456 95620.4484749321034747443633161+11457 95629.794831107997100646832906+11458 95639.1412745629656237610045393+11459 95648.4878052893920719694102012+11460 95657.83442327966080252709062+11461 95667.1811285261575017136071741+11462 95676.5279210212691844851752455+11463 95685.8748007573841941269189658+11464 95695.2217677268922019052473026+11465 95704.5688219221842067203514323+11466 95713.9159633356525347588233478+11467 95723.2631919596908391463956473+11468 95732.6105077866940996008024513+11469 95741.9579108090586220847613957+11470 95751.3054010191820384590766471+11471 95760.6529784094633061358628895+11472 95770.0006429723027077318902268+11473 95779.3483947001018507220499514+11474 95788.6962335852636670929411239+11475 95798.0441596201924129965779129+11476 95807.3921727972936684042176409+11477 95816.7402731089743367603094849+11478 95826.0884605476426446365637784+11479 95835.4367351057081413861418627+11480 95844.7850967755816987979664345+11481 95854.1335455496755107511523378+11482 95863.4820814204030928695577474+11483 95872.8307043801792821764556916+11484 95882.1794144214202367493258619+11485 95891.5282115365434353747666571+11486 95900.8770957179676772035274092+11487 95910.2260669581130814056607398+11488 95919.5751252494010868257949933+11489 95928.9242705842544516385266958+11490 95938.2735029550972530039329871+11491 95947.6228223543548867232039729+11492 95956.9722287744540668943949466+11493 95966.321722207822825568298427+11494 95975.67130264689051240443596+11495 95985.020970084087794327169634+11496 95994.3707245118466551819332534+11497 96003.7205659226003953915831225+11498 96013.0704943087836316128683837+11499 96022.4205096628322963930208614+11500 96031.7706119771836378264643565+11501 96041.1208012442762192116433427+11502 96050.4710774565499187079710103+11503 96059.8214406064459289928966066+11504 96069.1718906864067569190920211+11505 96078.5224276888762231717575635+11506 96087.8730516062994619260468824+11507 96097.2237624311229205046109736+11508 96106.574560155794359035261226+11509 96115.9254447727628501087514525+11510 96125.2764162744787784366788562+11511 96134.6274746533938405095038779+11512 96143.9786199019610442546888748+11513 96153.3298520126347086949555789+11514 96162.6811709778704636066612819+11515 96172.0325767901252491782936974+11516 96181.3840694418573156690844464+11517 96190.7356489255262230677411168+11518 96200.0873152335928407512978436+11519 96209.4390683585193471440843601+11520 96218.7909082927692293768134669+11521 96228.1428350288072829457868686+11522 96237.4948485590996113722193264+11523 96246.8469488761136258616810752+11524 96256.199135972318044963658454+11525 96265.5514098401828942312326978+11526 96274.9037704721795058808768413+11527 96284.2562178607805184523706807+11528 96293.6087519984598764688337446+11529 96302.9613728776928300968762222+11530 96312.3140804909559348068677963+11531 96321.6668748307270510333243324+11532 96331.0197558894853438354123705+11533 96340.3727236597112825575713702+11534 96349.7257781338866404902536567+11535 96359.0789193044944945307820181+11536 96368.4321471640192248443249017+11537 96377.7854617049465145249891588+11538 96387.1388629197633492570302879+11539 96396.4923508009580169761801238+11540 96405.8459253410201075310919227+11541 96415.1995865324405123449027927+11542 96424.5533343677114240769134181+11543 96433.9071688393263362843850271+11544 96443.2610899397800430844535518+11545 96452.6150976615686388161609306+11546 96461.9691919971895177026035008+11547 96471.3233729391413735131974325+11548 96480.6776404799241992260611514+11549 96490.0319946120392866905147011+11550 96499.3864353279892262896959934+11551 96508.740962620277906603293897+11552 96518.0955764814105140703981124+11553 96527.450276903893532652465785+11554 96536.8050638802347434964048027+11555 96546.1599374029432245977737305+11556 96555.5148974645293504640983292+11557 96564.8699440575047917783046102+11558 96574.2250771743825150622683731+11559 96583.5802968076767823404811784+11560 96592.9356029499031508038327034+11561 96602.290995593578472473509431+11562 96611.6464747312208938650096224+11563 96621.0020403553498556522745213+11564 96630.3576924584860923319357415+11565 96639.7134310331516318876787856+11566 96649.069256071869795454722647+11567 96658.4251675671651969844154427+11568 96667.7811655115637429089460278+11569 96677.1372498975926318061715417+11570 96686.4934207177803540645608362+11571 96695.8496779646566915482537336+11572 96705.2060216307527172622360677+11573 96714.5624517086007950176304546+11574 96723.9189681907345790971027457+11575 96733.2755710696890139203841115+11576 96742.6322603380003337099087071+11577 96751.9890359882060621565668685+11578 96761.3458980128450120855737913+11579 96770.7028464044572851224536398+11580 96780.0598811555842713591390397+11581 96789.4170022587686490201859007+11582 96798.7742097065543841291035229+11583 96808.1315034914867301747999348+11584 96817.4888836061122277781424146+11585 96826.8463500429787043586331435+11586 96836.2039027946352738011999435+11587 96845.5615418536323361231020476+11588 96854.9192672125215771409508554+11589 96864.2770788638559681378456213+11590 96873.6349768001897655306240293+11591 96882.9929610140785105372276016+11592 96892.3510314980790288441818941+11593 96901.7091882447494302741914265+11594 96911.0674312466491084538493011+11595 96920.4257604963387404814614573+11596 96929.7841759863802865949855142+11597 96939.1426777093369898400841523+11598 96948.5012656577733757382929836+11599 96957.8599398242552519553028614+11600 96967.2187002013497079693565805+11601 96976.5775467816251147397599191+11602 96985.9364795576511243755069708+11603 96995.2954985219986698040197213+11604 97004.6546036672399644400018165+11605 97014.0137949859485018544064757+11606 97023.3730724706990554435184993+11607 97032.7324361140676780981503226+11608 97042.0918859086317018729520656+11609 97051.4514218469697376558355311+11610 97060.8110439216616748375121008+11611 97070.1707521252886809811444806+11612 97079.5305464504332014921122466+11613 97088.8904268896789592878911429+11614 97098.2503934356109544680460805+11615 97107.6104460808154639843377909+11616 97116.9705848178800413109430839+11617 97126.3308096393935161147886606+11618 97135.6911205379459939259984336+11619 97145.0515175061288558084543051+11620 97154.4120005365347580304703536+11621 97163.7725696217576317355803818+11622 97173.1332247543926826134387749+11623 97182.4939659270363905708346226+11624 97191.8547931322865094028190547+11625 97201.2157063627420664639457423+11626 97210.5767056110033623396245151+11627 97219.9377908696719705175880477+11628 97229.2989621313507370594715645+11629 97238.6602193886437802725055156+11630 97248.0215626341564903813211754+11631 97257.3829918604955291998691142+11632 97266.7445070602688298034504957+11633 97276.1061082260855962008611504+11634 97285.4677953505563030066483781+11635 97294.8295684262926951134804293+11636 97304.1914274459077873646286187+11637 97313.5533724020158642265620212+11638 97322.9154032872324794616547026+11639 97332.2775200941744558010054364+11640 97341.6397228154598846173698589+11641 97351.0020114437081255982050137+11642 97360.3643859715398064188262372+11643 97369.726846391576822415676338+11644 97379.0893926964423362597070201+11645 97388.4520248787607776298725042+11646 97397.814742931157842886735296+11647 97407.177546846260494746184056+11648 97416.5404366166969619532635211+11649 97425.90341223509673895611643+11650 97435.2664736940905855800374057+11651 97444.6296209863105267016387447+11652 97453.9928541043898519231280675+11653 97463.3561730409631152466977801+11654 97472.7195777886661347490263+11655 97482.0830683401359922558909982+11656 97491.4466446880110330168928096+11657 97500.810306824930865380292463+11658 97510.1740547435363604679582844+11659 97519.5378884364696518504255239+11660 97528.9018078963741352220671602+11661 97538.2658131158944680763761332+11662 97547.6299040876765693813589582+11663 97556.9940808043676192550406734+11664 97566.3583432586160586410810733+11665 97575.7226914430715889845021794+11666 97585.0871253503851719075269015+11667 97594.4516449732090288855288422+11668 97603.8162503041966409230931952+11669 97613.1809413360027482301886924+11670 97622.5457180612833498984505494+11671 97631.910580472695703577574364+11672 97641.2755285628983251518209197+11673 97650.6405623245509884166318457+11674 97660.005681750314724755356087+11675 97669.370886832851822816087137+11676 97678.7361775648258281886109841+11677 97688.101553938901543081464727+11678 97697.4670159477450259991058086+11679 97706.8325635840235914191918241+11680 97716.1981968404058094699708529+11681 97725.5639157095615056077822698+11682 97734.9297201841617602946679864+11683 97744.2956102568789086760940756+11684 97753.6615859203865402587827335+11685 97763.0276471673594985886545289+11686 97772.3937939904738809288808957+11687 97781.7600263824070379380468195+11688 97791.1263443358375733484236719+11689 97800.4927478434453436443521452+11690 97809.8592368979114577407352402+11691 97819.2258114919182766616412604+11692 97828.5924716181494132190167659+11693 97837.9592172692897316915094382+11694 97847.3260484380253475034008117+11695 97856.6929651170436269036488224+11696 97866.059967299033186645040128+11697 97875.4270549766838936634521529+11698 97884.79422814268686475722481+11699 97894.1614867897344662666418532+11700 97903.528830910520313753521814+11701 97912.8962604977392716809184745+11702 97922.2637755440874530929308306+11703 97931.6313760422622192946224988+11704 97940.9990619849621795320505189+11705 97950.3668333648871906724035074+11706 97959.7346901747383568842491131+11707 97969.1026324072180293178907298+11708 97978.4706600550298057858334182+11709 97987.8387731108785304433589911+11710 97997.2069715674702934692102158+11711 98006.5752554175124307463840848+11712 98015.9436246537135235430341119+11713 98025.3120792687833981934816031+11714 98034.6806192554331257793358593+11715 98044.049244606375021810723262+11716 98053.4179553143226459076251965+11717 98062.7867513719908014813247663+11718 98072.1556327720955354159622512+11719 98081.5245995073541377501992643+11720 98090.8936515704851413589915603+11721 98100.2627889542083216354704488+11722 98109.6320116512446961729327673+11723 98119.0013196543165244469393664+11724 98128.3707129561473074975220616+11725 98137.740191549461787611499005+11726 98147.1097554269859480048984315+11727 98156.4794045814470125054907321+11728 98165.8491390055734452354288093+11729 98175.2189586920949502939966672+11730 98184.5888636337424714404661913+11731 98193.9588538232481917770620717+11732 98203.3289292533455334320348227+11733 98212.6990899167691572428418533+11734 98222.0693358062549624394365436+11735 98231.4396669145400863276652792+11736 98240.8100832343629039727723984+11737 98250.1805847584630278830130072+11738 98259.5511714795813076933736144+11739 98268.9218433904598298494005423+11740 98278.2926004838419172911360664+11741 98287.663442752472129137162238+11742 98297.0343701890962603687523451+11743 98306.4053827864613415141299639+11744 98315.7764805373156383328355564+11745 98325.1476634344086515002005687+11746 98334.5189314704911162919289824+11747 98343.8902846383150022687862751+11748 98353.2617229306335129613957437+11749 98362.6332463402010855551421446+11750 98372.0048548597733905751826054+11751 98381.3765484821073315715647622+11752 98390.7483271999610448044520775+11753 98400.120191006093898929456292+11754 98409.4921398932664946830769656+11755 98418.8641738542406645682480626+11756 98428.2362928817794725399915331+11757 98437.6084969686472136911778486+11758 98446.9807861076094139383934434+11759 98456.3531602914328297079150175+11760 98465.725619512885447621790656+11761 98475.0981637647364841840277188+11762 98484.4707930397563854668874554+11763 98493.8435073307168267972862996+11764 98503.2163066303907124433037988+11765 98512.5891909315521753007971327+11766 98521.9621602269765765801221748+11767 98531.3352145094405054929610543+11768 98540.7083537717217789392561695+11769 98550.0815780065994411942506104+11770 98559.4548872068537635956349443+11771 98568.8282813652662442308003181+11772 98578.2017604746196076241978345+11773 98587.5753245276978044248041547+11774 98596.9489735172860110936932836+11775 98606.3227074361706295917144927+11776 98615.6965262771392870672763347+11777 98625.0704300329808355442367049+11778 98634.444418696485351609898906+11779 98643.8184922604441361031136684+11780 98653.1926507176497138024870838+11781 98662.5668940608958331146944052+11782 98671.9412222829774657628996699+11783 98681.3156353766908064752810994+11784 98690.6901333348332726736622313+11785 98700.06471615020350416224874+11786 98709.4393838156013628164708989+11787 98718.8141363238279322719316413+11788 98728.1889736676855176134601746+11789 98737.5638958399776450642711016+11790 98746.9389028335090616752290076+11791 98756.313994641085735014218464+11792 98765.689171255514852855619408+11793 98775.0644326696048228698878511+11794 98784.4397788761652723132418719+11795 98793.8152098680070477174528506+11796 98803.1907256379422145797418973+11797 98812.5663261787840570527814332+11798 98821.9420114833470776348018768+11799 98831.3177815444469968598033928+11800 98840.6936363549007529878726582+11801 98850.0695759075265016956046015+11802 98859.4456001951436157666290699+11803 98868.8217092105726847822423812+11804 98878.1979029466355148121437144+11805 98887.5741813961551281052762964+11806 98896.9505445519557627807733386+11807 98906.3269924068628725190086805+11808 98915.7035249537031262527520949+11809 98925.0801421853044078584292117+11810 98934.4568440944958158474860141+11811 98943.8336306741076630578578644+11812 98953.2105019169714763455430155+11813 98962.5874578159199962762805617+11814 98971.964498363787176817332787+11815 98981.3416235534081850293718659+11816 98990.7188333776194007584708713+11817 99000.0961278292584163281990474+11818 99009.4735069011640362318213026+11819 99018.8509705861762768246018769+11820 99028.2285188771363660162121431+11821 99037.6061517668867429632424936+11822 99046.9838692482710577618182729+11823 99056.3616713141341711403197079+11824 99065.7395579573221541522057952+11825 99075.1175291706822878689421+11826 99084.4955849470630630730324219+11827 99093.8737252793141799511542859+11828 99103.2519501602865477873982123+11829 99112.6302595828322846566107235+11830 99122.0086535398047171178410426+11831 99131.3871320240583799078914407+11832 99140.765695028449015634971189+11833 99150.1443425458335744724540712+11834 99159.5230745690702138527394141+11835 99168.9018910910182981612165902+11836 99178.2807921045383984303329511+11837 99187.6597776024922920337651469+11838 99197.0388475777429623806937865+11839 99206.4180020231545986101813986+11840 99215.7972409315925952856536464+11841 99225.1765642959235520894837537+11842 99234.5559721090152735176801001+11843 99243.935464363736768574676939+11844 99253.3150410529582504682281971+11845 99262.6947021695511363044043116+11846 99272.0744477063880467826920601+11847 99281.4542776563428058911973418+11848 99290.8341920122904406019508648+11849 99300.2141907671071805663166974+11850 99309.594273913670457810503639+11851 99318.9744414448589064311793677+11852 99328.3546933535523622911873217+11853 99337.7350296326318627153662695+11854 99347.1154502749796461864725282+11855 99356.4959552734791520412047839+11856 99365.8765446210150201663314725+11857 99375.2572183104730906949206778+11858 99384.6379763347404037026725025+11859 99394.0188186867051989043538701+11860 99403.3997453592569153503357135+11861 99412.7807563452861911232325077+11862 99422.1618516376848630346441041+11863 99431.5430312293459663219998216+11864 99440.9242951131637343455047528+11865 99450.3056432820335982851882416+11866 99459.6870757288521868380544899+11867 99469.0685924465173259153352489+11868 99478.4501934279280383398445537+11869 99487.8318786659845435434354569+11870 99497.213648153588257264558719+11871 99506.5955018836417912459234121+11872 99515.9774398490489529322593946+11873 99525.3594620427147451681816135+11874 99534.7415684575453658961561914+11875 99544.1237590864482078545682562+11876 99553.5060339223318582758914688+11877 99562.8883929581060985849592086+11878 99572.2708361866819040973373711+11879 99581.6533636009714437177987377+11880 99591.0359751938880796388988727+11881 99600.4186709583463670396535056+11882 99609.8014508872620537843173566+11883 99619.1843149735520801212643613+11884 99628.5672632101345783819692535+11885 99637.950295589928872680090462+11886 99647.3334121058554786106542792+11887 99656.7166127508361029493402602+11888 99666.0998975177936433518678076+11889 99675.4832663996521880534839007+11890 99684.8667193893370155685519276+11891 99694.2502564797745943902415747+11892 99703.6338776638925826903197344+11893 99713.0175829346198280190423865+11894 99722.4013722848863670051474114+11895 99731.7852457076234250559482925+11896 99741.1692031957634160575286662+11897 99750.5532447422399420750376758+11898 99759.937370339987793053086088+11899 99769.3215799819429465162431292+11900 99778.7058736610425672696339995+11901 99788.0902513702250070996380215+11902 99797.4747131024298044746873828+11903 99806.8592588505976842461664286+11904 99816.243888607670557349411463+11905 99825.6286023665915205048110168+11906 99835.0134001203048559190065391+11907 99844.3982818617560309861934707+11908 99853.783247583891697989522658+11909 99863.1682972796596938026020634+11910 99872.5534309420090395910987321+11911 99881.9386485638899405144409722+11912 99891.3239501382537854276207057+11913 99900.7093356580531465830959493+11914 99910.0948051162417793327933827+11915 99919.4803585057746218302109612+11916 99928.8659958196077947326205328+11917 99938.2517170506986009033704158+11918 99947.6375221920055251142878966+11919 99957.023411236488233748181604+11920 99966.40938417710757450144372+11921 99975.7954410068255760867519842+11922 99985.1815817186054479358714494+11923 99994.5678063054115799025559478+11924 100003.954114760209541965549226+11925 100013.340507075966083931685704+11926 100022.726983245649135139090824+11927 100032.113543262227804160480934+11928 100041.500187118672378506562683+11929 100050.886914807954324329531865+11930 100060.273726323046286126671688+11931 100069.660621656922086444050418+11932 100079.047600802556725580318355+11933 100088.434663752926381290604103+11934 100097.821810501008408490510093+11935 100107.209041039781338960207313+11936 100116.596355362224881048629208+11937 100125.983753461319919377764707+11938 100135.37123533004851454705033+11939 100144.75880096139390283786135+11940 100154.14645034834049591810194+11941 100163.534183483873880546894299+11942 100172.922000360980818279366683+11943 100182.309900972649245171540324+11944 100191.697885311868271485315174+11945 100201.085953371628181393554457+11946 100210.474105144920432685267965+11947 100219.862340624737656470894071+11948 100229.250659804073656887680409+11949 100238.639062675923410805163192+11950 100248.027549233283067530745106+11951 100257.416119469149948515371764+11952 100266.804773376522547059306655+11953 100276.193510948400528018004567+11954 100285.582332177784727508083427+11955 100294.971237057677152613394525+11956 100304.360225581080981091191084+11957 100313.749297741000561078395122+11958 100323.138453530441410797962578+11959 100332.527692942410218265346659+11960 100341.917015969914840995059355+11961 100351.306422605964305707331098+11962 100360.695912843568808034868512+11963 100370.085486675739712229710218+11964 100379.475144095489550870180651+11965 100388.86488509583202456794185+11966 100398.254709669782001675143177+11967 100407.644617810355517991668931+11968 100417.034609510569776472483802+11969 100426.424684763443146935076143+11970 100435.814843561995165766999005+11971 100445.205085899246535633508897+11972 100454.595411768219125185302233+11973 100463.985821161935968766349429+11974 100473.376314073421266121826592+11975 100482.766890495700382106144789+11976 100492.157550421799846391076821+11977 100501.548293844747353173981496+11978 100510.939120757571760886125329+11979 100520.33003115330309190110165+11980 100529.721025024972532243347073+11981 100539.112102365612431296755279+11982 100548.503263168256301513388081+11983 100557.894507425938818122283729+11984 100567.28583513169581883836241+11985 100576.677246278564303571428899+11986 100586.068740859582434135272344+11987 100595.460318867789533956863105+11988 100604.851980296226087785646646+11989 100614.243725137933741402934412+11990 100623.635553385955301331391663+11991 100633.027465033334734544622227+11992 100642.419460073117168176850119+11993 100651.811538498348889232697995+11994 100661.203700302077344297062407+11995 100670.595945477351139245085798+11996 100679.988274017220038952225221+11997 100689.380685914734967004417718+11998 100698.773181162948005408342345+11999 100708.165759754912394301778774+12000 100717.558421683682531664062458+12001 100726.951166942313973026636297+12002 100736.343995523863431183698784+12003 100745.736907421388775902948573+12004 100755.129902627949033636425444+12005 100764.522981136604387231447614+12006 100773.916142940416175641645362+12007 100783.309388032446893638090917+12008 100792.702716405760191520524587+12009 100802.096128053420874828677064+12010 100811.489622968494904053687893+12011 100820.88320114404939434962004+12012 100830.276862573152615245070533+12013 100839.670607248873990354877137+12014 100849.06443516428409709192101+12015 100858.458346312454666379025321+12016 100867.852340686458582360949763+12017 100877.246418279369882116480949+12018 100886.640579084263755370618633+12019 100896.034823094216544206857719+12020 100905.429150302305742779566023+12021 100914.823560701609997026457747+12022 100924.218054285209104381162622+12023 100933.612631046184013485890678+12024 100943.007290977616823904192616+12025 100952.402034072590785833815718+12026 100961.796860324190299819655279+12027 100971.191769725500916466801508+12028 100980.586762269609336153681858+12029 100989.981837949603408745298754+12030 100999.37699675857213330656267+12031 101008.772238689605657815720521+12032 101018.167563735795278877879328+12033 101027.562971890233441438625121+12034 101036.95846314601373849773703+12035 101046.354037496230910822996533+12036 101055.749694933980846664091828+12037 101065.145435452360581466617265+12038 101074.541259044468297586167832+12039 101083.937165703403324002528623+12040 101093.333155422266136033959274+12041 101102.729228194158355051573312+12042 101112.125384012182748193812385+12043 101121.52162286944322808101533+12044 101130.91794475904485253008204+12045 101140.314349674093824269232097+12046 101149.710837607697490652858119+12047 101159.107408552964343376473793+12048 101168.504062503004018191756552+12049 101177.900799450927294621684851+12050 101187.297619389846095675770014+12051 101196.694522312873487565382594+12052 101206.091508213123679419173235+12053 101215.488577083712022998587967+12054 101224.885728917755012413477913+12055 101234.282963708370283837803367+12056 101243.680281448676615225432197+12057 101253.077682131793926026032539+12058 101262.475165750843276901059742+12059 101271.872732298946869439837527+12060 101281.270381769228045875733313+12061 101290.668114154811288802427684+12062 101300.065929448822220890277944+12063 101309.463827644387604602775732+12064 101318.861808734635341913098652+12065 101328.25987271269447402075588+12066 101337.658019571695181068327709+12067 101347.056249304768781858299+12068 101356.454561905047733569986484+12069 101365.852957365665631476559893+12070 101375.251435679757208662156874+12071 101384.649996840458335739091642+12072 101394.048640840906020565157345+12073 101403.44736767423840796102209+12074 101412.846177333594779427718604+12075 101422.245069812115552864227474+12076 101431.644045102942282285153945+12077 101441.043103199217657538498229+12078 101450.442244094085504023519284+12079 101459.841467780690782408692029+12080 101469.240774252179588349757953+12081 101478.640163501699152207869084+12082 101488.03963552239783876782527+12083 101497.439190307425146956404751+12084 101506.838827849931709560787957+12085 101516.238548143069292947074521+12086 101525.63835117999079677889345+12087 101535.03823695385025373610642+12088 101544.438205457802829233604166+12089 101553.838256685004821140195908+12090 101563.238390628613659497591796+12091 101572.638607281787906239478326+12092 101582.038906637687254910686684+12093 101591.439288689472530386453986+12094 101600.839753430305688591777379+12095 101610.240300853349816220860952+12096 101619.640930951769130456655433+12097 101629.041643718728978690490624+12098 101638.442439147395838241800535+12099 101647.843317230937316077941192+12100 101657.244277962522148534101062+12101 101666.645321335320201033304069+12102 101676.046447342502467806505159+12103 101685.44765597724107161277838+12104 101694.848947232709263459597426+12105 101704.250321102081422323208629+12106 101713.651777578533054869096334+12107 101723.053316655240795172540644+12108 101732.454938325382404439267474+12109 101741.856642582136770726190901+12110 101751.258429418683908662247746+12111 101760.660298828204959169324366+12112 101770.062250803882189183275621+12113 101779.464285338898991375035955+12114 101788.866402426439883871822589+12115 101798.26860205969050997843075+12116 101807.670884231837637898620926+12117 101817.073248936069160456598099+12118 101826.475696165574094818582913+12119 101835.878225913542582214474744+12120 101845.280838173165887659606643+12121 101854.683532937636399676592095+12122 101864.08631020014763001726357+12123 101873.489169953894213384702827+12124 101882.892112192071907155362929+12125 101892.295136907877591101281929+12126 101901.698244094509267112388199+12127 101911.101433745166058918897358+12128 101920.504705853048211813800755+12129 101929.908060411357092375445484+12130 101939.311497413295188190205876+12131 101948.715016852066107575246453+12132 101958.118618720874579301376274+12133 101967.522303012926452315994673+12134 101976.926069721428695466128318+12135 101986.329918839589397221559575+12136 101995.73385036061776539804613+12137 102005.137864277724126880631835+12138 102014.541960584119927347048734+12139 102023.946139273017730991210245+12140 102033.35040033763122024679544+12141 102042.754743771175195510924413+12142 102052.159169566865574867924664+12143 102061.563677717919393813188496+12144 102070.968268217554804977121366+12145 102080.372941058991077849181155+12146 102089.777696235448598502008328+12147 102099.182533740148869315646938+12148 102108.587453566314508701856446+12149 102117.992455707169250828514303+12150 102127.39754015593794534410928+12151 102136.802706905846557102325486+12152 102146.207955950122165886717052+12153 102155.613287281992966135473438+12154 102165.018700894688266666275323+12155 102174.424196781438490401241048+12156 102183.829774935475174091963568+12157 102193.235435350030968044637881+12158 102202.641178018339635845278888+12159 102212.047002933636054085029662+12160 102221.452910089156212085560074+12161 102230.858899478137211624555743+12162 102240.264971093817266661297283+12163 102249.67112492943570306232979+12164 102259.077360978232958327222553+12165 102268.483679233450581314418938+12166 102277.890079688331231967176412+12167 102287.296562336118681039596671+12168 102296.703127170057809822745832+12169 102306.109774183394609870864662+12170 102315.516503369376182727668786+12171 102324.92331472125073965273886+12172 102334.330208232267601348000664+12173 102343.737183895677197684295063+12174 102353.144241704731067428037829+12175 102362.551381652681857967969258+12176 102371.958603732783325041993565+12177 102381.365907938290332464108008+12178 102390.77329426245885185142171+12179 102400.180762698545962351264144+12180 102409.588313239809850368383238+12181 102418.995945879509809292233066+12182 102428.403660610906239224351092+12183 102437.811457427260646705824926+12184 102447.21933632183564444484855+12185 102456.627297287894951044367995+12186 102466.035340318703390729816409+12187 102475.443465407526893076938502+12188 102484.851672547632492739704307+12189 102494.25996173228832917831225+12190 102503.668332954763646387281464+12191 102513.076786208328792623633323+12192 102522.48532148625522013516217+12193 102531.893938781815484888795176+12194 102541.30263808828324629904132+12195 102550.71141939893326695652944+12196 102560.120282707041412356635316+12197 102569.52922800588465062819776+12198 102578.938255288741052262323664+12199 102588.347364548889789841281978+12200 102597.756555779611137767486582+12201 102607.165828974186471992568005+12202 102616.575184125898269746533968+12203 102625.984621228030109267018706+12204 102635.394140273866669528621037+12205 102644.80374125669372997233114+12206 102654.213424169798170235045999+12207 102663.623189006467969879173497+12208 102673.033035759992208122325095+12209 102682.442964423661063567097083+12210 102691.852974990765813930940359+12211 102701.263067454598835776118694+12212 102710.673241808453604239755455+12213 102720.083498045624692763968749+12214 102729.493836159407772826094943+12215 102738.904256143099613669000536+12216 102748.314757989998082031482342+12217 102757.725341693402141878755938+12218 102767.136007246611854133032362+12219 102776.546754642928376404183003+12220 102785.957583875653962720492665+12221 102795.36849493809196325950075+12222 102804.779487823546824078930547+12223 102814.190562525324086847706568+12224 102823.601719036730388577059911+12225 102833.012957351073461351721607+12226 102842.424277461662132061203918+12227 102851.835679361806322131169547+12228 102861.247163044817047254888722+12229 102870.658728504006417124784132+12230 102880.070375732687635164063657+12231 102889.482104724174998258440874+12232 102898.893915471783896487943299+12233 102908.30580796883081285880832+12234 102917.7177822086333230354668+12235 102927.1298381845100950726143+12236 102936.541975889780889147369897+12237 102945.954195317766557291522556+12238 102955.366496461789043123865016+12239 102964.778879315171381582615171+12240 102974.191343871237698657924884+12241 102983.603890123313211124476224+12242 102993.016518064724226274165076+12243 103002.429227688798141648872087+12244 103011.842018988863444773320922+12245 103021.254891958249712888023792+12246 103030.667846590287612682314202+12247 103040.080882878308900027466914+12248 103049.494000815646419709905062+12249 103058.907200395634105164494395+12250 103068.32048161160697820792461+12251 103077.73384445690114877217775+12252 103087.147288924853814638083606+12253 103096.560815008803261168962119+12254 103105.974422702088861044352722+12255 103115.388111998051073993830596+12256 103124.801882890031446530909811+12257 103134.215735371372611687033301+12258 103143.629669435418288745649651+12259 103153.043685075513282976376654+12260 103162.45778228500348536925161+12261 103171.871961057235872369068317+12262 103181.286221385558505609800732+12263 103190.700563263320531649113266+12264 103200.114986683872181702957669+12265 103209.529491640564771380256477+12266 103218.944078126750700417672983+12267 103228.358746135783452414467696+12268 103237.773495661017594567441258+12269 103247.188326695808777405963775+12270 103256.603239233513734527090534+12271 103266.018233267490282330764068+12272 103275.433308791097319755102534+12273 103284.84846579769482801177437+12274 103294.263704280643870321459191+12275 103303.6790242333065916493949+12276 103313.094425649046218441010963+12277 103322.509908521227058357647827+12278 103331.925472843214500012362439+12279 103341.341118608375012705819835+12280 103350.756845810076146162270753+12281 103360.172654441686530265615255+12282 103369.588544496575874795552301+12283 103379.004515968114969163815256+12284 103388.420568849675682150493288+12285 103397.836703134630961640438623+12286 103407.252918816354834359759622+12287 103416.669215888222405612399648+12288 103426.085594343609859016801679+12289 103435.502054175894456242658647+12290 103444.918595378454536747749457+12291 103454.335217944669517514860648+12292 103463.751921867919892788793677+12293 103473.168707141587233813457773+12294 103482.585573759054188569048341+12295 103492.002521713704481509310867+12296 103501.419550998922913298890305+12297 103510.836661608095360550765897+12298 103520.253853534608775563771402+12299 103529.671126771851186060200693+12300 103539.088481313211694923498685+12301 103548.505917152080479936037569+12302 103557.92343428184879351697831+12303 103567.341032695908962460217377+12304 103576.758712387654387672418662+12305 103586.176473350479543911130573+12306 103595.594315577779979522988244+12307 103605.01223906295231618200084+12308 103614.430243799394248627923926+12309 103623.848329780504544404716849+12310 103633.266496999683043599085119+12311 103642.684745450330658579107735+12312 103652.10307512584937373294944+12313 103661.521486019642245207657853+12314 103670.93997812511340064804546+12315 103680.358551435668038935656413+12316 103689.777205944712429927818118+12317 103699.195941645653914196777565+12318 103708.61475853190090276892238+12319 103718.033656596862876864086543+12320 103727.452635833950387634940759+12321 103736.871696236575055906467441+12322 103746.29083779814957191552026+12323 103755.710060512087695050468247+12324 103765.129364371804253590924389+12325 103774.548749370715144447558714+12326 103783.968215502237332901995801+12327 103793.3877627597888523467967+12328 103802.807391136788804025525221+12329 103812.227100626657356772898562+12330 103821.646891222815746755022234+12331 103831.066762918686277209709256+12332 103840.486715707692318186883581+12333 103849.906749583258306289067726+12334 103859.326864538809744411954564+12335 103868.747060567773201485063243+12336 103878.167337663576312212479211+12337 103887.587695819647776813678295+12338 103897.008135029417360764434813+12339 103906.42865528631589453781368+12340 103915.849256583775273345246475+12341 103925.269938915228456877691434+12342 103934.690702274109469046877333+12343 103944.111546653853397726631236+12344 103953.53247204789639449429006+12345 103962.953478449675674372195937+12346 103972.37456585262951556927533+12347 103981.795734250197259222701869+12348 103991.216983635819309139642882+12349 104000.638314002937131539089576+12350 104010.059725344993254793770842+12351 104019.481217655431269172150644+12352 104028.902790927695826580508968+12353 104038.324445155232640305106281+12354 104047.746180331488484754431485+12355 104057.167996449911195201533317+12356 104066.589893503949667526435171+12357 104076.011871487053857958633302+12358 104085.43393039267478281967838+12359 104094.856070214264518265840368+12360 104104.278290945276200030856671+12361 104113.700592579164023168763548+12362 104123.12297510938324179681073+12363 104132.545438529390168838459225+12364 104141.967982832642175766462271+12365 104151.390608012597692346029404+12366 104160.813314062716206378073608+12367 104170.236100976458263442541508+12368 104179.658968747285466641826588+12369 104189.081917368660476344265378+12370 104198.504946834047009927716595+12371 104207.928057136909841523223195+12372 104217.35124827071480175875731+12373 104226.774520228928777503048021+12374 104236.19787300501971160949196+12375 104245.621306592456602660146672+12376 104255.044820984709504709806743+12377 104264.468416175249527030162628+12378 104273.892092157548833854042161+12379 104283.315848925080644119734717+12380 104292.739686471319231215397976+12381 104302.163604789739922723547276+12382 104311.587603873819100165627508+12383 104321.011683717034198746667522+12384 104330.435844312863707100017016+12385 104339.860085654787167032165867+12386 104349.28440773628517326764588+12387 104358.708810550839373194014909+12388 104368.133294091932466606923333+12389 104377.557858353048205455262837+12390 104386.982503327671393586397477+12391 104396.407229009287886491476991+12392 104405.832035391384591050832324+12393 104415.25692246744946527945333+12394 104424.681890230971518072548625+12395 104434.106938675440808951187552+12396 104443.532067794348447808024226+12397 104452.957277581186594653103628+12398 104462.382568029448459359749713+12399 104471.807939132628301410535501+12400 104481.233390884221429643335112+12401 104490.658923277724201997457724+12402 104500.084536306634025259863403+12403 104509.510229964449354811460794+12404 104518.936004244669694373486618+12405 104528.36185914079559575396696+12406 104537.787794646328658594260304+12407 104547.213810754771530115682282+12408 104556.639907459627904866212118+12409 104566.066084754402524467280711+12410 104575.492342632601177360640346+12411 104584.918681087730698555315987+12412 104594.345100113298969374638122+12413 104603.771599702814917203357132+12414 104613.198179849788515234839145+12415 104622.624840547730782218343342+12416 104632.051581790153782206380688+12417 104641.478403570570624302154054+12418 104650.905305882495462407079688+12419 104660.332288719443494968390015+12420 104669.759352074930964726817727+12421 104679.186495942475158464361129+12422 104688.613720315594406752130714+12423 104698.041025187808083698276921+12424 104707.468410552636606695999066+12425 104716.895876403601436171635392+12426 104726.323422734225075332834213+12427 104735.751049538031069916806125+12428 104745.17875680854400793865724+12429 104754.606544539289519439803424+12430 104764.03441272379427623646549+12431 104773.462361355585991668245334+12432 104782.890390428193420346782956+12433 104792.318499935146357904494361+12434 104801.746689869975640743390287+12435 104811.17496022621314578397573+12436 104820.603310997391790214230251+12437 104830.031742177045531238669005+12438 104839.460253758709365827484486+12439 104848.888845735919330465768933+12440 104858.317518102212500902817384+12441 104867.746270851126991901511332+12442 104877.175103976201956987782957+12443 104886.604017470977588200159895+12444 104896.033011328995115839390528+12445 104905.462085543796808218149739+12446 104914.891240108925971410825117+12447 104924.320475017926949003383578+12448 104933.749790264345121843318359+12449 104943.179185841726907789676366+12450 104952.608661743619761463165834+12451 104962.038217963572173996344275+12452 104971.46785449513367278388667+12453 104980.897571331854821232933887+12454 104990.327368467287218513521285+12455 104999.757245894983499309087464+12456 105009.187203608497333567063151+12457 105018.617241601383426249540166+12458 105028.047359867197517084020451+12459 105037.47755839949638031424512+12460 105046.907837191837824451103512+12461 105056.338196237780692023622195+12462 105065.768635530884859330033909+12463 105075.199155064711236188926398+12464 105084.629754832821765690471118+12465 105094.060434828779423947731765+12466 105103.49119504614821984805262+12467 105112.92203547849319480452665+12468 105122.352956119380422507543356+12469 105131.783956962377008676416318+12470 105141.215038001051090811090424+12471 105150.646199228971837943928731+12472 105160.077440639709450391578941+12473 105169.508762226835159506919453+12474 105178.940163983921227431084962+12475 105188.371645904540946845571572+12476 105197.803207982268640724421388+12477 105207.234850210679662086486563+12478 105216.666572583350393747772762+12479 105226.098375093858248073862009+12480 105235.530257735781666732414894+12481 105244.9622205027001204457521+12482 105254.394263388194108743515223+12483 105263.82638638584515971540685+12484 105273.258589489235829764009864+12485 105282.690872691949703357685948+12486 105292.123235987571392783553253+12487 105301.555679369686537900543192+12488 105310.988202831881805892536346+12489 105320.420806367744891021577431+12490 105329.853489970864514381169305+12491 105339.28625363483042364964598+12492 105348.719097353233392843624611+12493 105358.152021119665222071536427+12494 105367.585024927718737287236569+12495 105377.018108770987790043692814+12496 105386.451272643067257246753141+12497 105395.884516537553040908992117+12498 105405.317840448042067903636071+12499 105414.751244368132289718567009+12500 105424.18472829142268221040527+12501 105433.618292211513245358670853+12502 105443.051936122005003020023416+12503 105452.485660016500002682580898+12504 105461.919463888601315220316735+12505 105471.353347731913034647535647+12506 105480.78731154004027787342795+12507 105490.221355306589184456702375+12508 105499.655479025166916360297359+12509 105509.089682689381657706170768+12510 105518.523966292842614530168034+12511 105527.95832982916001453696867+12512 105537.392773291945106855111118+12513 105546.827296674810161792095927+12514 105556.261899971368470589567203+12515 105565.696583175234345178572311+12516 105575.131346280023117934899802+12517 105584.566189279351141434495521+12518 105594.001112166835788208956881+12519 105603.436114936095450501105258+12520 105612.871197580749540020636479+12521 105622.30636009441848769984938+12522 105631.741602470723743449452393+12523 105641.176924703287775914448134+12524 105650.612326785734072230095961+12525 105660.047808711687137777952475+12526 105669.483370474772495941989928+12527 105678.9190120686166878647925+12528 105688.354733486847272203830436+12529 105697.790534723092824887811986+12530 105707.226415770982938873113135+12531 105716.662376624148223900285082+12532 105726.098417276220306250639445+12533 105735.534537720831828502911153+12534 105744.970737951616449289999002+12535 105754.40701796220884305578383+12536 105763.843377746244699812024307+12537 105773.279817297360724895330271+12538 105782.71633660919463872421362+12539 105792.152935675385176556216692+12540 105801.589614489572088245118132+12541 105811.026373045396137998216193+12542 105820.463211336499104133689457+12543 105829.900129356523778838034929+12544 105839.337127099113967923583492+12545 105848.77420455791449058609267+12546 105858.21136172657117916241669+12547 105867.648598598730878888253799+12548 105877.085915168041447655970804+12549 105886.523311428151755772504816+12550 105895.960787372711685717342152+12551 105905.398342995372131900574381+12552 105914.835978289785000421031465+12553 105924.273693249603208824491984+12554 105933.711487868480685861970393+12555 105943.149362140072371248081297+12556 105952.587316058034215419480713+12557 105962.02534961602317929338427+12558 105971.46346280769723402616234+12559 105980.901655626715360772012057+12560 105990.33992806673755044170619+12561 105999.77828012142480346141885+12562 106009.216711784439129531627992+12563 106018.655223049443547386094685+12564 106028.093813910102084550919122+12565 106037.532484360079777103673327+12566 106046.97123439304266943261055+12567 106056.4100640026578139959513+12568 106065.848973182593271081245992+12569 106075.287961926518108564814182+12570 106084.727030228102401671260352+12571 106094.166178081017232733066226+12572 106103.605405478934690950259564+12573 106113.044712415527872150159439+12574 106122.484098884470878547197926+12575 106131.923564879438818502818206+12576 106141.363110394107806285449036+12577 106150.802735422154961830555561+12578 106160.242439957258410500766437+12579 106169.682223993097282846077234+12580 106179.122087523351714364130088+12581 106188.562030541702845260569574+12582 106198.002053041832820209474766+12583 106207.442155017424788113867464+12584 106216.882336462162901866296535+12585 106226.322597369732318109498368+12586 106235.762937733819196997133389+12587 106245.203357548110701954598615+12588 106254.643856806294999439916217+12589 106264.08443550206125870469806+12590 106273.525093629099651555186194+12591 106282.965831181101352113369255+12592 106292.406648151758536578174761+12593 106301.847544534764382986737261+12594 106311.288520323813070975742311+12595 106320.729575512599781542846249+12596 106330.170710094820696808171736+12597 106339.611924064172999775879031+12598 106349.053217414354874095812976+12599 106358.494590139065503825225659+12600 106367.936042232005073190574717+12601 106377.377573686874766349397264+12602 106386.819184497376767152259398+12603 106396.26087465721425890478127+12604 106405.702644160091424129737677+12605 106415.144492999713444329234153+12606 106424.586421169786499746958524+12607 106434.028428664017769130507904+12608 106443.470515476115429493791094+12609 106452.912681599788655879506361+12610 106462.354927028747621121694561+12611 106471.797251756703495608367584+12612 106481.239655777368447044212077+12613 106490.682139084455640213368439+12614 106500.124701671679236742285028+12615 106509.567343532754394862647576+12616 106519.010064661397269174383772+12617 106528.452865051325010408742976+12618 106537.895744696255765191451047+12619 106547.33870358990867580594025+12620 106556.781741726003879956654212+12621 106566.224859098262510532427891+12622 106575.668055700406695369942542+12623 106585.111331526159557017255643+12624 106594.554686569245212497405743+12625 106603.998120823388773072092219+12626 106613.4416342823163440054299+12627 106622.885226939755024327778533+12628 106632.328898789432906599647057+12629 106641.772649825079076675672666+12630 106651.216480040423613468674619+12631 106660.660389429197588713782772+12632 106670.104377985133066732640809+12633 106679.548445701963104197684126+12634 106688.992592573421749896492364+12635 106698.436818593244044496216531+12636 106707.881123755166020308080709+12637 106717.325508052924701051958303+12638 106726.769971480258101621022805+12639 106736.214514030905227846473048+12640 106745.659135698606076262332914+12641 106755.103836477101633870325467+12642 106764.548616360133877904821492+12643 106773.993475341445775597862396+12644 106783.438413414781283944257449+12645 106792.883430573885349466755337+12646 106802.328526812503907981289996+12647 106811.773702124383884362300693+12648 106821.218956503273192308126333+12649 106830.664289942920734106473959+12650 106840.109702437076400399961406+12651 106849.555193979491069951734104+12652 106859.000764563916609411155972+12653 106868.446414184105873079574394+12654 106877.89214283381270267615924+12655 106887.3379505067919271038159+12656 106896.783837196799362215172313+12657 106906.229802897591810578639945+12658 106915.675847602927061244548704+12659 106925.121971306563889511355749+12660 106934.568174002262056691928174+12661 106944.01445568378230987989953+12662 106953.46081634488638171610016+12663 106962.907255979336990155061321+12664 106972.353774580897838231593051+12665 106981.800372143333613827435773+12666 106991.247048660409989437985585+12667 107000.693804125893621939093217+12668 107010.140638533552152353936637+12669 107019.587551877154205619967248+12670 107029.034544150469390355929679+12671 107038.48161534726829862895512+12672 107047.928765461322505721728179+12673 107057.375994486404569899727232+12674 107066.823302416288032178538234+12675 107076.270689244747416091241973+12676 107085.718154965558227455874716+12677 107095.165699572496954142962243+12678 107104.613323059341065843127223+12679 107114.061025419869013834769909+12680 107123.508806647860230751822127+12681 107132.956666737095130351574518+12682 107142.404605681355107282577019+12683 107151.852623474422536852612546+12684 107161.300720110080774796743844+12685 107170.748895582114157045433496+12686 107180.197149884307999492737035+12687 107189.645483010448597764569152+12688 107199.093894954323226987042957+12689 107208.542385709720141554882278+12690 107217.990955270428574899906956+12691 107227.43960363023873925959111+12692 107236.888330782941825445694352+12693 107246.337136722330002612965916+12694 107255.786021442196418027921667+12695 107265.234984936335196837693977+12696 107274.684027198541441838954424+12697 107284.133148222611233246909293+12698 107293.582348002341628464367847+12699 107303.031626531530661850883344+12700 107312.480983803977344491966768+12701 107321.930419813481663968373241+12702 107331.379934553844584125461099+12703 107340.829528018868044842623592+12704 107350.279200202354961802793185+12705 107359.72895109810922626201843+12706 107369.178780699935704819113381+12707 107378.628689001640239185379527+12708 107388.078675997029645954400201+12709 107397.52874167991171637190746+12710 107406.97888604409521610572138+12711 107416.429109083389885015761757+12712 107425.879410791606436924132188+12713 107435.329791162556559385276478+12714 107444.780250190052913456207375+12715 107454.230787867909133466807589+12716 107463.681404189939826790203066+12717 107473.132099149960573613208492+12718 107482.582872741787926706845001+12719 107492.033724959239411196930052+12720 107501.484655796133524334739454+12721 107510.935665246289735267741505+12722 107520.386753303528484810403217+12723 107529.837919961671185215068606+12724 107539.289165214540219942909004+12725 107548.740489055958943434945387+12726 107558.191891479751680883142661+12727 107567.643372479743728001575907+12728 107577.094932049761350797668542+12729 107586.546570183631785343502361+12730 107595.998286875183237547199451+12731 107605.450082118244882924375936+12732 107614.901955906646866369667516+12733 107624.353908234220301928326802+12734 107633.805939094797272567892383+12735 107643.25804848221082994992962+12736 107652.710236390294994201843134+12737 107662.162502812884753688760955+12738 107671.614847743816064785490307+12739 107681.067271176925851648545003+12740 107690.51977310605200598824442+12741 107699.972353525033386840884019+12742 107709.425012427709820340977402+12743 107718.877749807922099493569848+12744 107728.33056565951198394662333+12745 107737.783459976322199763472967+12746 107747.236432752196439195354881+12747 107756.689483980979360454005452+12748 107766.142613656516587484331909+12749 107775.595821772654709737154269+12750 107785.049108323241281942018559+12751 107794.502473302124823880081318+12752 107803.95591670315482015706534+12753 107813.409438520181719976286635+12754 107822.863038747056936911752571+12755 107832.316717377632848681331187+12756 107841.770474405762796919991625+12757 107851.224309825301086953115677+12758 107860.678223630102987569880403+12759 107870.132215814024730796711795+12760 107879.586286370923511670809467+12761 107889.040435294657488013742332+12762 107898.494662579085780205115252+12763 107907.948968218068470956306613+12764 107917.403352205466605084276822+12765 107926.857814535142189285447675+12766 107936.312355200958191909652585+12767 107945.766974196778542734157633+12768 107955.221671516468132737753419+12769 107964.676447153892813874917682+12770 107974.131301102919398850048664+12771 107983.586233357415660891769185+12772 107993.041243911250333527301416+12773 108002.496332758293110356912297+12774 108011.951499892414644828429597+12775 108021.406745307486550011828577+12776 108030.862068997381398373889228+12777 108040.317470955972721552924059+12778 108049.772951177135010133576404+12779 108059.228509654743713421689229+12780 108068.684146382675239219244398+12781 108078.139861354806953599372382+12782 108087.595654565017180681432383+12783 108097.05152600718520240616283+12784 108106.507475675191258310902244+12785 108115.963503562916545304880423+12786 108125.419609664243217444579934+12787 108134.875793973054385709167873+12788 108144.332056483234117775997875+12789 108153.788397188667437796182343+12790 108163.244816083240326170234865+12791 108172.7013131608397193237828+12792 108182.157888415353509483349992+12793 108191.614541840670544452209604+12794 108201.071273430680627386307023+12795 108210.528083179274516570252828+12796 108219.984971080343925193385776+12797 108229.441937127781521125905798+12798 108238.898981315480926695076957+12799 108248.356103637336718461500356+12800 108257.813304087244426995456963+12801 108267.270582659100536653320329+12802 108276.727939346802485354039157+12803 108286.185374144248664355689724+12804 108295.642887045338418032098099+12805 108305.100478043972043649532143+12806 108314.558147134050791143463269+12807 108324.015894309476862895397923+12808 108333.473719564153413509778765+12809 108342.931622891984549590955526+12810 108352.389604286875329520225505+12811 108361.847663742731763232943685+12812 108371.305801253460811995702442+12813 108380.764016812970388183580817+12814 108390.22231041516935505746332+12815 108399.680682053967526541428248+12816 108409.139131723275667000205482+12817 108418.597659417005491016703743+12818 108428.05626512906966316960727+12819 108437.5149488533817978110419+12820 108446.97371058385645884431053+12821 108456.432550314409159501697913+12822 108465.89146803895636212234478+12823 108475.350463751415477930191256+12824 108484.809537445704866811989541+12825 108494.268689115743837095385823+12826 108503.727918755452645327071411+12827 108513.18722635875249605100305+12828 108522.64661191956554158669239+12829 108532.10607543181488180756459+12830 108541.565616889424563919386023+12831 108551.025236286319582238761059+12832 108560.484933616425877971697899+12833 108569.944708873670338992243427+12834 108579.404562051980799621187067+12835 108588.864493145286040404833597+12836 108598.324502147515787893844918+12837 108607.784589052600714422150727+12838 108617.244753854472437885928088+12839 108626.704996547063521522649861+12840 108636.165317124307473690201961+12841 108645.625715580138747646069434+12842 108655.086191908492741326591309+12843 108664.546746103305797126284208+12844 108674.007378158515201677234674+12845 108683.468088068059185628560218+12846 108692.928875825876923425939022+12847 108702.389741425908533091208302+12848 108711.850684862095076002031283+12849 108721.311706128378556671632777+12850 108730.772805218701922528603322+12851 108740.233982127009063696771863+12852 108749.695236847244812775146951+12853 108759.15656937335494461792642+12854 108768.617979699286176114575539+12855 108778.079467818986165969973586+12856 108787.541033726403514484628833+12857 108797.002677415487763334961915+12858 108806.464398880189395353657554+12859 108815.926198114459834310084601+12860 108825.388075112251444690784393+12861 108834.850029867517531480027375+12862 108844.312062374212339940437974+12863 108853.774172626291055393687694+12864 108863.236360617709803001256403+12865 108872.698626342425647545261799+12866 108882.160969794396593209357002+12867 108891.623390967581583359696275+12868 108901.085889855940500325968829+12869 108910.548466453434165182500689+12870 108920.011120754024337529424602+12871 108929.473852751673715273917948+12872 108938.936662440345934411508637+12873 108948.399549814005568807448967+12874 108957.862514866618129978157408+12875 108967.325557592150066872728289+12876 108976.788677984568765654509366+12877 108986.251876037842549482747244+12878 108995.715151745940678294300617+12879 109005.178505102833348585421312+12880 109014.641936102491693193603105+12881 109024.105444738887781079498282+12882 109033.569031005994617108901918+12883 109043.032694897786141834803856+12884 109052.496436408237231279508345+12885 109061.960255531323696716821326+12886 109071.424152261022284454305329+12887 109080.888126591310675615601961+12888 109090.352178516167485922821952+12889 109099.816308029572265479002744+12890 109109.280515125505498550633584+12891 109118.744799797948603350248102+12892 109128.20916204088393181908435+12893 109137.673601848294769409812269+12894 109147.138119214165334869328561+12895 109156.602714132480780021618945+12896 109166.067386597227189550687758+12897 109175.532136602391580783554888+12898 109184.996964141961903473320013+12899 109194.461869209927039582294101+12900 109203.926851800276803065198172+12901 109213.391911907001939652429274+12902 109222.857049524094126633393661+12903 109232.322264645545972639907137+12904 109241.787557265351017429662549+12905 109251.252927377503731669764396+12906 109260.718374975999516720330528+12907 109270.183900054834704418160915+12908 109279.649502608006556860473457+12909 109289.115182629513266188706806+12910 109298.580940113353954372390179+12911 109308.046775053528672993080128+12912 109317.512687444038403028364254+12913 109326.978677278885054635931832+12914 109336.444744552071466937711308+12915 109345.910889257601407804074674+12916 109355.377111389479573638108661+12917 109364.843410941711589159952746+12918 109374.30978790830400719120394+12919 109383.776242283264308439388328+12920 109393.242774060600901282499346+12921 109402.709383234323121553602751+12922 109412.176069798441232325508277+12923 109421.642833746966423695507946+12924 109431.109675073910812570180994+12925 109440.576593773287442450265407+12926 109450.04358983911028321559603+12927 109459.510663265394230910109225+12928 109468.977814046155107526914048+12929 109478.445042175409660793429932+12930 109487.912347647175563956590836+12931 109497.379730455471415568115839+12932 109506.847190594316739269846161+12933 109516.314728057731983579148575+12934 109525.782342839738521674385184+12935 109535.250034934358651180449552+12936 109544.717804335615593954369143+12937 109554.185651037533495870974056+12938 109563.65357503413742660863203+12939 109573.121576319453379435049685+12940 109582.589654887508270993139977+12941 109592.057810732329941086955855+12942 109601.526043847947152467690064+12943 109610.994354228389590619741101+12944 109620.462741867687863546845282+12945 109629.931206759873501558274889+12946 109639.399748898978957055102386+12947 109648.868368279037604316530672+12948 109658.337064894083739286289341+12949 109667.805838738152579359096931+12950 109677.27468980528026316718913+12951 109686.743618089503850366912921+12952 109696.212623584861321425386632+12953 109705.681706285391577407225872+12954 109715.150866185134439761335324+12955 109724.620103278130650107766376+12956 109734.089417558421870024640549+12957 109743.558809020050680835138719+12958 109753.028277657060583394556086+12959 109762.497823463495997877422884+12960 109771.967446433402263564690785+12961 109781.437146560825638630984996+12962 109790.906923839813299931922003+12963 109800.376778264413342791492948+12964 109809.846709828674780789512612+12965 109819.316718526647545549133974+12966 109828.786804352382486524428325+12967 109838.256967299931370788030914+12968 109847.727207363346882818852096+12969 109857.197524536682624289853954+12970 109866.667918813993113855892381+12971 109876.138390189333786941624585+12972 109885.608938656760995529481998+12973 109895.079564210332007947708563+12974 109904.550266844105008658464374+12975 109914.021046552139098045994638+12976 109923.491903328494292204863947+12977 109932.96283716723152272825582+12978 109942.433848062412636496337497+12979 109951.904936008100395464689967+12980 109961.376100998358476452803185+12981 109970.847343027251470932636474+12982 109980.318662088844884817244079+12983 109989.790058177205138249465839+12984 109999.261531286399565390682966+12985 110008.7330814104964142096389+12986 110018.204708543564846271325211+12987 110027.67641267967493652593253+12988 110037.148193812897673097866479+12989 110046.620051937304957074828577+12990 110056.091987046969602296962098+12991 110065.563999135965335146062853+12992 110075.03608819836679433485487+12993 110084.508254228249530696330959+12994 110093.980497219690006973158116+12995 110103.452817166765597607147759+12996 110112.925214063554588528790769+12997 110122.397687904136176946857295+12998 110131.87023868259047113806132+12999 110141.342866392998490236789954+13000 110150.815571029442164024897415+13001 110160.288352586004332721563706+13002 110169.761211056768746773217925+13003 110179.234146435820066643526211+13004 110188.707158717243862603444293+13005 110198.180247895126614521334612+13006 110207.653413963555711653147994+13007 110217.126656916619452432669853+13008 110226.599976748407044261830897+13009 110236.073373453008603301082309+13010 110245.546847024515154259835383+13011 110255.020397457018630186965586+13012 110264.494024744611872261381027+13013 110273.967728881388629582655298+13014 110283.441509861443558961724677+13015 110292.915367678872224711649654+13016 110302.389302327771098438440763+13017 110311.863313802237558831948696+13018 110321.337402096369891456818668+13019 110330.811567204267288543509016+13020 110340.285809120029848779374002+13021 110349.760127837758577099810796+13022 110359.234523351555384479470617+13023 110368.708995655523087723534007+13024 110378.183544743765409259050207+13025 110387.658170610386976926340621+13026 110397.132873249493323770466337+13027 110406.607652655190887832759676+13028 110416.082508821587011942419757+13029 110425.557441742789943508172043+13030 110435.032451412908834309991845+13031 110444.507537826053740290891762+13032 110453.982700976335621348773036+13033 110463.457940857866341128340784+13034 110472.933257464758666813083102+13035 110482.408650791126268917313996+13036 110491.884120831083721078280133+13037 110501.359667578746499848331376+13038 110510.835291028230984487155086+13039 110520.310991173654456754074158+13040 110529.786768009135100700408778+13041 110539.262621528792002461901865+13042 110548.738551726745150051208179+13043 110558.214558597115433150447079+13044 110567.690642134024642903818882+13045 110577.166802331595471710284833+13046 110586.643039183951513016310629+13047 110596.119352685217261108673492+13048 110605.595742829518110907332766+13049 110615.072209610980357758364001+13050 110624.548753023731197226956514+13051 110634.025373061898724890474395+13052 110643.502069719611936131580932+13053 110652.97884299100072593142644+13054 110662.45569287019588866289946+13055 110671.932619351329117883941307+13056 110681.409622428533006130923944+13057 110690.886702095941044712091158+13058 110700.363858347687623501063012+13059 110709.841091177908030730403549+13060 110719.318400580738452785251724+13061 110728.79578655031597399701554+13062 110738.273249080778576437129366+13063 110747.750788166265139710874407+13064 110757.228403800915440751262311+13065 110766.706095978870153612981875+13066 110776.183864694270849266408842+13067 110785.661709941259995391678756+13068 110795.139631713980956172822843+13069 110804.617630006577992091966917+13070 110814.095704813196259723593262+13071 110823.573856127981811528865481+13072 110833.052083945081595650016279+13073 110842.53038825864345570479817+13074 110852.008769062816130580997065+13075 110861.487226351749254231008727+13076 110870.965760119593355466478075+13077 110880.444370360499857753001301+13078 110889.923057068621079004890782+13079 110899.401820238110231380002761+13080 110908.880659863121421074627778+13081 110918.359575937809648118443821+13082 110927.838568456330806169532174+13083 110937.31763741284168230945594+13084 110946.796782801499956838401218+13085 110956.2760046164642030703809+13086 110965.755302851893887128501076+13087 110975.234677501949367740290013+13088 110984.714128560791896033089696+13089 110994.193656022583615329509889+13090 111003.673259881487560942944711+13091 111013.152940131667659973151695+13092 111022.6326967672887311018933+13093 111032.112529782516484388640866+13094 111041.592439171517521066340971+13095 111051.072424928459333337244187+13096 111060.552487047510304168796193+13097 111070.032625522839707089591224+13098 111079.512840348617705985387847+13099 111088.993131519015354895187022+13100 111098.473499028204597807372429+13101 111107.953942870358268455913049+13102 111117.434463039650090116627962+13103 111126.915059530254675403513334+13104 111136.395732336347526065131593+13105 111145.876481452105032781062743+13106 111155.357306871704474958417809+13107 111164.838208589324020528414383+13108 111174.319186599142725743014251+13109 111183.800240895340534971623071+13110 111193.281371472098280497852088+13111 111202.762578323597682316341851+13112 111212.24386144402134792964792+13113 111221.725220827552772145188525+13114 111231.206656468376336872254175+13115 111240.688168360677310919079166+13116 111250.169756498641849789974988+13117 111259.651420876456995482525597+13118 111269.133161488310676284844522+13119 111278.614978328391706572893805+13120 111288.09687139088978660786472+13121 111297.578840669995502333620279+13122 111307.060886159900325174199473+13123 111316.543007854796611831383248+13124 111326.025205748877604082322178+13125 111335.507479836337428577225813+13126 111344.989830111371096637113688+13127 111354.472256568174504051627955+13128 111363.954759200944430876907629+13129 111373.437338003878541233524415+13130 111382.919992971175383104480092+13131 111392.402724097034388133265442+13132 111401.885531375655871421980684+13133 111411.368414801241031329517403+13134 111420.851374367991949269801945+13135 111430.334410070111589510100254+13136 111439.817521901803798969384131+13137 111449.300709857273307016758885+13138 111458.783973930725725269952362+13139 111468.267314116367547393865323+13140 111477.750730408406148899183146+13141 111487.234222801049786941048832+13142 111496.717791288507600117797293+13143 111506.201435864989608269750892+13144 111515.685156524706712278076222+13145 111525.168953261870693863702088+13146 111534.652826070694215386298684+13147 111544.136774945390819643317922+13148 111553.620799880174929669094914+13149 111563.10490086926184853401056+13150 111572.589077906867759143715237+13151 111582.073330987209724038413553+13152 111591.557660104505685192210149+13153 111601.04206525297446381251653+13154 111610.526546426835760139518892+13155 111620.011103620310153245706924+13156 111629.495736827619100835463572+13157 111638.980446042984939044715728+13158 111648.465231260630882240645827+13159 111657.950092474781022821464337+13160 111667.435029679660331016243096+13161 111676.920042869494654684809503+13162 111686.405132038510719117701516+13163 111695.890297180936126836183441+13164 111705.375538290999357392322498+13165 111714.860855362929767169126125+13166 111724.346248390957589180740011+13167 111733.831717369313932872706825+13168 111743.317262292230783922285626+13169 111752.802883153941004038831925+13170 111762.288579948678330764238374+13171 111771.774352670677377273436071+13172 111781.260201314173632174956447+13173 111790.746125873403459311553707+13174 111800.232126342604097560887826+13175 111809.718202716013660636268044+13176 111819.204354987871136887456865+13177 111828.690583152416389101534524+13178 111838.176887203890154303823899+13179 111847.663267136534043558875847+13180 111857.149722944590541771514945+13181 111866.636254622303007487945603+13182 111876.122862163915672696918543+13183 111885.609545563673642630957596+13184 111895.096304815822895567646823+13185 111904.583139914610282630977914+13186 111914.07005085428352759275785+13187 111923.557037629091226674076817+13188 111933.044100233282848346836324+13189 111942.531238661108733135337528+13190 111952.018452906820093417929722+13191 111961.505742964669013228718982+13192 111970.993108828908448059336935+13193 111980.480550493792224660769631+13194 111989.968067953575040845246502+13195 111999.455661202512465288189374+13196 112008.943330234860937330221515+13197 112018.431075044877766779236702+13198 112027.91889562682113371252827+13199 112037.40679197495008827897814+13200 112046.894764083524550501305776+13201 112056.382811946805310078377081+13202 112065.870935559054026187573182+13203 112075.359134914533227287219095+13204 112084.847410007506310919072246+13205 112094.335760832237543510870817+13206 112103.824187382992060178941913+13207 112113.312689654035864530869502+13208 112122.801267639635828468222127+13209 112132.289921334059691989340355+13210 112141.778650731576062992183949+13211 112151.267455826454417077238731+13212 112160.756336612965097350483117+13213 112170.245293085379314226414313+13214 112179.734325237969145231134125+13215 112189.223433065007534805494382+13216 112198.712616560768294108301946+13217 112208.201875719526100819583271+13218 112217.691210535556498943908512+13219 112227.180621003135898613775139+13220 112236.670107116541575893051052+13221 112246.159668870051672580477162+13222 112255.649306257945196013229418+13223 112265.139019274502018870540267+13224 112274.628807914002878977379508+13225 112284.118672170729379108194532+13226 112293.608612038963986790709919+13227 112303.098627512990034109786368+13228 112312.588718587091717511338945+13229 112322.078885255554097606314613+13230 112331.569127512663098974729046+13231 112341.059445352705509969762668+13232 112350.549838769968982521915935+13233 112360.040307758742031943223803+13234 112369.530852313314036731529386+13235 112379.021472427975238374816765+13236 112388.51216809701674115560293+13237 112398.002939314730511955388836+13238 112407.49378607540938005916955+13239 112416.984708373347036960003459+13240 112426.475706202838036163640531+13241 112435.966779558177792993209593+13242 112445.457928433662584393964607+13243 112454.949152823589548738089933+13244 112464.440452722256685629564536+13245 112473.931828123962855709085137+13246 112483.423279023007780459048269+13247 112492.914805413692042008591223+13248 112502.406407290317082938691859+13249 112511.898084647185206087327268+13250 112521.389837478599574354691247+13251 112530.881665778864210508470583+13252 112540.373569542283996989180107+13253 112549.865548763164675715556511+13254 112559.357603435812847890010889+13255 112568.849733554535973804140004+13256 112578.341939113642372644296225+13257 112587.834220107441222297216151+13258 112597.326576530242559155707865+13259 112606.819008376357277924396816+13260 112616.311515640097131425530307+13261 112625.804098315774730404840551+13262 112635.296756397703543337466292+13263 112644.789489880197896233932958+13264 112654.282298757572972446191325+13265 112663.775183024144812473714674+13266 112673.268142674230313769654412+13267 112682.761177702147230547054146+13268 112692.254288102214173585122173+13269 112701.747473868750610035562381+13270 112711.240734996076863228963523+13271 112720.734071478514112481246851+13272 112730.227483310384392900172091+13273 112739.720970486010595191901725+13274 112749.214532999716465467623571+13275 112758.708170845826605050231631+13276 112768.201884018666470281065185+13277 112777.695672512562372326706117+13278 112787.189536321841476985834444+13279 112796.683475440831804496142019+13280 112806.177489863862229341304411+13281 112815.671579585262480058010909+13282 112825.165744599363139043052649+13283 112834.659984900495642360468837+13284 112844.154300482992279548751046+13285 112853.648691341186193428105556+13286 112863.143157469411379907773738+13287 112872.637698862002687793410428+13288 112882.132315513295818594520304+13289 112891.627007417627326331952216+13290 112901.12177456933461734545146+13291 112910.616616962755950101269975+13292 112920.11153459223043499983444+13293 112929.60652745209803418347224+13294 112939.101595536699561344195294+13295 112948.596738840376681531541717+13296 112958.091957357471910960475288+13297 112967.587251082328616819342713+13298 112977.082620009291017077888651+13299 112986.578064132704180295328491+13300 112996.073583446914025428478854+13301 113005.569177946267321639945792+13302 113015.064847625111688106370674+13303 113024.560592477795593826733728+13304 113034.056412498668357430715226+13305 113043.55230768208014698711428+13306 113053.04827802238197981232523+13307 113062.544323513925722278871619+13308 113072.0404441510640896239977+13309 113081.536639928150645758317486+13310 113091.032910839539803074521308+13311 113100.529256879586822256139851+13312 113110.025678042647812086365659+13313 113119.522174323079729256932091+13314 113129.018745715240378177049683+13315 113138.515392213488410782399926+13316 113148.012113812183326344186412+13317 113157.508910505685471278243341+13318 113167.005782288356038954201365+13319 113176.502729154557069504710741+13320 113185.999751098651449634721783+13321 113195.496848115002912430822579+13322 113204.994020197976037170633964+13323 113214.491267341936249132261712+13324 113223.988589541249819403805944+13325 113233.485986790283864692927713+13326 113242.983459083406347136472762+13327 113252.481006414986074110152411+13328 113261.97862877939269803828158+13329 113271.476326170996716203573897+13330 113280.974098584169470556993895+13331 113290.471946013283147527666259+13332 113299.969868452710777832842111+13333 113309.467865896826236287922304+13334 113318.965938340004241616537718+13335 113328.464085776620356260686516+13336 113337.962308201050986190928357+13337 113347.460605607673380716635533+13338 113356.958977990865632296301015+13339 113366.457425345006676347903387+13340 113375.955947664476291059328636+13341 113385.454544943655097198848793+13342 113394.953217176924557925657394+13343 113404.451964358666978600461739+13344 113413.950786483265506596131929+13345 113423.449683545104131108406668+13346 113432.948655538567682966655792+13347 113442.447702458041834444699517+13348 113451.946824297913099071684387+13349 113461.446021052568831443015882+13350 113470.945292716397227031347694+13351 113480.444639283787321997627614+13352 113489.944060749128993002200047+13353 113499.443557106812957015965101+13354 113508.943128351230771131594249+13355 113518.442774476774832374802537+13356 113527.942495477838377515677313+13357 113537.442291348815482880063464+13358 113546.942162084101064161005127+13359 113556.44210767809087623024387+13360 113565.942128125181512949773309+13361 113575.44222341977040698345014+13362 113584.942393556255829608661576+13363 113594.442638529036890528049153+13364 113603.942958332513537681288899+13365 113613.443352961086557056927829+13366 113622.943822409157572504276756+13367 113632.444366671129045545359404+13368 113641.944985741404275186917772+13369 113651.44567961438739773247377+13370 113660.946448284483386594447064+13371 113670.447291746098052106329146+13372 113679.948209993638041334913581+13373 113689.449203021510837892582419+13374 113698.95027082412476174964876+13375 113708.451413395888969046755437+13376 113717.952630731213451907329801+13377 113727.453922824509038250094592+13378 113736.955289670187391601634869+13379 113746.456731262661010909020981+13380 113755.958247596343230352487555+13381 113765.459838665648219158168484+13382 113774.961504464990981410887894+13383 113784.463244988787355867007062+13384 113793.965060231454015767327275+13385 113803.4669501874084686500486+13386 113812.968914851069056163784552+13387 113822.470954216854953880632628+13388 113831.973068279186171109300698+13389 113841.475257032483550708289228+13390 113850.97752047116876889912931+13391 113860.479858589664335079676478+13392 113869.982271382393591637460307+13393 113879.484758843780713763089739+13394 113888.987320968250709263714154+13395 113898.489957750229418376540136+13396 113907.992669184143513582403933+13397 113917.495455264420499419399568+13398 113926.998315985488712296562614+13399 113936.50125134177732030760957+13400 113946.004261327716323044732858+13401 113955.507345937736551412451385+13402 113965.010505166269667441516684+13403 113974.513739007748164102874576+13404 113984.017047456605365121682368+13405 113993.520430507275424791381534+13406 114003.023888154193327787825891+13407 114012.527420391794888983465216+13408 114022.031027214516753261584311+13409 114031.534708616796395330597476+13410 114041.038464593072119538398387+13411 114050.542295137783059686765334+13412 114060.046200245369178845821828+13413 114069.550179910271269168552535+13414 114079.054234126930951705374514+13415 114088.558362889790676218763767+13416 114098.062566193293720997937038+13417 114107.566844031884192673588882+13418 114117.071196400007026032683951+13419 114126.575623292107983833304494+13420 114136.08012470263365661955305+13421 114145.584700626031462536510305+13422 114155.089351056749647145248095+13423 114164.594075989237283237897543+13424 114174.098875417944270652772301+13425 114183.603749337321336089546869+13426 114193.108697741820032924489997+13427 114202.613720625892741025753116+13428 114212.118817983992666568713805+13429 114221.623989810573841851374257+13430 114231.129236100091125109814729+13431 114240.634556847000200333701957+13432 114250.139952045757577081852515+13433 114259.645421690820590297851093+13434 114269.150965776647400125723682+13435 114278.656584297696991725665631+13436 114288.162277248429175089824582+13437 114297.668044623304584858138226+13438 114307.173886416784680134226896+13439 114316.679802623331744301340948+13440 114326.18579323740888483836293+13441 114335.691858253480033135864506+13442 114345.19799766600994431221812+13443 114354.704211469464197029763376+13444 114364.210499658309193311028123+13445 114373.716862227012158355004207+13446 114383.223299170041140353477892+13447 114392.729810481865010307414911+13448 114402.236396156953461843400134+13449 114411.743056189777011030131837+13450 114421.249790574806996194970541+13451 114430.756599306515577740542413+13452 114440.2634823793757379613972+13453 114449.770439787861280860720677+13454 114459.277471526446831967101591+13455 114468.784577589607838151353081+13456 114478.291757971820567443388553+13457 114487.799012667562108849151989+13458 114497.306341671310372167602665+13459 114506.813744977544087807754273+13460 114516.321222580742806605768407+13461 114525.828774475386899642102412+13462 114535.336400655957558058711554+13463 114544.844101116936792876305517+13464 114554.351875852807434811659182+13465 114563.859724858053134094977686+13466 114573.367648127158360287315729+13467 114582.875645654608402098051119+13468 114592.383717434889367202412519+13469 114601.891863462488182059061401+13470 114611.400083731892591727728159+13471 114620.908378237591159686902383+13472 114630.41674697407326765157726+13473 114639.925189935829115391048087+13474 114649.433707117349720546764879+13475 114658.942298513126918450239047+13476 114668.450964117653361941004126+13477 114677.959703925422521184630538+13478 114687.468517930928683490794363+13479 114696.977406128666953131400105+13480 114706.486368513133251158757428+13481 114715.995405078824315223811839+13482 114725.504515820237699394429313+13483 114735.013700731871773973734819+13484 114744.522959808225725318504745+13485 114754.032293043799555657613186+13486 114763.541700433094082910532094+13487 114773.051181970610940505885253+13488 114782.560737650852577200056065+13489 114792.070367468322256895849132+13490 114801.580071417524058461205605+13491 114811.08984949296287554797229+13492 114820.599701689144416410724482+13493 114830.109628000575203725642508+13494 114839.619628421762574409441973+13495 114849.129702947214679438357667+13496 114858.639851571440483667181127+13497 114868.150074288949765648351838+13498 114877.660371094253117451102037+13499 114887.170741981861944480655115+13500 114896.681186946288465297477593+13501 114906.191705982045711436584646+13502 114915.702299083647527226899166+13503 114925.212966245608569610664333+13504 114934.723707462444307962909682+13505 114944.234522728671023910970646+13506 114953.745412038805811154061548+13507 114963.256375387366575282902031+13508 114972.767412768872033599396902+13509 114982.278524177841714936369365+13510 114991.78970960879595947734764+13511 115001.300969056255918576404926+13512 115010.812302514743554578052705+13513 115020.323709978781640637187359+13514 115029.835191442893760539090088+13515 115039.346746901604308519480097+13516 115048.858376349438489084621042+13517 115058.370079780922316831480717+13518 115067.881857190582616267943953+13519 115077.393708572947021633078715+13520 115086.905633922543976717455377+13521 115096.41763323390273468351916+13522 115105.929706501553357886015698+13523 115115.441853720026717692469732+13524 115124.9540748838544943037169+13525 115134.466369987569176574488604+13526 115143.978739025704061834049942+13527 115153.491181992793255706890674+13528 115163.003698883371671933469213+13529 115172.516289691975032191009617+13530 115182.028954413139865914351561+13531 115191.541693041403510116853268+13532 115201.054505571304109211347388+13533 115210.567391997380614831149797+13534 115220.0803523141727856511213+13535 115229.593386516221187208782212+13536 115239.106494598067191725479814+13537 115248.619676554252977927608643+13538 115258.132932379321530867883613+13539 115267.646262067816641746665942+13540 115277.159665614282907733341857+13541 115286.673143013265731787754079+13542 115296.186694259311322481686041+13543 115305.700319346966693820398845+13544 115315.214018270779665064220917+13545 115324.727791025298860550190362+13546 115334.241637605073709513749977+13547 115343.755558004654445910494922+13548 115353.269552218592108237973015+13549 115362.783620241438539357537643+13550 115372.297762067746386316253264+13551 115381.811977692069100168853476+13552 115391.326267108960935799751644+13553 115400.84063031297695174510406+13554 115410.355067298673010014925613+13555 115419.869578060605775915257958+13556 115429.384162593332717870390155+13557 115438.898820891412107245131772+13558 115448.413552949403018167138416+13559 115457.928358761865327349289684+13560 115467.443238323359713912119516+13561 115476.958191628447659206298921+13562 115486.473218671691446635171062+13563 115495.988319447654161477338686+13564 115505.503493950899690709303872+13565 115515.018742175992722828160076+13566 115524.534064117498747674336468+13567 115534.049459769984056254394521+13568 115543.564929128015740563876847+13569 115553.080472186161693410208264+13570 115562.596088938990608235649058+13571 115572.111779381071978940300439+13572 115581.627543506976099705162153+13573 115591.143381311274064815242256+13574 115600.659292788537768482719003+13575 115610.175277933339904670154854+13576 115619.691336740253966913762564+13577 115629.20746920385424814672335+13578 115638.7236753187158405225571+13579 115648.239955079414635238544628+13580 115657.756308480527322359201926+13581 115667.272735516631390639806423+13582 115676.789236182305127349975211+13583 115686.305810472127618097295231+13584 115695.822458380678746651005392+13585 115705.339179902539194765730609+13586 115714.855975032290442005267743+13587 115724.37284376451476556642341+13588 115733.889786093795240102903663+13589 115743.406802014715737549255502+13590 115752.92389152186092694486022+13591 115762.441054609816274257978539+13592 115771.958291273168042209847535+13593 115781.47560150650329009882933+13594 115790.992985304409873624611528+13595 115800.510442661476444712459375+13596 115810.027973572292451337519631+13597 115819.545578031448137349176125+13598 115829.063256033534542295456988+13599 115838.581007573143501247493527+13600 115848.098832644867644624030741+13601 115857.616731243300398015989438+13602 115867.134703363035982011079955+13603 115876.652748998669412018467449+13604 115886.170868144796498093488745+13605 115895.689060796013844762420719+13606 115905.207326946918850847300199+13607 115914.725666592109709290795367+13608 115924.244079726185406981128643+13609 115933.762566343745724577051019+13610 115943.281126439391236332867852+13611 115952.799760007723309923516067+13612 115962.318467043344106269692766+13613 115971.837247540856579363035234+13614 115981.356101494864476091352295+13615 115990.875028899972336063907028+13616 116000.394029750785491436750805+13617 116009.913104041910066738108645+13618 116019.432251767952978693815856+13619 116028.951472923521936052805947+13620 116038.470767503225439412649798+13621 116047.990135501672781045146061+13622 116057.509576913474044721962784+13623 116067.02909173324010554033022+13624 116076.548679955582629748784828+13625 116086.068341575114074572964422+13626 116095.58807658644768804145447+13627 116105.107884984197508811685509+13628 116114.627766762978365995881664+13629 116124.147721917405878987060256+13630 116133.66775044209645728508247+13631 116143.187852331667300322755075+13632 116152.708027580736397291983168+13633 116162.22827618392252696997393+13634 116171.748598135845257545491376+13635 116181.268993431124946445162069+13636 116190.789462064382740159831797+13637 116200.310004030240574070973177+13638 116209.83061932332117227714418+13639 116219.351307938248047420497552+13640 116228.872069869645500513341116+13641 116238.392905112138620764748927+13642 116247.913813660353285407223279+13643 116257.434795508916159523407528+13644 116266.95585065245469587284972+13645 116276.476979085597134718817005+13646 116285.998180802972503655160822+13647 116295.519455799210617433232828+13648 116305.040804068942077788851557+13649 116314.562225606798273269319791+13650 116324.083720407411379060492627+13651 116333.605288465414356813896214+13652 116343.126929775440954473897146+13653 116352.648644332125706104922496+13654 116362.170432130103931718730461+13655 116371.692293164011737101731615+13656 116381.214227428486013642360742+13657 116390.736234918164438158499223+13658 116400.258315627685472724947981+13659 116409.780469551688364500950944+13660 116419.302696684813145557769013+13661 116428.824997021700632706304526+13662 116438.34737055699242732477619+13663 116447.869817285330915186444462+13664 116457.392337201359266287387364+13665 116466.91493029972143467432672+13666 116476.43759657506215827250478+13667 116485.960336022026958713611226+13668 116495.483148635262141163760542+13669 116505.006034409414794151519719+13670 116514.528993339132789395986287+13671 116524.052025419064781634916647+13672 116533.575130643860208452904696+13673 116543.098309008169290109610715+13674 116552.621560506643029368040504+13675 116562.144885133933211322874755+13676 116571.668282884692403228848633+13677 116581.191753753573954329181551+13678 116590.715297735231995684057121+13679 116600.238914824321439999153268+13680 116609.762605015497981454222474+13681 116619.286368303418095531722149+13682 116628.810204682739038845495105+13683 116638.334114148118848969500111+13684 116647.858096694216344266592514+13685 116657.382152315691123717354914+13686 116666.906281007203566748977857+13687 116676.430482763414833064190552+13688 116685.954757578986862470241571+13689 116695.479105448582374707929527+13690 116705.00352636686486928068371+13691 116714.528020328498625283694658+13692 116724.052587328148701233094653+13693 116733.577227360480934895188109+13694 116743.101940420161943115731855+13695 116752.626726501859121649265276+13696 116762.151585600240644988490299+13697 116771.676517709975466193701219+13698 116781.201522825733316722264321+13699 116790.726600942184706258147303+13700 116800.251752054000922541498476+13701 116809.776976155854031198275711+13702 116819.302273242416875569925129+13703 116828.827643308363076543109515+13704 116838.353086348367032379486423+13705 116847.878602357103918545535974+13706 116857.404191329249687542438318+13707 116866.929853259481068736000737+13708 116876.455588142475568186634382+13709 116885.981395972911468479380625+13710 116895.507276745467828553986993+13711 116905.033230454824483535032688+13712 116914.559257095662044562103659+13713 116924.085356662661898620017208+13714 116933.611529150506208369096127+13715 116943.13777455387791197549233+13716 116952.664092867460722941559971+13717 116962.190484085939129936278029+13718 116971.716948203998396625722343+13719 116981.243485216324561503587076+13720 116990.77009511760443772175559+13721 117000.296777902525612920920718+13722 117009.823533565776449061254412+13723 117019.350362102046082253126748+13724 117028.877263506024422587874271+13725 117038.40423777240215396861767+13726 117047.931284895870733941128741+13727 117057.458404871122393524746659+13728 117066.985597692850137043343496+13729 117076.512863355747741956339006+13730 117086.040201854509758689764638+13731 117095.567613183831510467376757+13732 117105.095097338409093141819075+13733 117114.622654312939375025834246+13734 117124.150284102119996723524638+13735 117133.677986700649370961662233+13736 117143.205762103226682421047662+13737 117152.733610304551887567918346+13738 117162.261531299325714485405723+13739 117171.789525082249662705041548+13740 117181.317591648026003038313253+13741 117190.845730991357777408268329+13742 117200.373943106948798681167744+13743 117209.902227989503650498188343+13744 117219.430585633727687107174248+13745 117228.959016034327033194437208+13746 117238.487519186008583716605902+13747 117248.016095083480003732524178+13748 117257.544743721449728235198185+13749 117267.07346509462696198379242+13750 117276.602259197721679335674633+13751 117286.131126025444624078509601+13752 117295.660065572507309262401738+13753 117305.189077833622017032086525+13754 117314.71816280350179845917075+13755 117324.247320476860473374421531+13756 117333.77655084841263020010411+13757 117343.305853912873625782368396+13758 117352.835229664959585223684243+13759 117362.36467809938740171532545+13760 117371.894199210874736369902444+13761 117381.423792994140018053943663+13762 117390.953459443902443220525585+13763 117400.483198554881975741951413+13764 117410.013010321799346742478383+13765 117419.542894739376054431093681+13766 117429.072851802334363934338957+13767 117438.60288150539730712918341+13768 117448.132983843288682475945428+13769 117457.663158810733054851262772+13770 117467.193406402455755381111279+13771 117476.72372661318288127387207+13772 117486.254119437641295653447243+13773 117495.784584870558627392424037+13774 117505.315122906663270945287445+13775 117514.845733540684386181681263+13776 117524.376416767351898219717553+13777 117533.907172581396497259334505+13778 117543.438000977549638415702682+13779 117552.968901950543541552679624+13780 117562.499875495111191116312804+13781 117572.030921605986335968390907+13782 117581.56204027790348922004342+13783 117591.093231505597928065388521+13784 117600.624495283805693615229235+13785 117610.155831607263590730797858+13786 117619.68724047070918785754861+13787 117629.218721868880816858998526+13788 117638.750275796517572850616535+13789 117648.281902248359314033760745+13790 117657.813601219146661529663887+13791 117667.345372703620999213466914+13792 117676.877216696524473548300741+13793 117686.4091331925999934194161+13794 117695.941122186591229968361492+13795 117705.473183673242616427209231+13796 117715.005317647299347952829548+13797 117724.537524103507381461212745+13798 117734.069803036613435461839382+13799 117743.602154441364989892098473+13800 117753.134578312510285951753686+13801 117762.667074644798325937457516+13802 117772.199643432978873077313422+13803 117781.732284671802451365485909+13804 117791.264998356020345396858533+13805 117800.797784480384600201739821+13806 117810.330643039648021080617081+13807 117819.863574028564173438958087+13808 117829.396577441887382622060617+13809 117838.929653274372733749949842+13810 117848.462801520776071552323527+13811 117857.996022175854000203545042+13812 117867.529315234363883157684163+13813 117877.062680691063842983605644+13814 117886.596118540712761200105534+13815 117896.129628778070278111095247+13816 117905.663211397896792640833332+13817 117915.196866394953462169204962+13818 117924.730593764002202367049095+13819 117934.264393499805687031533312+13820 117943.798265597127347921576293+13821 117953.332210050731374593317943+13822 117962.866226855382714235637116+13823 117972.40031600584707150571695+13824 117981.934477496890908364657774+13825 117991.468711323281443913137591+13826 118001.003017479786654227120093+13827 118010.537395961175272193610216+13828 118020.071846762216787346457204+13829 118029.60636987768144570220517+13830 118039.140965302340249595991132+13831 118048.675633030964957517490511+13832 118058.210373058328083946910075+13833 118067.745185379202899191028307+13834 118077.280069988363429219283182+13835 118086.815026880584455499907341+13836 118096.350056050641514836110633+13837 118105.885157493310899202310022+13838 118115.420331203369655580406828+13839 118124.9555771755955857961113+13840 118134.490895404767246355314488+13841 118144.02628588566394828050741+13842 118153.56174861306575694724749+13843 118163.097283581753491920672247+13844 118172.632890786508726792060232+13845 118182.168570222113789015439179+13846 118191.704321883351759744241359+13847 118201.24014576500647366800613+13848 118210.776041861862518849129647+13849 118220.312010168705236559661733+13850 118229.848050680320721118149881+13851 118239.38416339149581972653038+13852 118248.920348297018132307066537+13853 118258.45660539167601133933399+13854 118267.992934670258561697253087+13855 118277.529336127555640486168313+13856 118287.065809758357856879974758+13857 118296.602355557456571958291596+13858 118306.138973519643898543682567+13859 118315.67566363971270103892344+13860 118325.212425912456595264316451+13861 118334.749260332669948295051674+13862 118344.286166895147878298615342+13863 118353.823145594686254372245071+13864 118363.360196426081696380431991+13865 118372.897319384131574792469751+13866 118382.434514463634010520050397+13867 118391.97178165938787475490709+13868 118401.50912096619278880650366+13869 118411.046532378849123939770975+13870 118420.584015892158001212890103+13871 118430.121571500921291315122256+13872 118439.659199199941614404685499+13873 118449.196898984022339946678205+13874 118458.73467084796758655104924+13875 118468.272514786582221810614859+13876 118477.8104307946718621391223+13877 118487.348418867042872609360058+13878 118496.886478998502366791314821+13879 118506.424611183858206590375046+13880 118515.962815417919002085581179+13881 118525.501091695494111367922467+13882 118535.03944001139364037868038+13883 118544.57786036042844274781861+13884 118554.116352737410119632419623+13885 118563.654917137151019555167763+13886 118573.193553554464238242878889+13887 118582.732261984163618465076507+13888 118592.271042421063749872614417+13889 118601.809894859979968836345821+13890 118611.348819295728358285838905+13891 118620.887815723125747548138855+13892 118630.426884136989712186576308+13893 118639.966024532138573839622214+13894 118649.505236903391400059789083+13895 118659.044521245568004152578627+13896 118668.583877553488945015475745+13897 118678.123305821975526976988863+13898 118687.662806045849799635736599+13899 118697.202378219934557699580739+13900 118706.742022339053340824805507+13901 118716.281738398030433455343112+13902 118725.821526391690864662045559+13903 118735.361386314860407982002701+13904 118744.901318162365581257906518+13905 118754.441321929033646477461616+13906 118763.981397609692609612841905+13907 118773.52154519917122046019347+13908 118783.061764692298972479183596+13909 118792.602056083906102632595937+13910 118802.142419368823591225971814+13911 118811.682854541883161747297631+13912 118821.223361597917280706738374+13913 118830.763940531759157476417198+13914 118840.304591338242744130241072+13915 118849.845314012202735283772471+13916 118859.386108548474567934147095+13917 118868.926974941894421300037601+13918 118878.467913187299216661663331+13919 118888.008923279526617200846017+13920 118897.550005213415027841111454+13921 118907.091158983803595087837114+13922 118916.632384585532206868445689+13923 118926.173682013441492372644554+13924 118935.715051262372821892711119+13925 118945.256492327168306663824065+13926 118954.798005202670798704440442+13927 118964.339589883723890656718618+13928 118973.881246365171915626987054+13929 118983.422974641859947026258895+13930 118992.96477470863379841079236+13931 119002.506646560340023322696915+13932 119012.048590191825915130585202+13933 119021.590605597939506870270733+13934 119031.132692773529571085511297+13935 119040.674851713445619668798098+13936 119050.217082412537903702190586+13937 119059.759384865657413298196969+13938 119069.301759067655877440700398+13939 119078.844205013385763825930793+13940 119088.386722697700278703482315+13941 119097.929312115453366717376442+13942 119107.471973261499710747170657+13943 119117.014706130694731749112716+13944 119126.557510717894588597340483+13945 119136.100387017956177925127319+13946 119145.643335025737133966173011+13947 119155.186354736095828395940209+13948 119164.729446143891370173036379+13949 119174.272609243983605380641234+13950 119183.815844031233117067979639+13951 119193.359150500501225091839971+13952 119202.902528646649985958137913+13953 119212.445978464542192663525671+13954 119221.989499949041374537046604+13955 119231.533093095011797081835227+13956 119241.076757897318461816862605+13957 119250.620494350827106118727088+13958 119260.164302450404203063490396+13959 119269.708182190916961268559026+13960 119279.252133567233324734610964+13961 119288.796156574221972687567689+13962 119298.340251206752319420611458+13963 119307.884417459694514136247843+13964 119317.428655327919440788413515+13965 119326.972964806298717924629253+13966 119336.517345889704698528198163+13967 119346.061798573010469860449095+13968 119355.606322851089853303025236+13969 119365.150918718817404200217861+13970 119374.695586171068411701345236+13971 119384.240325202718898603176652+13972 119393.78513580864562119240156+13973 119403.330017983726069088143821+13974 119412.874971722838465084521023+13975 119422.419997020861764993248871+13976 119431.965093872675657486290625+13977 119441.510262273160563938551564+13978 119451.05550221719763827061848+13979 119460.600813699668766791544157+13980 119470.146196715456568041676851+13981 119479.691651259444392635534722+13982 119489.237177326516323104725233+13983 119498.782774911557173740909474+13984 119508.328444009452490438811415+13985 119517.874184615088550539272057+13986 119527.419996723352362672348473+13987 119536.965880329131666600457725+13988 119546.51183542731493306156563+13989 119556.057862012791363612420371+13990 119565.603960080450890471830933+13991 119575.15012962518417636399034+13992 119584.696370641882614361843695+13993 119594.242683125438327730500982+13994 119603.789067070744169770694643+13995 119613.335522472693723662281889+13996 119622.882049326181302307791738+13997 119632.428647626101948176016776+13998 119641.9753173673514331456496+13999 119651.522058544826258348963952+14000 119661.068871153423654015540511+14001 119670.615755188041579316037337+14002 119680.162710643578722206004942+14003 119689.709737514934499269745985+14004 119699.25683579700905556421956+14005 119708.804005484703264462990073+14006 119718.351246572918727500220684+14007 119727.898559056557774214711306+14008 119737.44594293052346199398114+14009 119746.993398189719575918395722+14010 119756.54092482905062860533849+14011 119766.088522843421860053426828+14012 119775.636192227739237486772588+14013 119785.183932976909455199287069+14014 119794.731745085839934399030438+14015 119804.279628549438823052605572+14016 119813.827583362614995729596319+14017 119823.375609520278053447050142+14018 119832.923707017338323514005149+14019 119842.471875848706859376061482+14020 119852.020116009295440459997054+14021 119861.568427494016572018427614+14022 119871.116810297783484974511127+14023 119880.665264415510135766696459+14024 119890.213789842111206193516337+14025 119899.762386572502103258424579+14026 119909.31105460159895901467758+14027 119918.859793924318630410260027+14028 119928.40860453557869913285484+14029 119937.957486430297471454857313+14030 119947.506439603393978078433446+14031 119957.05546404978797398062245+14032 119966.604559764399938258483406+14033 119976.15372674215107397428607+14034 119985.702964977963308000745799+14035 119995.25227446675929086630259+14036 120004.801655203462396600444213+14037 120014.351107182996722579073422+14038 120023.900630400287089369919225+14039 120033.450224850259040577992208+14040 120042.999890527838842691083887+14041 120052.549627427953484925310073+14042 120062.099435545530679070698243+14043 120071.649314875498859336818889+14044 120081.19926541278718219846084+14045 120090.749287152325526241350538+14046 120100.299380089044492007915244+14047 120109.849544217875401843090178+14048 120119.39977953375029974016955+14049 120128.950086031601951186701499+14050 120138.500463706363843010426888+14051 120148.050912552970183225261975+14052 120157.601432566355900877324918+14053 120167.152023741456645891006109+14054 120176.702686073208788915082324+14055 120186.25341955654942116887467+14056 120195.804224186416354288450304+14057 120205.355099957748120172867934+14058 120214.906046865483970830467054+14059 120224.457064904563878225200927+14060 120234.008154069928534123013274+14061 120243.559314356519349938258678+14062 120253.110545759278456580166671+14063 120262.661848273148704299349493+14064 120272.213221893073662534353507+14065 120281.76466661399761975825426+14066 120291.316182430865583325295165+14067 120300.867769338623279317569796+14068 120310.419427332217152391747778+14069 120319.971156406594365625844253+14070 120329.522956556702800366032914+14071 120339.074827777491056073502588+14072 120348.626770063908450171357345+14073 120358.178783410905017891560133+14074 120367.730867813431512121919911+14075 120377.283023266439403253122267+14076 120386.835249764880879025803509+14077 120396.387547303708844377668214+14078 120405.939915877876921290650212+14079 120415.492355482339448638117+14080 120425.04486611205148203211756+14081 120434.597447761968793670673576+14082 120444.15010042704787218511403+14083 120453.702824102245922487453152+14084 120463.25561878252086561781173+14085 120472.808484462831338591881745+14086 120482.361421138136694248434325+14087 120491.914428803397001096870999+14088 120501.467507453573043164818241+14089 120511.020657083626319845765281+14090 120520.573877688519045746745173+14091 120530.127169263214150536059104+14092 120539.680531802675278791043925+14093 120549.233965301866789845882899+14094 120558.787469755753757639459629+14095 120568.341045159301970563255182+14096 120577.894691507477931309288364+14097 120587.448408795248856718099145+14098 120597.002197017582677626775227+14099 120606.556056169448038717021712+14100 120616.109986245814298363273891+14101 120625.663987241651528480853105+14102 120635.218059151930514374165687+14103 120644.772201971622754584944958+14104 120654.32641569570046074053626+14105 120663.880700319136557402225024+14106 120673.435055836904681913607839+14107 120682.989482243979184249006523+14108 120692.543979535335126861925172+14109 120702.098547705948284533550174+14110 120711.653186750795144221293172+14111 120721.207896664852904907376965+14112 120730.762677443099477447464321+14113 120740.317529080513484419329706+14114 120749.872451572074259971573888+14115 120759.427444912761849672381427+14116 120768.982509097557010358321013+14117 120778.53764412144120998318866+14118 120788.092849979396627466893712+14119 120797.648126666406152544387677+14120 120807.203474177453385614635853+14121 120816.758892507522637589631732+14122 120826.314381651598929743454179+14123 120835.869941604667993561367362+14124 120845.425572361716270588963414+14125 120854.981273917730912281347824+14126 120864.537046267699779852367529+14127 120874.092889406611444123881707+14128 120883.648803329455185375075232+14129 120893.204788031220993191814808+14130 120902.760843506899566316047735+14131 120912.316969751482312495243317+14132 120921.873166759961348331876877+14133 120931.429434527329499132956387+14134 120940.985773048580298759591664+14135 120950.542182318707989476606162+14136 120960.098662332707521802191295+14137 120969.655213085574554357603323+14138 120979.21183457230545371690275+14139 120988.768526787897294256736236+14140 120998.32528972734785800616101+14141 121007.88212338565563449651176+14142 121017.439027757819820611309987+14143 121026.996002838840320436215814+14144 121036.553048623717745109022228+14145 121046.110165107453412669691749+14146 121055.667352285049347910435493+14147 121065.224610151508282225834639+14148 121074.781938701833653463004263+14149 121084.339337931029605771799538+14150 121093.896807834100989455064276+14151 121103.454348406053360818921806+14152 121113.011959641892982023108163+14153 121122.569641536626820931347583+14154 121132.12739408526255096177028+14155 121141.685217282808550937372495+14156 121151.243111124273904936518805+14157 121160.80107560466840214348667+14158 121170.359110719002536699053207+14159 121179.917216462287507551124174+14160 121189.475392829535218305405158+14161 121199.033639815758277076114932+14162 121208.591957415969996336740995+14163 121218.150345625184392770837247+14164 121227.708804438416187122863814+14165 121237.267333850680804049068992+14166 121246.825933856994371968413292+14167 121256.384604452373722913535587+14168 121265.943345631836392381761333+14169 121275.502157390400619186152847+14170 121285.061039723085345306601642+14171 121294.619992624910215740962792+14172 121304.179016090895578356231313+14173 121313.738110116062483739760547+14174 121323.297274695432685050522541+14175 121332.856509824028637870410393+14176 121342.415815496873500055582561+14177 121351.975191708991131587849113+14178 121361.53463845540609442609991+14179 121371.094155731143652357774701+14180 121380.653743531229770850375122+14181 121390.213401850691116903018572+14182 121399.773130684555058898033967+14183 121409.332930027849666452599351+14184 121418.892799875603710270421335+14185 121428.452740222846661993456379+14186 121438.012751064608694053673875+14187 121447.572832395920679524861027+14188 121457.132984211814191974469515+14189 121466.69320650732150531550393+14190 121476.253499277475593658451953+14191 121485.813862517310131163256277+14192 121495.374296221859491891328255+14193 121504.934800386158749657603245+14194 121514.495375005243677882637664+14195 121524.056020074150749444747708+14196 121533.616735587917136532189746+14197 121543.177521541580710495382351+14198 121552.738377930180041699169983+14199 121562.299304748754399375128277+14200 121571.860301992343751473910947+14201 121581.421369655988764517638272+14202 121590.982507734730803452327166+14203 121600.543716223611931500362807+14204 121610.104995117674910013011812+14205 121619.666344411963198322976946+14206 121629.227764101520953596993344+14207 121638.789254181393030688466246+14208 121648.350814646624981990150212+14209 121657.912445492263057286869812+14210 121667.474146713354203608281781+14211 121677.035918304946065081678612+14212 121686.597760262086982784833582+14213 121696.159672579825994598887195+14214 121705.721655253212835061275028+14215 121715.283708277297935218696953+14216 121724.845831647132422480127743+14217 121734.408025357768120469869033+14218 121743.970289404257548880642616+14219 121753.532623781653923326725078+14220 121763.095028485011155197123738+14221 121772.657503509383851508793892+14222 121782.220048849827314759897345+14223 121791.7826645013975427831022+14224 121801.345350459151228598923922+14225 121810.908106718145760269107626+14226 121820.470933273439220750051599+14227 121830.03383012009038774627204+14228 121839.596797253158733563908982+14229 121849.159834667704424964273417+14230 121858.722942358788323017435571+14231 121868.28612032147198295585435+14232 121877.849368550817654028047912+14233 121887.412687041888279352305371+14234 121896.976075789747495770439616+14235 121906.539534789459633701581217+14236 121916.10306403608971699601342+14237 121925.666663524703462789048208+14238 121935.230333250367281354943415+14239 121944.794073208148275960860877+14240 121954.357883393114242720865613+14241 121963.921763800333670449966007+14242 121973.485714424875740518194996+14243 121983.049735261810326704732232+14244 121992.613826306207995052067212+14245 122002.177987553140003720203364+14246 122011.742218997678302840903064+14247 122021.306520634895534371973589+14248 122030.870892459865031951593963+14249 122040.435334467660820752682713+14250 122049.999846653357617337306495+14251 122059.564429012030829511129596+14252 122069.129081538756556177904277+14253 122078.693804228611587194001962+14254 122088.258597076673403222985247+14255 122097.823460078020175590220721+14256 122107.388393227730766137532574+14257 122116.953396520884727077896996+14258 122126.518469952562300850177335+14259 122136.083613517844419973900007+14260 122145.648827211812706904071148+14261 122155.214111029549473886033983+14262 122164.779464966137722810366909+14263 122174.344889016661145067822273+14264 122183.910383176204121404305823+14265 122193.475947439851721775896835+14266 122203.041581802689705203908886+14267 122212.607286259804519629991265+14268 122222.173060806283301771271009+14269 122231.73890543721387697553555+14270 122241.304820147684759076455949+14271 122250.870804932785150248850721+14272 122260.436859787604940863990219+14273 122270.002984707234709344941574+14274 122279.569179686765722021954174+14275 122289.135444721289932987885658+14276 122298.701779805899983953668437+14277 122308.268184935689204103816691+14278 122317.834660105751609951973861+14279 122327.401205311181905196500602+14280 122336.96782054707548057610319+14281 122346.534505808528413725502371+14282 122356.10126109063746903114263+14283 122365.668086388500097486941871+14284 122375.234981697214436550081499+14285 122384.801947011879309996836874+14286 122394.368982327594227778448146+14287 122403.936087639459385877031431+14288 122413.503262942575666161530338+14289 122423.070508232044636243707811+14290 122432.637823502968549334178294+14291 122442.205208750450344098480184+14292 122451.772663969593644513188571+14293 122461.340189155502759722068249+14294 122470.90778430328268389226698+14295 122480.475449408039096070549001+14296 122490.043184464878360039568754+14297 122499.610989468907524174184832+14298 122509.178864415234321297814129+14299 122518.746809298967168538826162+14300 122528.314824115215167186977576+14301 122537.8829088590881025498868+14302 122547.45106352569644380954885+14303 122557.01928811015134387889025+14304 122566.587582607564639258364084+14305 122576.155947013048849892585135+14306 122585.724381321717179027005115+14307 122595.292885528683513064627973+14308 122604.861459629062421422765252+14309 122614.430103617969156389831497+14310 122623.998817490519652982179693+14311 122633.567601241830528800976719+14312 122643.136454867019083889118803+14313 122652.705378361203300588186968+14314 122662.274371719501843395442451+14315 122671.843434937034058820862085+14316 122681.412568008919975244213626+14317 122690.981770930280302772171013+14318 122700.551043696236433095469548+14319 122710.120386301910439346100976+14320 122719.689798742425075954548468+14321 122729.259281012903778507061467+14322 122738.828833108470663602970405+14323 122748.398455024250528712041269+14324 122757.96814675536885203187+14325 122767.537908296951792345316713+14326 122777.107739644126188877979732+14327 122786.677640792019561155709406+14328 122796.247611735760108862161714+14329 122805.817652470476711696391635+14330 122815.387762991298929230486267+14331 122824.957943293357000767237685+14332 122834.528193371781845197855526+14333 122844.09851322170506085971928+14334 122853.668902838258925394170281+14335 122863.23936221657639560434338+14336 122872.809891351791107313038286+14337 122882.380490239037375220630563+14338 122891.951158873450192763022266+14339 122901.521897250165231969632208+14340 122911.092705364318843321425841+14341 122920.663583211048055608984728+14342 122930.234530785490575790615612+14343 122939.805548082784788850499056+14344 122949.376635098069757656877628+14345 122958.947791826485222820283651+14346 122968.519018263171602551806467+14347 122978.090314403269992521399228+14348 122987.661680241922165716225183+14349 122997.233115774270572299043462+14350 123006.804620995458339466634329+14351 123016.376195900629271308263901+14352 123025.947840484927848664188315+14353 123035.519554743499228984197327+14354 123045.091338671489246186197332+14355 123054.663192264044410514833798+14356 123064.235115516311908400153079+14357 123073.807108423439602316303625+14358 123083.379170980576030640276542+14359 123092.951303182870407510685515+14360 123102.523505025472622686586063+14361 123112.095776503533241406334126+14362 123121.668117612203504246483951+14363 123131.24052834663532698072529+14364 123140.81300870198130043885987+14365 123150.385558673394690365817139+14366 123159.958178256029437280709266+14367 123169.530867445040156335925385+14368 123179.103626235582137176265067+14369 123188.67645462281134379811101+14370 123198.249352601884414408640924+14371 123207.822320167958661285078615+14372 123217.39535731619207063398423+14373 123226.968464041743302450583675+14374 123236.541640339771690378137175+14375 123246.114886205437241567346965+14376 123255.688201633900636535804106+14377 123265.261586620323229027474404+14378 123274.835041159867045872223421+14379 123284.408565247694786845380574+14380 123293.982158878969824527342284+14381 123303.55582204885620416321419+14382 123313.129554752518643522492398+14383 123322.703356985122532758783751+14384 123332.277228741833934269565116+14385 123341.851170017819582555981663+14386 123351.425180808246884082684135+14387 123360.99926110828391713770508+14388 123370.57341091309943169237405+14389 123380.147630217862849261271733+14390 123389.721919017744262762223025+14391 123399.296277307914436376329011+14392 123408.870705083544805408037855+14393 123418.445202339807476145254571+14394 123428.01976907187522571948968+14395 123437.594405274921501966046724+14396 123447.169110944120423284248628+14397 123456.743886074646778497702899+14398 123466.318730661676026714605649+14399 123475.893644700384297188084424+14400 123485.468628185948389176579826+14401 123495.043681113545771804265922+14402 123504.618803478354583921509418+14403 123514.193995275553633965367586+14404 123523.769256500322399820124936+14405 123533.34458714784102867786861+14406 123542.919987213290336899102498+14407 123552.49545669185180987340005+14408 123562.070995578707601880095773+14409 123571.64660386904053594901541+14410 123581.222281558034103721244769+14411 123590.798028640872465309937209+14412 123600.373845112740449161159757+14413 123609.949730968823551914777836+14414 123619.525686204307938265378617+14415 123629.10171081438044082323295+14416 123638.677804794228559975295883+14417 123648.253968139040463746245741+14418 123657.83020084400498765956177+14419 123667.406502904311634598640306+14420 123676.982874315150574667949485+14421 123686.559315071712645054222454+14422 123696.135825169189349887689092+14423 123705.712404602772860103346211+14424 123715.289053367656013302266233+14425 123724.865771459032313612944327+14426 123734.442558872095931552683991+14427 123744.01941560204170388902107+14428 123753.59634164406513350118619+14429 123763.173336993362389241605603+14430 123772.750401645130305797440423+14431 123782.327535594566383552164241+14432 123791.904738836868788447179108+14433 123801.482011367236351843469875+14434 123811.059353180868570383296865+14435 123820.636764272965605851926879+14436 123830.214244638728285039402513+14437 123839.791794273358099602349774+14438 123849.369413172057205925823988+14439 123858.947101330028424985193973+14440 123868.524858742475242208064484+14441 123878.102685404601807336236893+14442 123887.680581311612934287708115+14443 123897.258546458714101018707744+14444 123906.836580841111449385773406+14445 123916.4146844540117850078643+14446 123925.992857292622577128512922+14447 123935.571099352151958478014956+14448 123945.149410627808725135657325+14449 123954.727791114802336391984375+14450 123964.306240808342914611102195+14451 123973.884759703641245093021046+14452 123983.463347795908775936035898+14453 123993.042005080357617899145048+14454 124002.620731552200544264506823+14455 124012.199527206650990699934338+14456 124021.778392038923055121428307+14457 124031.357326044231497555747886+14458 124040.936329217791740003019548+14459 124050.515401554819866299383954+14460 124060.094543050532621979680835+14461 124069.673753700147414140171844+14462 124079.253033498882311301301393+14463 124088.832382441956043270495434+14464 124098.411800524588001004998191+14465 124107.99128774199823647474682+14466 124117.570844089407462525283992+14467 124127.150469562037052740708375+14468 124136.73016415510904130666301+14469 124146.309927863846122873361564+14470 124155.889760683471652418652455+14471 124165.469662609209645111120818+14472 124175.049633636284776173228322+14473 124184.629673759922380744490806+14474 124194.209782975348453744693729+14475 124203.789961277789649737145424+14476 124213.370208662473282791968135+14477 124222.95052512462732634942683+14478 124232.530910659480413083295776+14479 124242.111365262261834764262856+14480 124251.691888928201542123371631+14481 124261.272481652530144715501114+14482 124270.853143430478910782883261+14483 124280.433874257279767118658149+14484 124290.014674128165298930466848+14485 124299.595543038368749704081951+14486 124309.176480983124021067075769+14487 124318.75748795766567265252617+14488 124328.338563957228921962760041+14489 124337.919708977049644233134375+14490 124347.500923012364372295854962+14491 124357.082206058410296443832672+14492 124366.663558110425264294577309+14493 124376.244979163647780654129046+14494 124385.8264692133170073810274+14495 124395.408028254672763250317752+14496 124404.989656282955523817595394+14497 124414.571353293406421283087091+14498 124424.153119281267244355770141+14499 124433.734954241780438117528926+14500 124443.31685817018910388734894+14501 124452.898831061736999085548275+14502 124462.480872911668537098046557+14503 124472.062983715228787140671324+14504 124481.645163467663474123501821+14505 124491.227412164218978515250212+14506 124500.80972980014233620768018+14507 124510.392116370681238380062928+14508 124519.974571871084031363670535+14509 124529.557096296599716506306681+14510 124539.139689642477950036874719+14511 124548.722351903969042929983075+14512 124558.305083076323960770587973+14513 124567.887883154794323618673463+14514 124577.470752134632405873968755+14515 124587.053690011091136140702816+14516 124596.636696779424097092396257+14517 124606.219772434885525336690464+14518 124615.802916972730311280213973+14519 124625.38613038821399899348608+14520 124634.969412676592786075857668+14521 124644.552763833123523520489237+14522 124654.136183853063715579366129+14523 124663.719672731671519628350927+14524 124673.30323046420574603227303+14525 124682.886857045925858010055374+14526 124692.470552472091971499878295+14527 124702.054316737964855024380525+14528 124711.638149838805929555897299+14529 124721.222051769877268381735567+14530 124730.806022526441596969486294+14531 124740.390062103762292832373841+14532 124749.974170497103385394642403+14533 124759.558347701729555856979512+14534 124769.142593712906137061976561+14535 124778.726908525899113359626373+14536 124788.311292135975120472857768+14537 124797.89574453840144536310714+14538 124807.480265728446026095927018+14539 124817.064855701377451706631607+14540 124826.649514452464962065979284+14541 124836.234241976978447745892049+14542 124845.819038270188449885211914+14543 124855.403903327366160055494215+14544 124864.988837143783420126837832+14545 124874.573839714712722133752316+14546 124884.158911035427208141061897+14547 124893.744051101200670109846364+14548 124903.329259907307549763418814+14549 124912.914537449022938453340238+14550 124922.499883721622577025470955+14551 124932.085298720382855686058862+14552 124941.670782440580813867864492+14553 124951.256334877494140096322877+14554 124960.841956026401171855742191+14555 124970.427645882580895455539168+14556 124980.013404441312945896511279+14557 124989.599231697877606737145654+14558 124999.185127647555809959964743+14559 125008.771092285629135837908697+14560 125018.357125607379812800754457+14561 125027.943227608090717301571542+14562 125037.529398283045373683214517+14563 125047.115637627527954044852141+14564 125056.701945636823278108533165+14565 125066.288322306216813085788783+14566 125075.874767630994673544271711+14567 125085.46128160644362127443189+14568 125095.047864227851065156228804+14569 125104.634515490505061025880381+14570 125114.221235389694311542648487+14571 125123.808023920708166055660992+14572 125133.394881078836620470770387+14573 125142.981806859370317117448952+14574 125152.568801257600544615720459+14575 125162.155864268819237743128391+14576 125171.74299588831897730174067+14577 125181.33019611139298998519089+14578 125190.917464933335148245756015+14579 125200.504802349439970161470567+14580 125210.092208355002619303277262+14581 125219.679682945318904602214091+14582 125229.267226115685280216637838+14583 125238.85483786139884539948402+14584 125248.442518177757344365563229+14585 125258.030267060059166158893877+14586 125267.61808450360334452007132+14587 125277.205970503689557753673353+14588 125286.793925055618128595702066+14589 125296.381948154690024081062042+14590 125305.970039796206855411074892+14591 125315.558199975470877821030112+14592 125325.146428687784990447772242+14593 125334.734725928452736197324327+14594 125344.323091692778301612547662+14595 125353.911525976066516740837804+14596 125363.500028773622855001856848+14597 125373.088600080753433055301941+14598 125382.677239892765010668710044+14599 125392.265948204964990585298901+14600 125401.854725012661418391844225+14601 125411.44357031116298238659308+14602 125421.032484095779013447213446+14603 125430.621466361819484898779957+14604 125440.210517104595012381795799+14605 125449.799636319416853720250751+14606 125459.388824001596908789715372+14607 125468.978080146447719385471293+14608 125478.567404749282469090677638+14609 125488.156797805414983144573526+14610 125497.746259310159728310716674+14611 125507.335789258831812745258058+14612 125516.925387646746985865252648+14613 125526.515054469221638217006181+14614 125536.104789721572801344457979+14615 125545.694593399118147657599779+14616 125555.284465497175990300930591+14617 125564.874406011065283021947537+14618 125574.464414936105620039672692+14619 125584.054492267617235913215888+14620 125593.644638000921005410373488+14621 125603.234852131338443376263108+14622 125612.825134654191704601994271+14623 125622.415485564803583693374995+14624 125632.005904858497514939654287+14625 125641.596392530597572182300542+14626 125651.186948576428468683815831+14627 125660.777572991315556996586058+14628 125670.36826577058482883176699+14629 125679.959026909562914928206132+14630 125689.549856403577084921400447+14631 125699.140754247955247212489899+14632 125708.73172043802594883728681+14633 125718.322754969118375335341025+14634 125727.913857836562350619040863+14635 125737.505029035688336842749846+14636 125747.096268561827434271979199+14637 125756.687576410311381152596095+14638 125766.278952576472553580067651+14639 125775.870397055643965368740649+14640 125785.461909843159267921156971+14641 125795.053490934352750097404746+14642 125804.645140324559338084505181+14643 125814.236858009114595265835085+14644 125823.828643983354722090585045+14645 125833.420498242616555943253274+14646 125843.012420782237571013175095+14647 125852.604411597555878164088053+14648 125862.196470683910224803732657+14649 125871.788598036639994753488724+14650 125881.380793651085208118047315+14651 125890.973057522586521155118261+14652 125900.565389646485226145173255+14653 125910.157790018123251261224506+14654 125919.75025863284316043863894+14655 125929.34279548598815324498793+14656 125938.935400572902064749932558+14657 125948.528073888929365395144381+14658 125958.120815429415160864261692+14659 125967.713625189705191952881281+14660 125977.306503165145834438585653+14661 125986.899449351084098951005721+14662 125996.492463742867630841918942+14663 126006.085546335844710055382892+14664 126015.678697125364250997904272+14665 126025.271916106775802408643318+14666 126034.865203275429547229653622+14667 126044.458558626676302476157336+14668 126054.051982155867519106855759+14669 126063.645473858355281894275283+14670 126073.239033729492309295148697+14671 126082.832661764631953320831833+14672 126092.426357959128199407755539+14673 126102.020122308335666287912965+14674 126111.613954807609605859382165+14675 126121.207855452305903056883984+14676 126130.801824237781075722375227+14677 126140.395861159392274475677098+14678 126149.989966212497282585138898+14679 126159.584139392454515838336966+14680 126169.178380694623022412808853+14681 126178.77269011436248274682272+14682 126188.367067647033209410181938+14683 126197.961513287996146975064895+14684 126207.55602703261287188689998+14685 126217.150608876245592335275744+14686 126226.745258814257148124886221+14687 126236.3399768420110105465114+14688 126245.934762954871282248032831+14689 126255.529617148202697105484358+14690 126265.124539417370620094137969+14691 126274.719529757741047159624737+14692 126284.314588164680605089090863+14693 126293.909714633556551382388788+14694 126303.504909159736774123303375+14695 126313.100171738589791850813141+14696 126322.695502365484753430386532+14697 126332.290901035791437925313229+14698 126341.886367744880254468070475+14699 126351.481902488122242131724395+14700 126361.077505260889069801366329+14701 126370.673176058553036045584129+14702 126380.268914876487068987968441+14703 126389.864721710064726178653933+14704 126399.46059655466019446589548+14705 126409.056539405648289867679274+14706 126418.652550258404457443368867+14707 126428.248629108304771165386113+14708 126437.844775950725933790927021+14709 126447.440990781045276733712485+14710 126457.037273594640759935773895+14711 126466.633624386890971739273611+14712 126476.230043153175128758360285+14713 126485.826529888873075751059027+14714 126495.423084589365285491196396+14715 126505.019707250032858640360208+14716 126514.616397866257523619894146+14717 126524.213156433421636482927171+14718 126533.809982946908180786437697+14719 126543.406877402100767463352553+14720 126553.00383979438363469468069+14721 126562.600870119141647781681636+14722 126572.197968371760299018068688+14723 126581.795134547625707562246817+14724 126591.392368642124619309585294+14725 126600.989670650644406764725004+14726 126610.587040568573068913920453+14727 126620.184478391299231097416444+14728 126629.78198411421214488185942+14729 126639.379557732701687932743453+14730 126648.97719924215836388689088+14731 126658.574908637973302224967557+14732 126668.172685915538258144032734+14733 126677.770531070245612430123534+14734 126687.36844409748837133087402+14735 126696.966424992660166428168848+14736 126706.564473751155254510831484+14737 126716.16259036836851744734698+14738 126725.760774839695462058619294+14739 126735.359027160532219990763143+14740 126744.957347326275547587930382+14741 126754.555735332322825765170887+14742 126764.15419117407205988132794+14743 126773.7527148469218796119681+14744 126783.351306346271538822345545+14745 126792.949965667520915440400887+14746 126802.548692806070511329794426+14747 126812.147487757321452162973854+14748 126821.746350516675487294276382+14749 126831.345281079534989633065283+14750 126840.944279441302955516900843+14751 126850.543345597383004584745706+14752 126860.142479543179379650204591+14753 126869.741681274096946574798396+14754 126879.34095078554119414127264+14755 126888.940288072918233926940268+14756 126898.539693131634800177058784+14757 126908.139165957098249678241705+14758 126917.738706544716561631904333+14759 126927.338314889898337527743821+14760 126936.937990988052801017253531+14761 126946.537734834589797787271667+14762 126956.137546424919795433564175+14763 126965.737425754453883334441896+14764 126975.337372818603772524411959+14765 126984.937387612781795567863405+14766 126994.537470132400906432787034+14767 127004.137620372874680364529453+14768 127013.737838329617313759581323+14769 127023.338123998043624039399792+14770 127032.938477373569049524265092+14771 127042.538898451609649307171311+14772 127052.139387227582103127751298+14773 127061.739943696903711246235722+14774 127071.340567854992394317446242+14775 127080.941259697266693264822803+14776 127090.542019219145769154485031+14777 127100.142846416049403069327718+14778 127109.743741283397995983150389+14779 127119.344703816612568634820938+14780 127128.94573401111476140247332+14781 127138.546831862326834177739289+14782 127148.147997365671666240014169+14783 127157.749230516572756130756647+14784 127167.350531310454221527822582+14785 127176.951899742740799119832803+14786 127186.55333580885784448057491+14787 127196.154839504231331943439034+14788 127205.756410824287854475887577+14789 127215.358049764454623553958898+14790 127224.959756320159469036804942+14791 127234.561530486830839041262797+14792 127244.163372259897799816460178+14793 127253.765281634790035618454811+14794 127263.367258606937848584907716+14795 127272.969303171772158609790372+14796 127282.571415324724503218125762+14797 127292.173595061227037440763272+14798 127301.775842376712533689187446+14799 127311.378157266614381630360575+14800 127320.980539726366588061599118+14801 127330.582989751403776785483936+14802 127340.185507337161188484804334+14803 127349.788092479074680597535889+14804 127359.390745172580727191852072+14805 127368.993465413116418841169625+14806 127378.596253196119462499227712+14807 127388.199108517028181375200806+14808 127397.802031371281514808845319+14809 127407.405021754319018145679955+14810 127417.008079661580862612199773+14811 127426.611205088507835191123959+14812 127436.214398030541338496677281+14813 127445.817658483123390649905231+14814 127455.420986441696625154022827+14815 127465.024381901704290769797076+14816 127474.627844858590251390963084+14817 127484.231375307798985919673794+14818 127493.834973244775588141983354+14819 127503.438638664965766603364088+14820 127513.042371563815844484257072+14821 127522.646171936772759475656297+14822 127532.250039779284063654726413+14823 127541.853975086797923360454028+14824 127551.457977854763119069332576+14825 127561.062048078629045271080714+14826 127570.666185753845710344394264+14827 127580.270390875863736432731665+14828 127589.87466344013435932013294+14829 127599.479003442109428307072157+14830 127609.083410877241406086343383+14831 127618.687885740983368618980107+14832 127628.292428028789005010208128+14833 127637.897037736112617385431901+14834 127647.501714858409120766254316+14835 127657.106459391134042946529916+14836 127666.711271329743524368451527+14837 127676.316150669694317998670302+14838 127685.921097406443789204449153+14839 127695.526111535449915629849579+14840 127705.131193052171287071951856+14841 127714.736341952067105357108603+14842 127724.341558230597184217231686+14843 127733.946841883221949166112471+14844 127743.552192905402437375775405+14845 127753.157611292600297552864913+14846 127762.763097040277789815065599+14847 127772.368650143897785567555748+14848 127781.974270598923767379494109+14849 127791.579958400819828860539951+14850 127801.185713545050674537406381+14851 127810.791536027081619730446913+14852 127820.397425842378590430275273+14853 127830.003382986408123174418441+14854 127839.609407454637364924002897+14855 127849.215499242534072940474084+14856 127858.821658345566614662349061+14857 127868.427884759203967582002338+14858 127878.034178478915719122484885+14859 127887.640539500172066514376303+14860 127897.246967818443816672670146+14861 127906.853463429202386073692373+14862 127916.460026327919800632052942+14863 127926.066656510068695577630509+14864 127935.673353971122315332590234+14865 127945.280118706554513388434689+14866 127954.886950711839752183087838+14867 127964.493849982453102978012098+14868 127974.100816513870245735358456+14869 127983.707850301567468995149635+14870 127993.314951341021669752496304+14871 128002.922119627710353334846309+14872 128012.529355157111633279266924+14873 128022.136657924704231209760107+14874 128031.744027925967476714610752+14875 128041.351465156381307223767918+14876 128050.958969611426267886259034+14877 128060.566541286583511447637069+14878 128070.174180177334798127460644+14879 128079.781886279162495496807087+14880 128089.389659587549578355818417+14881 128098.997500097979628611280239+14882 128108.605407805936835154233553+14883 128118.213382706905993737619448+14884 128127.821424796372506853956691+14885 128137.429534069822383613052173+14886 128147.037710522742239619744234+14887 128156.645954150619296851678822+14888 128166.254264948941383537118504+14889 128175.862642913196934032784299+14890 128185.471088038874988701730328+14891 128195.079600321465193791251271+14892 128204.688179756457801310822624+14893 128214.296826339343668910073732+14894 128223.905540065614259756793599+14895 128233.514320930761642414969466+14896 128243.123168930278490722858127+14897 128252.73208405965808367109+14898 128262.341066314394305280805915+14899 128271.950115689981644481826628+14900 128281.559232181915194990855039+14901 128291.168415785690655189711108+14902 128300.777666496804328003599453+14903 128310.386984310753120779409629+14904 128319.996369223034545164049059+14905 128329.605821229146716982808632+14906 128339.21534032458835611776093+14907 128348.824926504858786386191094+14908 128358.434579765457935419060302+14909 128368.044300101886334539501865+14910 128377.654087509645118641349909+14911 128387.263941984236026067700656+14912 128396.873863521161398489506274+14913 128406.483852115924180784201289+14914 128416.093907764027920914361561+14915 128425.704030460976769806395793+14916 128435.314220202275481229269578+14917 128444.924476983429411673261964+14918 128454.534800799944520228754534+14919 128464.145191647327368465052981+14920 128473.755649521085120309241171+14921 128483.36617441672554192506769+14922 128492.976766329757001591864852+14923 128502.587425255688469583500161+14924 128512.198151190029518047360229+14925 128521.808944128290320883367114+14926 128531.419804065981653623027093+14927 128541.03073099861489330851184+14928 128550.641724921702018371772009+14929 128560.252785830755608513683209+14930 128569.863913721288844583224354+14931 128579.475108588815508456688388+14932 128589.086370428849982916925364+14933 128598.69769923690725153261787+14934 128608.309095008502898537588799+14935 128617.920557739153108710141433+14936 128627.532087424374667252431851+14937 128637.143684059684959669873638+14938 128646.755347640601971650574888+14939 128656.367078162644288944807488+14940 128665.978875621331097244508674+14941 128675.590740012182182062814851+14942 128685.202671330717928613627659+14943 128694.814669572459321691212279+14944 128704.426734732927945549827971+14945 128714.038866807645983783390825+14946 128723.651065792136219205168722+14947 128733.263331681922033727508491+14948 128742.875664472527408241595249+14949 128752.48806415947692249724392+14950 128762.100530738295754982722911+14951 128771.71306420450968280460995+14952 128781.32566455364508156768006+14953 128790.938331781228925254825665+14954 128800.551065882788786107008819+14955 128810.163866853852834503245547+14956 128819.776734689949838840622279+14957 128829.389669386609165414344377+14958 128839.002670939360778297816743+14959 128848.615739343735239222756485+14960 128858.228874595263707459337651+14961 128867.842076689477939696367999+14962 128877.455345621910289921497806+14963 128887.068681388093709301460706+14964 128896.68208398356174606234653+14965 128906.295553403848545369906162+14966 128915.909089644488849209888377+14967 128925.52269270101799626840867+14968 128935.136362568971921812350044+14969 128944.750099243887157569795774+14970 128954.363902721300831610494102+14971 128963.977772996750668226354887+14972 128973.591710065774987811978176+14973 128983.205713923912706745214691+14974 128992.819784566703337267758228+14975 129002.433921989686987365769945+14976 129012.048126188404360650534548+14977 129021.662397158396756239148336+14978 129031.276734895206068635239121+14979 129040.891139394374787609718003+14980 129050.505610651445998081562978+14981 129060.120148661963379998634389+14982 129069.734753421471208218522192+14983 129079.349424925514352389425035+14984 129088.964163169638276831061142+14985 129098.578968149389040415610978+14986 129108.193839860313296448691701+14987 129117.808778297958292550363381+14988 129127.423783457871870536166972+14989 129137.038855335602466298194042+14990 129146.653993926699109686188229+14991 129156.269199226711424388678428+14992 129165.884471231189627814143697+14993 129175.499809935684530972209863+14994 129185.115215335747538354877826+14995 129194.730687426930647817783543+14996 129204.346226204786450461489693+14997 129213.961831664868130512808994+14998 129223.577503802729465206159186+14999 129233.193242613924824664949642+15000 129242.809048094009171782999621+15001 129252.424920238538062105988135+15002 129262.04085904306764371293543+15003 129271.656864503154657097716065+15004 129281.272936614356435050603581+15005 129290.889075372230902539846747+15006 129300.505280772336576593277377+15007 129310.121552810232566179949701+15008 129319.737891481478572091811286+15009 129329.354296781634886825405493+15010 129338.970768706262394463605457+15011 129348.587307250922570557379589+15012 129358.203912411177482007588574+15013 129367.820584182589786946813873+15014 129377.437322560722734621217702+15015 129387.054127541140165272434491+15016 129396.670999119406510019493795+15017 129406.287937291086790740774675+15018 129415.904942051746619955991501+15019 129425.522013396952200708211205+15020 129435.139151322270326445901942+15021 129444.756355823268380905013169+15022 129454.373626895514337991087121+15023 129463.990964534576761661401681+15024 129473.60836873602480580714462+15025 129483.225839495428214135619219+15026 129492.84337680835732005248124+15027 129502.460980670383046544007247+15028 129512.078651077076906059394268+15029 129521.69638802401100039309078+15030 129531.314191506758020567159012+15031 129540.93206152089124671366856+15032 129550.549998061984547957121285+15033 129560.168001125612382296907512+15034 129569.786070707349796489793492+15035 129579.404206802772425932440137+15036 129589.022409407456494543953004+15037 129598.640678516978814648463524+15038 129608.259014126916786857741467+15039 129617.87741623284839995383863+15040 129627.495884830352230771763732+15041 129637.114419915007444082188523+15042 129646.733021482393792474185069+15043 129656.351689528091616237994237+15044 129665.970424047681843247825336+15045 129675.589225036745988844686925+15046 129685.208092490866155719248777+15047 129694.827026405625033794734973+15048 129704.446026776605900109848131+15049 129714.065093599392618701724757+15050 129723.684226869569640488921703+15051 129733.303426582722003154433721+15052 129742.922692734435331028742109+15053 129752.542025320295834972894436+15054 129762.161424335890312261615331+15055 129771.780889776806146466448337+15056 129781.400421638631307338928799+15057 129791.020019916954350693787806+15058 129800.639684607364418292187145+15059 129810.25941570545123772498528+15060 129819.879213206805122296034334+15061 129829.499077107016970905508067+15062 129839.119007401678267933260841+15063 129848.739004086381083122217557+15064 129858.359067156718071461794559+15065 129867.979196608282473071351495+15066 129877.599392436668113083674118+15067 129887.219654637469401528488022+15068 129896.839983206281333216003305+15069 129906.460378138699487620490144+15070 129916.080839430320028763885269+15071 129925.701367076739705099429339+15072 129935.32196107355584939533519+15073 129944.942621416366378618486967+15074 129954.563348100769793818170108+15075 129964.184141122365180009832189+15076 129973.805000476752206058874603+15077 129983.425926159531124564475074+15078 129993.046918166302771743440997+15079 130002.667976492668567314093581+15080 130012.289101134230514380182796+15081 130021.910292086591199314833116+15082 130031.531549345353791644520035+15083 130041.152872906122043933077357+15084 130050.774262764500291665735246+15085 130060.395718916093453133189024+15086 130070.017241356507029315698716+15087 130079.638830081347103767219311+15088 130089.260485086220342499561755+15089 130098.882206366733993866584651+15090 130108.503993918495888448416649+15091 130118.125847737114438935709537+15092 130127.747767818198640013922003+15093 130137.369754157358068247634068+15094 130146.991806750202881964892179+15095 130156.613925592343821141584945+15096 130166.236110679392207285849517+15097 130175.858362006959943322508592+15098 130185.480679570659513477538038+15099 130195.103063366103983162565122+15100 130204.725513388906998859397341+15101 130214.348029634682788004581837+15102 130223.970612099046158873995389+15103 130233.593260777612500467464972+15104 130243.21597566599778239341888+15105 130252.838756759818554753568381+15106 130262.461604054691948027619925+15107 130272.08451754623567295801787+15108 130281.707497230068020434717721+15109 130291.330543101807861379989889+15110 130300.95365515707464663325393+15111 130310.576833391488406835943282+15112 130320.200077800669752316400475+15113 130329.823388380239872974802803+15114 130339.446765125820538168118459+15115 130349.070208033034096595093112+15116 130358.693717097503476181266917+15117 130368.317292314852183964021959+15118 130377.940933680704305977660103+15119 130387.564641190684507138511258+15120 130397.188414840418031130072035+15121 130406.812254625530700288174781+15122 130416.436160541648915486187007+15123 130426.060132584399656020241161+15124 130435.684170749410479494494774+15125 130445.308275032309521706420939+15126 130454.932445428725496532129133+15127 130464.556681934287695811716359+15128 130474.180984544625989234648609+15129 130483.805353255370824225172626+15130 130493.429788062153225827757968+15131 130503.05428896060479659256935+15132 130512.678855946357716460969268+15133 130522.303489015044742651050886+15134 130531.928188162299209543201175+15135 130541.5529533837550285656943+15136 130551.177784675046688080315247+15137 130560.802682031809253268013664+15138 130570.427645449678366014587931+15139 130580.052674924290244796399421+15140 130589.677770451281684566116971+15141 130599.302932026290056638491524+15142 130608.928159644953308576160959+15143 130618.553453302909964075485081+15144 130628.17881299579912285241076+15145 130637.804238719260460528367232+15146 130647.429730468934228516191517+15147 130657.055288240461253906083976+15148 130666.680912029482939351593979+15149 130676.306601831641262955635676+15150 130685.93235764257877815653387+15151 130695.558179457938613614099971+15152 130705.184067273364473095738028+15153 130714.810021084500635362580827+15154 130724.436040886991954055656041+15155 130734.062126676483857582082438+15156 130743.688278448622349001296109+15157 130753.314496199054005911306735+15158 130762.940779923425980334983868+15159 130772.56712961738599860637321+15160 130782.193545276582361257042902+15161 130791.820026896663942902459791+15162 130801.446574473280192128395676+15163 130811.073188002081131377363521+15164 130820.699867478717356835083625+15165 130830.326612898840038316979741+15166 130839.953424258100919154705131+15167 130849.580301552152316082698546+15168 130859.20724477664711912477013+15169 130868.834253927238791480717224+15170 130878.461328999581369412970074+15171 130888.088469989329462133267427+15172 130897.715676892138251689361999+15173 130907.342949703663492851755818+15174 130916.970288419561513000465425+15175 130926.597693035489212011816915+15176 130936.225163547104062145270835+15177 130945.852699950064107930276887+15178 130955.480302240027966053158473+15179 130965.107970412654825244027036+15180 130974.735704463604446163726201+15181 130984.363504388537161290805714+15182 130993.991370183113874808525151+15183 131003.619301842996062491887406+15184 131013.247299363845771594701931+15185 131022.875362741325620736677733+15186 131032.503491971098799790546112+15187 131042.13168704882906976921312+15188 131051.759947970180762712941757+15189 131061.388274730818781576563863+15190 131071.016667326408600116721724+15191 131080.645125752616262779139361+15192 131090.273650005108384585923504+15193 131099.902240079552151022894242+15194 131109.530895971615317926945327+15195 131119.159617676966211373434143+15196 131128.788405191273727563601303+15197 131138.417258510207332712019894+15198 131148.046177629437062934074334+15199 131157.67516254463352413346885+15200 131167.304213251467891889765557+15201 131176.93332974561191134595213+15202 131186.562512022737897096039064+15203 131196.191760078518733072686506+15204 131205.821073908627872434860655+15205 131215.450453508739337455519714+15206 131225.079898874527719409329387+15207 131234.709410001668178460407918+15208 131244.33898688583644355010065+15209 131253.968629522708812284784103+15210 131263.59833790796215082369956+15211 131273.228112037273893766816145+15212 131282.857951906322044042723397+15213 131292.487857510785172796553311+15214 131302.117828846342419277931858+15215 131311.747865908673490728959956+15216 131321.377968693458662272223892+15217 131331.008137196378776798835182+15218 131340.638371413115244856499861+15219 131350.268671339350044537617194+15220 131359.899036970765721367407796+15221 131369.529468303045388192071151+15222 131379.159965331872725066972521+15223 131388.790528052931979144859242+15224 131398.421156461907964564106382+15225 131408.051850554486062336991771+15226 131417.682610326352220238000373+15227 131427.313435773192952692158008+15228 131436.944326890695340663394404+15229 131446.575283674547031542935571+15230 131456.20630612043623903772549+15231 131465.837394224051743058877107+15232 131475.46854798108288961015262+15233 131485.099767387219590676473046+15234 131494.731052438152324112457074+15235 131504.362403129572133530989175+15236 131513.993819457170628191816966+15237 131523.625301416639982890177833+15238 131533.256849003672937845454772+15239 131542.888462213962798589861473+15240 131552.520141043203435857156614+15241 131562.151885487089285471387366+15242 131571.783695541315348235662092+15243 131581.415571201577189820952236+15244 131591.047512463570940654923398+15245 131600.679519322993295810795569+15246 131610.311591775541514896232532+15247 131619.943729816913421942260408+15248 131629.575933442807405292215353+15249 131639.208202648922417490720373+15250 131648.840537430957975172691272+15251 131658.472937784614158952371707+15252 131668.105403705591613312397344+15253 131677.737935189591546492889114+15254 131687.370532232315730380575544+15255 131697.003194829466500397944171+15256 131706.63592297674675539242201+15257 131716.26871666985995752558509+15258 131725.901575904510132162397023+15259 131735.534500676401867760476615+15260 131745.167490981240315759394508+15261 131754.800546814731190469998827+15262 131764.433668172580768963769848+15263 131774.06685505049589096220365+15264 131783.70010744418395872622477+15265 131793.333425349352936945627826+15266 131802.966808761711352628548115+15267 131812.600257676968294990961166+15268 131822.23377209083341534621125+15269 131831.867351999016926994568829+15270 131841.500997397229605112816929+15271 131851.13470828118278664386645+15272 131860.768484646588370186400371+15273 131870.402326489158815884546875+15274 131880.036233804607145317581356+15275 131889.670206588646941389657313+15276 131899.304244836992348219566122+15277 131908.93834854535807103052567+15278 131918.572517709459376039997848+15279 131928.206752325012090349534884+15280 131937.841052387732601834654522+15281 131947.47541789333785903474402+15282 131957.109848837545371042992975+15283 131966.744345216073207396354946+15284 131976.378907024639997965537886+15285 131986.013534258964932845023356+15286 131995.648226914767762243114529+15287 132005.282984987768796372012954+15288 132014.917808473688905337924089+15289 132024.552697368249519031191582+15290 132034.187651667172627016460302+15291 132043.822671366180778422868092+15292 132053.457756460997081834266256+15293 132063.092906947345205179468754+15294 132072.728122820949375622530108+15295 132082.363404077534379453052+15296 132091.998750712825561976518557+15297 132101.63416272254882740466031+15298 132111.269640102430638745846832+15299 132120.905182848198017695508017+15300 132130.540790955578544526584025+15301 132140.176464420300357980003855+15302 132149.812203238092155155192552+15303 132159.448007404683191400607039+15304 132169.083876915803280204300552+15305 132178.719811767182793084515683+15306 132188.355811954552659480306016+15307 132197.991877473644366642186346+15308 132207.628008320189959522811469+15309 132217.264204489922040667683538+15310 132226.900465978573770105887981+15311 132236.536792781878865240857956+15312 132246.173184895571600741167345+15313 132255.809642315386808431352283+15314 132265.446165037059877182761194+15315 132275.082753056326752804433346+15316 132284.719406368923937934005895+15317 132294.356124970588491928649434+15318 132303.992908857058030756032005+15319 132313.629758024070726885311599+15320 132323.266672467365309178157109+15321 132332.903652182681062779797739+15322 132342.540697165757829010100854+15323 132352.177807412336005254678271+15324 132361.814982918156544856020971+15325 132371.452223678960957004662222+15326 132381.089529690491306630369121+15327 132390.726900948490214293362523+15328 132400.364337448700856075565362+15329 132410.001839186866963471879349+15330 132419.639406158732823281490048+15331 132429.277038360043277499200296+15332 132438.914735786543723206791993+15333 132448.552498433980112464416218+15334 132458.190326298098952202011692+15335 132467.828219374647304110751549+15336 132477.466177659372784534518436+15337 132487.104201148023564361407907+15338 132496.742289836348368915260119+15339 132506.380443720096477847219815+15340 132516.018662795017725027324576+15341 132525.656947056862498436121354+15342 132535.295296501381740056311251+15343 132544.933711124326945764422559+15344 132554.57219092145016522251203+15345 132564.210735888504001769894388+15346 132573.849346021241612314900052+15347 132583.488021315416707226661083+15348 132593.126761766783550226925324+15349 132602.765567371096958281898742+15350 132612.404438124112301494115955+15351 132622.043374021585502994338931+15352 132631.682375059273038833483853+15353 132641.321441232931937874576151+15354 132650.960572538319781684733673+15355 132660.599768971194704427178001+15356 132670.23903052731539275327389+15357 132679.878357202441085694596841+15358 132689.517748992331574555028773+15359 132699.157205892747202802881806+15360 132708.796727899448865963050132+15361 132718.436315008198011509189976+15362 132728.07596721475663875592763+15363 132737.71568451488729875109555+15364 132747.355466904353094167996518+15365 132756.995314378917679197695842+15366 132766.635226934345259441341604+15367 132776.275204566400591802512932+15368 132785.915247270848984379596295+15369 132795.555355043456296358189807+15370 132805.19552787998893790353554+15371 132814.83576577621387005297982+15372 132824.476068727898604608461516+15373 132834.116436730811204029028302+15374 132843.75686978072028132338088+15375 132853.397367873394999942445167+15376 132863.037931004605073671972424+15377 132872.678559170120766525167329+15378 132882.319252365712892635343975+15379 132891.96001058715281614860979+15380 132901.60083383021245111657737+15381 132911.241722090664261389104214+15382 132920.882675364281260507060348+15383 132930.523693646837011595123841+15384 132940.164776934105627254604189+15385 132949.80592522186176945629357+15386 132959.447138505880649433345953+15387 132969.088416781938027574184056+15388 132978.729760045810213315434145+15389 132988.371168293274065034888659+15390 132998.012641520106989944496659+15391 133007.654179722086943983382087+15392 133017.295782894992431710889831+15393 133026.937451034602506199659578+15394 133036.579184136696768928727457+15395 133046.220982197055369676655456+15396 133055.862845211459006414688607+15397 133065.504773175688925199939923+15398 133075.146766085526920068603092+15399 133084.788823936755332929192905+15400 133094.430946725157053455813416+15401 133104.073134446515518981453826+15402 133113.715387096614714391312074+15403 133123.357704671239172016146139+15404 133133.000087166173971525653031+15405 133142.642534577204739821875468+15406 133152.285046900117650932636237+15407 133161.927624130699425905000208+15408 133171.570266264737332698764026+15409 133181.212973298019186079973434+15410 133190.85574522633334751446825+15411 133200.498582045468725061454971+15412 133210.141483751214773267106995+15413 133219.784450339361493058192469+15414 133229.427481805699431635729731+15415 133239.070578146019682368670351+15416 133248.713739356113884687609762+15417 133258.356965431774223978525464+15418 133268.000256368793431476542803+15419 133277.643612162964784159728307+15420 133287.28703281008210464291057+15421 133296.930518305939761071528686+15422 133306.57406864633266701550821+15423 133316.217683827056281363164646+15424 133325.86136384390660821513445+15425 133335.50510869268019677833354+15426 133345.148918369174141259943305+15427 133354.792792869186080761424097+15428 133364.436732188514199172556214+15429 133374.08073632295722506550834+15430 133383.724805268314431588933459+15431 133393.368939020385636362092217+15432 133403.013137574971201369003727+15433 133412.657400927872032852623813+15434 133422.301729074889581209050676+15435 133431.946122011825840881757984+15436 133441.590579734483350255855364+15437 133451.2351022386651915523763+15438 133460.879689520174990722593414+15439 133470.524341574816917342361139+15440 133480.169058398395684506485757+15441 133489.813839986716548723122809+15442 133499.458686335585309808201849+15443 133509.103597440808310779878559+15444 133518.74857329819243775301419+15445 133528.393613903545119833682339+15446 133538.038719252674329013703043+15447 133547.683889341388580065204186+15448 133557.329124165496930435210205+15449 133566.974423720808980140258095+15450 133576.619788003134871661040693+15451 133586.265217008285289837077244+15452 133595.910710732071461761411229+15453 133605.556269170305156675335453+15454 133615.201892318798685863144381+15455 133624.847580173364902546913723+15456 133634.493332729817201781307234+15457 133644.139149983969520348410757+15458 133653.785031931636336652593463+15459 133663.43097856863267061539631+15460 133673.076989890774083570447685+15461 133682.723065893876678158406249+15462 133692.369206573757098221930948+15463 133702.015411926232528700678202+15464 133711.661681947120695526326252+15465 133721.308016632239865517626662+15466 133730.95441597740884627548296+15467 133740.600879978446986078056424+15468 133750.247408631174173775898982+15469 133759.894001931410838687113237+15470 133769.540659874977950492539604+15471 133779.187382457697019130970535+15472 133788.834169675390094694391849+15473 133798.481021523879767323251136+15474 133808.127937998989167101753238+15475 133817.774919096541963953182792+15476 133827.421964812362367535253834+15477 133837.069075142275127135486448+15478 133846.716250082105531566610451+15479 133856.363489627679409061996115+15480 133866.010793774823127171111904+15481 133875.658162519363592655009225+15482 133885.305595857128251381834188+15483 133894.953093783945088222366353+15484 133904.600656295642626945584468+15485 133914.248283388049930114259188+15486 133923.895975056996598980572752+15487 133933.543731298312773381765638+15488 133943.19155210782913163581015+15489 133952.839437481376890437110962+15490 133962.48738741478780475223259+15491 133972.135401903894167715653792+15492 133981.783480944528810525548882+15493 133991.431624532525102339595958+15494 134001.07983266371695017081202+15495 134010.728105333938798783414989+15496 134020.376442539025630588712601+15497 134030.024844274812965541018178+15498 134039.673310537136861033593262+15499 134049.321841321833911794617106+15500 134058.970436624741249783183013+15501 134068.619096441696544085321511+15502 134078.267820768538000810050362+15503 134087.916609601104362985451392+15504 134097.565462935234910454774127+15505 134107.214380766769459772566247+15506 134116.863363091548364100830818+15507 134126.512409905412513105210326+15508 134136.161521204203332851197484+15509 134145.810696983762785700372803+15510 134155.459937239933370206668934+15511 134165.109241968558121012661754+15512 134174.758611165480608745888201+15513 134184.40804482654493991519084+15514 134194.057542947595756807089163+15515 134203.707105524478237382177593+15516 134213.356732553038095171550214+15517 134223.006424029121579173252191+15518 134232.656179948575473748757882+15519 134242.306000307247098519475638+15520 134251.95588510098430826327928+15521 134261.60583432563549281106623+15522 134271.255847977049576943342317+15523 134280.905926051076020286833214+15524 134290.556068543564817211122534+15525 134300.206275450366496725316541+15526 134309.856546767332122374735497+15527 134319.506882490313292137631615+15528 134329.157282615162138321933626+15529 134338.807747137731327462017935+15530 134348.458276053874060215506376+15531 134358.108869359444071260090536+15532 134367.759527050295629190382664+15533 134377.410249122283536414793132+15534 134387.061035571263129052434456+15535 134396.711886393090276830051867+15536 134406.362801583621382978980408+15537 134416.013781138713384132128578+15538 134425.664825054223750220988476+15539 134435.315933326010484372672476+15540 134444.967105949932122806976393+15541 134454.618342921847734733469151+15542 134464.269644237616922248608933+15543 134473.921009893099820232885812+15544 134483.572439884157096247990852+15545 134493.223934206649950434011668+15546 134502.875492856440115406654438+15547 134512.527115829389856154492362+15548 134522.178803121361969936240554+15549 134531.830554728219786178057362+15550 134541.482370645827166370872109+15551 134551.134250870048503967739235+15552 134560.786195396748724281218854+15553 134570.438204221793284380783692+15554 134580.090277341048172990252419+15555 134589.742414750379910385249347+15556 134599.394616445655548290690507+15557 134609.046882422742669778296075+15558 134618.699212677509389164129154+15559 134628.3516072058243519061609+15560 134638.004066003556734501861976+15561 134647.656589066576244385820334+15562 134657.309176390753119827385316+15563 134666.961827971958129828338059+15564 134676.614543806062574020588204+15565 134686.267323888938282563896894+15566 134695.920168216457616043626056+15567 134705.573076784493465368513955+15568 134715.226049588919251668477022+15569 134724.879086625608926192437925+15570 134734.532187890436970206179907+15571 134744.185353379278394890227352+15572 134753.838583088008741237752586+15573 134763.491877012504079952508908+15574 134773.145235148641011346789827+15575 134782.798657492296665239414514+15576 134792.452144039348700853739449+15577 134802.105694785675306715696261+15578 134811.759309727155200551855745+15579 134821.412988859667629187518056+15580 134831.06673217909236844482907+15581 134840.720539681309723040922898+15582 134850.37441136220052648609055+15583 134860.028347217646140981974738+15584 134869.682347243528457319790809+15585 134879.33641143572989477857381+15586 134888.990539790133401023451653+15587 134898.6447323026224520039444+15588 134908.298988969081051852289639+15589 134917.953309785393732781793951+15590 134927.607694747445554985210456+15591 134937.262143851122106533142438+15592 134946.916657092309503272473031+15593 134956.571234466894388724820956+15594 134966.225875970763933985022318+15595 134975.880581599805837619638429+15596 134985.535351349908325565489673+15597 134995.190185216960151028215387+15598 135004.84508319685059438085976+15599 135014.500045285469463062483735+15600 135024.155071478707091476802915+15601 135033.810161772454340890851449+15602 135043.465316162602599333671906+15603 135053.120534645043781495031123+15604 135062.77581721567032862416201+15605 135072.431163870375208428531319+15606 135082.086574605051914972633356+15607 135091.742049415594468576809634+15608 135101.397588297897415716094459+15609 135111.053191247855828919086434+15610 135120.708858261365306666845884+15611 135130.36458933432197329181818+15612 135140.020384462622478876782972+15613 135149.676243642163999153829298+15614 135159.332166868844235403356582+15615 135168.988154138561414353101508+15616 135178.644205447214288077190754+15617 135188.300320790702133895219582+15618 135197.956500164924754271356276+15619 135207.612743565782476713472431+15620 135217.269050989176153672299052+15621 135226.925422431007162440608502+15622 135236.581857887177405052422242+15623 135246.238357353589308182244394+15624 135255.894920826145823044321098+15625 135265.551548300750425291925654+15626 135275.208239773307114916669454+15627 135284.864995239720416147838684+15628 135294.521814695895377351756792+15629 135304.178698137737570931172712+15630 135313.835645561153093224674845+15631 135323.492656962048564406130766+15632 135333.14973233633112838415268+15633 135342.806871679908452701588592+15634 135352.464074988688728435039196+15635 135362.121342258580670094400475+15636 135371.778673485493515522431995+15637 135381.436068665337025794350895+15638 135391.093527794021485117451562+15639 135400.751050867457700730750974+15640 135410.408637881557002804659717+15641 135420.066288832231244340678659+15642 135429.72400371539280107112127+15643 135439.381782526954571358861594+15644 135449.039625262829976097107844+15645 135458.69753191893295860920163+15646 135468.355502491177984548442803+15647 135478.01353697548004179793991+15648 135487.671635367754640370486248+15649 135497.329797663917812308461512+15650 135506.988023859886111583759028+15651 135516.646313951576613997738565+15652 135526.304667934906917081204712+15653 135535.963085805795139994410819+15654 135545.621567560159923427088488+15655 135555.28011319392042949850261+15656 135564.938722702996341657531936+15657 135574.597396083307864582775179+15658 135584.25613333077572408268263+15659 135593.914934441321166995713296+15660 135603.573799410865961090517527+15661 135613.232728235332394966145153+15662 135622.891720910643277952279099+15663 135632.550777432721940009494478+15664 135642.209897797492231629543166+15665 135651.869082000878523735663824+15666 135661.528330038805707582917389+15667 135671.187641907199194658548001+15668 135680.847017601984916582369377+15669 135690.506457119089325007176607+15670 135700.165960454439391519183378+15671 135709.825527603962607538484612+15672 135719.485158563586984219544505+15673 135729.144853329241052351709968+15674 135738.80461189685386225974946+15675 135748.464434262354983704417195+15676 135758.12432042167450578304273+15677 135767.784270370743036830145913+15678 135777.444284105491704318077195+15679 135787.104361621852154757683283+15680 135796.764502915756553598998141+15681 135806.424707983137585131959319+15682 135816.084976819928452387149613+15683 135825.745309422062877036564035+15684 135835.405705785475099294402098+15685 135845.066165906099877817885398+15686 135854.726689779872489608100491+15687 135864.387277402728729910867052+15688 135874.047928770604912117631313+15689 135883.708643879437867666384771+15690 135893.36942272516494594260815+15691 135903.030265303724014180240627+15692 135912.691171611053457362674287+15693 135922.352141643092178123773829+15694 135932.013175395779596648921492+15695 135941.674272865055650576087202+15696 135951.335434046860794896923938+15697 135960.996658937136001857888289+15698 135970.657947531822760861386223+15699 135980.31929982686307836694403+15700 135989.980715818199477792404458+15701 135999.64219550177499941514801+15702 136009.30373887353320027333941+15703 136018.965345929418154067199228+15704 136028.627016665374451060300648+15705 136038.288751077347197980891379+15706 136047.950549161282017923240698+15707 136057.612410913125050249011614+15708 136067.274336328822950488658155+15709 136076.936325404322890242847753+15710 136086.59837813557255708390874+15711 136096.260494518520154457302928+15712 136105.922674549114401583123279+15713 136115.584918223304533357616645+15714 136125.247225537040300254731579+15715 136134.909596486271968227691213+15716 136144.572031066950318610591175+15717 136154.234529275026648020022559+15718 136163.897091106452768256719933+15719 136173.559716557181006207234368+15720 136183.222405623164203745631493+15721 136192.88515830035571763521456+15722 136202.547974584709419430272515+15723 136212.210854472179695377853062+15724 136221.873797958721446319560724+15725 136231.536805040290087593379873+15726 136241.199875712841548935522741+15727 136250.863009972332274382302394+15728 136260.52620781471922217203066+15729 136270.189469235959864646941009+15730 136279.852794232012188155136375+15731 136289.516182798834692952561906+15732 136299.179634932386393105002641+15733 136308.843150628626816390106109+15734 136318.506729883516004199429832+15735 136328.170372693014511440513729+15736 136337.834079053083406438977416+15737 136347.497848959684270840642393+15738 136357.161682408779199513679102+15739 136366.825579396330800450778862+15740 136376.489539918302194671350663+15741 136386.153563970657016123742812+15742 136395.817651549359411587489426+15743 136405.481802650374040575581766+15744 136415.1460172696660752367644+15745 136424.810295403201200257856182+15746 136434.474637046945612766096056+15747 136444.13904219686602223151366+15748 136453.80351084892965036932473+15749 136463.468042999104231042351292+15750 136473.132638643358010163466645+15751 136482.797297777659745598065112+15752 136492.462020397978707066556556+15753 136502.126806500284676046885667+15754 136511.791656080547945677075988+15755 136521.45656913473932065779869+15756 136531.121545658830117154966085+15757 136540.786585648792162702349863+15758 136550.451689100597796104224049+15759 136560.116856010219867338032676+15760 136569.782086373631737457082161+15761 136579.447380186807278493258375+15762 136589.112737445720873359768402+15763 136598.778158146347415753906986+15764 136608.44364228466231005984764+15765 136618.109189856641471251458429+15766 136627.774800858261324795142405+15767 136637.440475285498806552702698+15768 136647.106213134331362684232238+15769 136656.772014400736949551028127+15770 136666.437879080694033618530618+15771 136676.10380717018159135928673+15772 136685.76979866517910915593846+15773 136695.435853561666583204235609+15774 136705.101971855624519416073193+15775 136714.76815354303393332255345+15776 136724.434398619876349977072417+15777 136734.100707082133803858431089+15778 136743.767078925788838773971132+15779 136753.43351414682450776273516+15780 136763.100012741224372998651555+15781 136772.76657470497250569374383+15782 136782.433200034053486001364522+15783 136792.099888724452402919453614+15784 136801.766640772154854193821473+15785 136811.433456173146946221456292+15786 136821.100334923415293953856042+15787 136830.767277018947020800384912+15788 136840.434282455729758531654239+15789 136850.101351229751647182927909+15790 136859.768483337001334957552241+15791 136869.43567877346797813041032+15792 136879.102937535141240951400797+15793 136888.770259618011295548941128+15794 136898.437645018068821833495258+15795 136908.105093731305007401125731+15796 136917.772605753711547437070231+15797 136927.440181081280644619342537+15798 136937.107819710005009022357882+15799 136946.77552163587785802058272+15800 136956.44328685489291619220888+15801 136966.111115363044415222852114+15802 136975.779007156327093809275011+15803 136985.446962230736197563134291+15804 136995.114980582267478914752458+15805 137004.783062206917197016913806+15806 137014.451207100682117648684774+15807 137024.11941525955951311925864+15808 137033.787686679547162171824548+15809 137043.456021356643349887460852+15810 137053.124419286846867589052788+15811 137062.792880466157012745234442+15812 137072.461404890573588874355029+15813 137082.129992556096905448469457+15814 137091.798643458727777797353185+15815 137101.467357594467527012541348+15816 137111.136134959317979851392163+15817 137120.804975549281468641174591+15818 137130.473879360360831183180253+15819 137140.142846388559410656859597+15820 137149.811876629881055523982305+15821 137159.480970080330119432821925+15822 137169.150126735911461122364733+15823 137178.819346592630444326542812+15824 137188.488629646492937678491336+15825 137198.157975893505314614830056+15826 137207.827385329674453279968982+15827 137217.49685795100773643043825+15828 137227.166393753513051339242162+15829 137236.835992733198789700237406+15830 137246.505654886073847532535432+15831 137256.175380208147625084928983+15832 137265.84516869543002674034278+15833 137275.51502034393146092030834+15834 137285.184935149662839989462929+15835 137294.854913108635580160072644+15836 137304.524954216861601396579603+15837 137314.195058470353327320173253+15838 137323.865225865123685113385777+15839 137333.535456397186105424711594+15840 137343.205750062554522273250948+15841 137352.876106857243372953377574+15842 137362.546526777267597939430437+15843 137372.217009818642640790429536+15844 137381.887555977384448054815759+15845 137391.558165249509469175214797+15846 137401.228837631034656393225087+15847 137410.899573117977464654229797+15848 137420.570371706355851512232833+15849 137430.241233392188277034718869+15850 137439.912158171493703707537382+15851 137449.583146040291596339810693+15852 137459.254196994601921968866005+15853 137468.925311030445149765191428+15854 137478.59648814384225093741598+15855 137488.267728330814698637313574+15856 137497.939031587384467864830953+15857 137507.610397909574035373139596+15858 137517.281827293406379573711572+15859 137526.953319734904980441419328+15860 137536.624875230093819419659428+15861 137546.296493774997379325500204+15862 137555.968175365640644254853335+15863 137565.639919998049099487669339+15864 137575.31172766824873139315697+15865 137584.983598372266027335026508+15866 137594.655532106127975576756942+15867 137604.327528865862065186887038+15868 137613.999588647496285944330279+15869 137623.671711447059128243713672+15870 137633.343897260579583000740414+15871 137643.016146084087141557576418+15872 137652.688457913611795588260671+15873 137662.360832745184037004139443+15874 137672.033270574834857859324314+15875 137681.705771398595750256174033+15876 137691.378335212498706250800184+15877 137701.050962012576217758596664+15878 137710.723651794861276459792962+15879 137720.396404555387373705031225+15880 137730.069220290188500420967113+15881 137739.74209899529914701589443+15882 137749.415040666754303285393527+15883 137759.088045300589458318003463+15884 137768.761112892840600400917926+15885 137778.434243439544216925704896+15886 137788.107436936737294294050054+15887 137797.780693380457317823523918+15888 137807.454012766742271653372708+15889 137817.127395091630638650332928+15890 137826.800840351161400314469654+15891 137836.47434854137403668503853+15892 137846.147919658308526246371456+15893 137855.821553698005345833785967+15894 137865.495250656505470539518287+15895 137875.169010529850373618680059+15896 137884.842833314082026395238743+15897 137894.516719005242898168021667+15898 137904.19066759937595611674373+15899 137913.86467909252466520805875+15900 137923.538753480732988101634447+15901 137933.212890760045385056251052+15902 137942.887090926506813835923538+15903 137952.561353976162729616047465+15904 137962.235679905059084889568433+15905 137971.910068709242329373175127+15906 137981.584520384759409913515959+15907 137991.259034927657770393439293+15908 138000.933612333985351638257242+15909 138010.60825259979059132203304+15910 138020.28295572112242387389197+15911 138029.957721694030280384355848+15912 138039.632550514564088511701057+15913 138049.307442178774272388340113+15914 138058.982396682711752527226771+15915 138068.657414022427945728284647+15916 138078.332494193974764984859364+15917 138088.007637193404619390194207+15918 138097.682843016770414043929273+15919 138107.358111660125549958624128+15920 138117.033443119523923966303937+15921 138126.708837391019928625029089+15922 138136.384294470668452125488282+15923 138146.059814354524878197615084+15924 138155.735397038645086017227944+15925 138165.411042519085450112693655+15926 138175.086750791902840271614268+15927 138184.762521853154621447537429+15928 138194.438355698898653666690156+15929 138204.114252325193291934736031+15930 138213.790211728097386143555809+15931 138223.466233903670280978051429+15932 138233.142318847971815822973431+15933 138242.818466557062324669771758+15934 138252.494677027002636023469949+15935 138262.170950253854072809562701+15936 138271.847286233678452280936812+15937 138281.523684962538085924815471+15938 138291.200146436495779369725924+15939 138300.876670651614832292490463+15940 138310.553257603959038325240781+15941 138320.229907289592684962455637+15942 138329.906619704580553468021865+15943 138339.583394844987918782318692+15944 138349.260232706880549429325368+15945 138358.937133286324707423752101+15946 138368.614096579387148178194293+15947 138378.291122582135120410310055+15948 138387.968211290636366050021017+15949 138397.645362700959120146736401+15950 138407.322576809172110776600367+15951 138416.999853611344558949762622+15952 138426.677193103546178517672274+15953 138436.354595281847176080394939+15954 138446.03206014231825089395308+15955 138455.709587681030594777689584+15956 138465.387177894055892021654556+15957 138475.064830777466319294015335+15958 138484.742546327334545548489711+15959 138494.420324539733731931802355+15960 138504.098165410737531691164436+15961 138513.776068936420090081776426+15962 138523.454035112856044274354088+15963 138533.132063936120523262677633+15964 138542.810155402289147771164048+15965 138552.488309507438030162462573+15966 138562.166526247643774345073345+15967 138571.844805618983475680989164+15968 138581.523147617534720893360415+15969 138591.201552239375587974183112+15970 138600.880019480584646092010059+15971 138610.558549337240955499685133+15972 138620.237141805424067442100673+15973 138629.915796881214024063977968+15974 138639.594514560691358317670838+15975 138649.273294839937093870992302+15976 138658.952137715032745015064323+15977 138668.631043182060316572190628+15978 138678.31001123710230380375259+15979 138687.989041876241692318128161+15980 138697.66813509556195797863387+15981 138707.347290891147066811489847+15982 138717.026509259081474913807892+15983 138726.705790195450128361602571+15984 138736.385133696338463117825331+15985 138746.064539757832404940421628+15986 138755.744008376018369290411066+15987 138765.423539546983261239990529+15988 138775.103133266814475380660312+15989 138784.782789531599895731373232+15990 138794.46250833742789564670672+15991 138804.142289680387337725057878+15992 138813.822133556567573716861509+15993 138823.502039962058444432831094+15994 138833.182008892950279652222722+15995 138842.862040345333898031121966+15996 138852.542134315300607010753682+15997 138862.22229079894220272581475+15998 138871.902509792350969912829726+15999 138881.582791291619681818529408+16000 138891.263135292841600108252311+16001 138900.94354179211047477436904+16002 138910.624010785520544044729556+16003 138920.304542269166534291133322+16004 138929.98513623914365993782233+16005 138939.665792691547623369997+16006 138949.346511622474614842354937+16007 138959.027293028021312387652551+16008 138968.708136904284881725289518+16009 138978.389043247362976169916087+16010 138988.070012053353736540063225+16011 138997.75104331835579106679558+16012 139007.432137038468255302387276+16013 139017.113293209790732029020512+16014 139026.794511828423311167506969+16015 139036.475792890466569686032022+16016 139046.157136392021571508921734+16017 139055.838542329189867425432645+16018 139065.52001069807349499856433+16019 139075.201541494774978473894733+16020 139084.883134715397328688438263+16021 139094.564790356044042979526643+16022 139104.246508412819105093712516+16023 139113.928288881826985095695783+16024 139123.610131759172639277272686+16025 139133.292037040961510066307611+16026 139142.974004723299525935727617+16027 139152.656034802293101312539676+16028 139162.338127274049136486870619+16029 139172.020282134675017521029787+16030 139181.702499380278616158594367+16031 139191.384779006968289733517418+16032 139201.067121010852881079258574+16033 139210.749525388041718437937422+16034 139220.431992134644615369509534+16035 139230.114521246771870660965169+16036 139239.797112720534268235550617+16037 139249.479766552043077062012187+16038 139259.162482737410051063862834+16039 139268.845261272747429028671411+16040 139278.528102154167934517374546+16041 139288.211005377784775773611131+16042 139297.893970939711645633079422+16043 139307.576998836062721432916738+16044 139317.26008906295266492110175+16045 139326.943241616496622165879365+16046 139336.626456492810223465208183+16047 139346.309733688009583256230527+16048 139355.993073198211300024765041+16049 139365.676475019532456214821844+16050 139375.359939148090618138140239+16051 139385.043465580003835883748962+16052 139394.727054311390643227548972+16053 139404.410705338370057541918768+16054 139414.094418657061579705342235+16055 139423.778194263585194012058996+16056 139433.462032154061368081737288+16057 139443.145932324611052769169326+16058 139452.829894771355682073989171+16059 139462.513919490417173050413084+16060 139472.19800647791792571700236+16061 139481.882155729980822966448639+16062 139491.566367242729230475381682+16063 139501.250641012286996614199609+16064 139510.934977034778452356921587+16065 139520.61937530632841119106297+16066 139530.303835823062169027532871+16067 139539.988358581105504110554177+16068 139549.672943576584676927605977+16069 139559.357590805626430119388414+16070 139569.042300264357988389809956+16071 139578.727071948907058415997056+16072 139588.411905855401828758326221+16073 139598.09680197997096977047847+16074 139607.781760318743633509516171+16075 139617.466780867849453645982258+16076 139627.151863623418545374021819+16077 139636.837008581581505321526042+16078 139646.522215738469411460298521+16079 139656.207485090213823016243909+16080 139665.892816632946780379578914+16081 139675.578210362800805015065627+16082 139685.26366627590889937226718+16083 139694.949184368404546795825726+16084 139704.634764636421711435762734+16085 139714.320407076094838157801583+16086 139724.006111683558852453712467+16087 139733.691878454949160351679589+16088 139743.377707386401648326690638+16089 139753.063598474052683210948548+16090 139762.749551714039112104305532+16091 139772.435567102498262284719379+16092 139782.121644635567941118732007+16093 139791.807784309386435971970275+16094 139801.493986120092514119669029+16095 139811.180250063825422657216402+16096 139820.866576136724888410721323+16097 139830.552964334931117847603275+16098 139840.239414654584796987204245+16099 139849.925927091827091311422908+16100 139859.612501642799645675370997+16101 139869.299138303644584218051875+16102 139878.985837070504510273061301+16103 139888.672597939522506279310372+16104 139898.359420906842133691770647+16105 139908.046305968607432892241431+16106 139917.733253120962923100139232+16107 139927.420262360053602283309368+16108 139937.107333682024947068859718+16109 139946.79446708302291265401662+16110 139956.481662559193932717002906+16111 139966.168920106684919327938057+16112 139975.856239721643262859760482+16113 139985.543621400216831899171915+16114 139995.231065138553973157603912+16115 140004.918570932803511382206455+16116 140014.606138779114749266858645+16117 140024.293768673637467363201481+16118 140033.981460612521923991692723+16119 140043.669214591918855152683826+16120 140053.357030607979474437518933+16121 140063.044908656855472939655942+16122 140072.73284873469901916580961+16123 140082.420850837662758947116711+16124 140092.108914961899815350323232+16125 140101.797041103563788588993598+16126 140111.485229258808755934741922+16127 140121.173479423789271628485278+16128 140130.861791594660366791718979+16129 140140.55016576757754933781386+16130 140150.238601938696803883335568+16131 140159.927100104174591659385828+16132 140169.615660260167850422965704+16133 140179.304282402833994368360835+16134 140188.992966528330914038548637+16135 140198.681712632816976236627474+16136 140208.370520712451023937267784+16137 140218.05939076339237619818515+16138 140227.748322781800828071635326+16139 140237.437316763836650515931184+16140 140247.126372705660590306981606+16141 140256.815490603433869949852286+16142 140266.504670453318187590348453+16143 140276.193912251475716926619509+16144 140285.883215994069107120785559+16145 140295.572581677261482710585841+16146 140305.262009297216443521049049+16147 140314.951498850098064576185532+16148 140324.641050332070896010701372+16149 140334.330663739299962981734327+16150 140344.020339067950765580611639+16151 140353.710076314189278744629699+16152 140363.399875474181952168855552+16153 140373.089736544095710217950251+16154 140382.779659520097951838014044+16155 140392.469644398356550468453387+16156 140402.159691175039853953869779+16157 140411.849799846316684455970414+16158 140421.539970408356338365500636+16159 140431.230202857328586214198199+16160 140440.920497189403672586769317+16161 140450.610853400752316032886508+16162 140460.301271487545708979208211+16163 140469.991751445955517641420183+16164 140479.68229327215388193629866+16165 140489.372896962313415393795277+16166 140499.06356251260720506914375+16167 140508.754289919208811454988292+16168 140518.445079178292268393533782+16169 140528.135930286032082988717658+16170 140537.826843238603235518403543+16171 140547.517818032181179346596591+16172 140557.208854662941840835680538+16173 140566.899953127061619258676473+16174 140576.591113420717386711523298+16175 140586.282335540086488025379885+16176 140595.973619481346740678948926+16177 140605.664965240676434710822447+16178 140615.356372814254332631849014+16179 140625.047842198259669337522591+16180 140634.739373388872152020393067+16181 140644.43096638227196008249843+16182 140654.122621174639745047818589+16183 140663.814337762156630474750839+16184 140673.506116141004211868606958+16185 140683.197956307364556594131922+16186 140692.889858257420203788044254+16187 140702.581821987354164271597976+16188 140712.273847493349920463166167+16189 140721.965934771591426290846129+16190 140731.658083818263107105086135+16191 140741.350294629549859591333773+16192 140751.042567201637051682705862+16193 140760.734901530710522472679948+16194 140770.427297612956582127807359+16195 140780.119755444562011800447827+16196 140789.812275021714063541525657+16197 140799.504856340600460213307444+16198 140809.197499397409395402201331+16199 140818.890204188329533331577804+16200 140828.582970709550008774612+16201 140838.275798957260426967147551+16202 140847.96868892765086352058193+16203 140857.661640616911864334773309+16204 140867.354654021234445510968914+16205 140877.047729136810093264754873+16206 140886.740865959830763839027555+16207 140896.434064486488883416986382+16208 140906.127324712977348035148122+16209 140915.820646635489523496382639+16210 140925.514030250219245282970116+16211 140935.207475553360818469679718+16212 140944.900982541109017636869711+16213 140954.594551209659086783609019+16214 140964.28818155520673924082021+16215 140973.981873573948157584443918+16216 140983.675627262079993548624677+16217 140993.369442615799367938918172+16218 141003.063319631303870545519898+16219 141012.75725830479156005651522+16220 141022.451258632460963971150824+16221 141032.145320610511078513127558+16222 141041.839444235141368543914652+16223 141051.533629502551767476085315+16224 141061.227876408942677186673696+16225 141070.922184950514967930553209+16226 141080.61655512346997825383621+16227 141090.310986924009514907295026+16228 141100.00548034833585275980432+16229 141109.700035392651734711804793+16230 141119.394652053160371608788215+16231 141129.089330326065442154803779+16232 141138.784070207571092825985764+16233 141148.478871693881937784102513+16234 141158.173734781203058790126711+16235 141167.868659465740005117826955+16236 141177.563645743698793467380617+16237 141187.258693611285907879007986+16238 141196.953803064708299646627691+16239 141206.648974100173387231533385+16240 141216.344206713889056176091698+16241 141226.039500902063659017461443+16242 141235.734856660906015201334073+16243 141245.430273986625410995695381+16244 141255.125752875431599404608433+16245 141264.821293323534800082017738+16246 141274.516895327145699245574631+16247 141284.212558882475449590483883+16248 141293.908283985735670203371517+16249 141303.604070633138446476173823+16250 141313.29991882089633002004758+16251 141322.99582854522233857930146+16252 141332.691799802329955945348623+16253 141342.387832588433131870680481+16254 141352.083926899746281982861644+16255 141361.780082732484287698546022+16256 141371.476300082862496137514087+16257 141381.172578947096720036731293+16258 141390.868919321403237664427627+16259 141400.565321201998792734198317+16260 141410.261784585100594319125656+16261 141419.95830946692631676592196+16262 141429.654895843694099609093643+16263 141439.351543711622547485126406+16264 141449.048253066930730046691529+16265 141458.745023905838181876873265+16266 141468.441856224564902403417327+16267 141478.138750019331355813000462+16268 141487.835705286358470965521104+16269 141497.5327220218676413084111+16270 141507.229800222080724790968504+16271 141516.926939883220043778711436+16272 141526.624141001508384967752986+16273 141536.321403573168999299197177+16274 141546.018727594425601873555957+16275 141555.716113061502371865187238+16276 141565.413559970623952436753955+16277 141575.11106831801545065370415+16278 141584.808638099902437398772073+16279 141594.506269312510947286500287+16280 141604.203961952067478577782782+16281 141613.90171601479899309442908+16282 141623.599531496932916133749333+16283 141633.297408394697136383160403+16284 141642.995346704320005834812915+16285 141652.693346422030339700239292+16286 141662.391407544057416325022736+16287 141672.089530066630977103487186+16288 141681.787713985981226393408211+16289 141691.485959298338831430744855+16290 141701.184265999934922244392424+16291 141710.882634087001091570956194+16292 141720.581063555769394769546055+16293 141730.279554402472349736592066+16294 141739.978106623342936820680927+16295 141749.676720214614598737413359+16296 141759.375395172521240484282375+16297 141769.074131493297229255572454+16298 141778.772929173177394357279596+16299 141788.471788208397027122052261+16300 141798.170708595191880824153176+16301 141807.869690329798170594442019+16302 141817.568733408452573335378955+16303 141827.267837827392227636049032+16304 141836.967003582854733687207427+16305 141846.666230671078153196345525+16306 141856.365519088301009302777848+16307 141866.064868830762286492749798+16308 141875.764279894701430514566234+16309 141885.463752276358348293740862+16310 141895.163285971973407848166431+16311 141904.862880977787438203305741+16312 141914.56253729004172930740344+16313 141924.262254904978031946718618+16314 141933.962033818838557660778183+16315 141943.661874027865978657651015+16316 141953.361775528303427729242893+16317 141963.061738316394498166612184+16318 141972.761762388383243675306301+16319 141982.461847740514178290718899+16320 141992.161994369032276293467831+16321 142001.862202270182972124793835+16322 142011.562471440212160301979959+16323 142021.262801875366195333791714+16324 142030.963193571891891635937944+16325 142040.663646526036523446552414+16326 142050.364160734047824741696105+16327 142060.064736192173989150880214+16328 142069.765372896663669872609843+16329 142079.466070843765979589948384+16330 142089.166830029730490386102583+16331 142098.867650450807233660028282+16332 142108.568532103246700042056834+16333 142118.269474983299839309542173+16334 142127.970479087218060302528554+16335 142137.671544411253230839438936+16336 142147.372670951657677632784012+16337 142157.073858704684186204891875+16338 142166.775107666586000803658325+16339 142176.476417833616824318317793+16340 142186.177789202030818195234886+16341 142195.879221768082602353716553+16342 142205.580715528027255101844846+16343 142215.282270478120313052330294+16344 142224.983886614617771038385863+16345 142234.685563933776082029621506+16346 142244.3873024318521570479593+16347 142254.089102105103365083569153+16348 142263.790962949787533010825078+16349 142273.492884962162945504282041+16350 142283.194868138488344954673354+16351 142292.896912475022931384928623+16352 142302.599017968026362366212245+16353 142312.301184613758752933982434+16354 142322.003412408480675504070784+16355 142331.705701348453159788782357+16356 142341.408051429937692713016289+16357 142351.11046264919621833040691+16358 142360.812935002491137739485368+16359 142370.515468486085308999861757+16360 142380.218063096242047048427735+16361 142389.920718829225123615579633+16362 142399.623435681298767141462044+16363 142409.326213648727662692231888+16364 142419.029052727776951876342943+16365 142428.731952914712232760850843+16366 142438.434914205799559787738532+16367 142448.137936597305443690262161+16368 142457.841020085496851409317443+16369 142467.544164666641206009826429+16370 142477.24737033700638659714473+16371 142486.950637092860728233489154+16372 142496.653964930473021854385768+16373 142506.357353846112514185138372+16374 142516.060803836048907657317375+16375 142525.764314896552360325269077+16376 142535.467887023893485782645342+16377 142545.171520214343353078953659+16378 142554.875214464173486636127585+16379 142564.578969769655866165117566+16380 142574.28278612706292658250212+16381 142583.986663532667557927119392+16382 142593.690601982743105276719059+16383 142603.394601473563368664634588+16384 142613.098662001402602996475837+16385 142622.802783562535517966842+16386 142632.506966153237277976054873+16387 142642.211209769783502046912455+16388 142651.915514408450263741462865+16389 142661.619880065514091077798573+16390 142671.324306737251966446870936+16391 142681.028794419941326529325039+16392 142690.733343109860062212354826+16393 142700.437952803286518506578522+16394 142710.14262349649949446293434+16395 142719.847355185778243089596458+16396 142729.552147867402471268911269+16397 142739.257001537652339674353898+16398 142748.961916192808462687504972+16399 142758.666891829151908315047642+16400 142768.371928442964198105784853+16401 142778.077026030527307067676849+16402 142787.782184588123663584898916+16403 142797.487404112036149334919349+16404 142807.192684598548099205597634+16405 142816.898026043943301212302859+16406 142826.603428444505996415052317+16407 142836.30889179652087883567032+16408 142846.014416096273095374967209+16409 142855.720001340048245729938552+16410 142865.425647524132382310984521+16411 142875.131354644812010159149458+16412 142884.8371226983740868633816+16413 142894.542951681106022477812979+16414 142904.24884158929567943905947+16415 142913.954792419231372483541007+16416 142923.66080416720186856482193+16417 142933.366876829496386770971487+16418 142943.073010402404598241944454+16419 142952.779204882216626086981903+16420 142962.485460265223045302032075+16421 142972.191776547714882687191378+16422 142981.898153725983616764165496+16423 142991.604591796321177693750593+16424 143001.311090755019947193334627+16425 143011.017650598372758454418745+16426 143020.72427132267289606015877+16427 143030.430952924214095902926763+16428 143040.137695399290545101892664+16429 143049.844498744196881920625993+16430 143059.551362955228195684717618+16431 143069.258288028680026699421574+16432 143078.965273960848366167316936+16433 143088.672320748029656105989725+16434 143098.379428386520789265734863+16435 143108.08659687261910904727815+16436 143117.793826202622409419518268+16437 143127.501116372828934837288802+16438 143137.208467379537380159140276+16439 143146.915879219046890565142197+16440 143156.623351887657061474705088+16441 143166.33088538166793846442253+16442 143176.038479697380017185933183+16443 143185.746134831094243283802789+16444 143195.453850779112012313426153+16445 143205.161627537735169658949097+16446 143214.869465103266010451210366+16447 143224.57736347200727948570351+16448 143234.285322640262171140558697+16449 143243.993342604334329294544488+16450 143253.701423360527847245089542+16451 143263.409564905147267626324259+16452 143273.117767234497582327142345+16453 143282.826030344884232409282306+16454 143292.53435423261310802542885+16455 143302.242738893990548337334202+16456 143311.95118432532334143395932+16457 143321.65969052291872424963501+16458 143331.368257483084382482242931+16459 143341.076885202128450511416484+16460 143350.785573676359511316761581+16461 143360.494322902086596396097286+16462 143370.203132875619185683716326+16463 143379.912003593267207468665456+16464 143389.620935051341038313045688+16465 143399.329927246151502970332359+16466 143409.038980174009874303715047+16467 143418.748093831227873204457327+16468 143428.457268214117668510276349+16469 143438.166503318991876923742246+16470 143447.875799142163562930697362+16471 143457.585155679946238718695289+16472 143467.294572928653864095459712+16473 143477.004050884600846407363054+16474 143486.713589544102040457924917+16475 143496.423188903472748426330309+16476 143506.132848959028719785967659+16477 143515.842569707086151222986599+16478 143525.552351143961686554875526+16479 143535.262193265972416649058925+16480 143544.972096069435879341514447+16481 143554.682059550670059355409747+16482 143564.392083705993388219759059+16483 143574.102168531724744188099524+16484 143583.812314024183452157187238+16485 143593.52252017968928358571304+16486 143603.23278699456245641303802+16487 143612.943114465123634977948738+16488 143622.65350258769392993743216+16489 143632.363951358594898185470299+16490 143642.074460774148542771854547+16491 143651.785030830677312821019708+16492 143661.495661524504103450897717+16493 143671.206352851952255691791032+16494 143680.917104809345556405265709+16495 143690.627917393008238203064145+16496 143700.338790599264979366037479+16497 143710.049724424440903763097653+16498 143719.760718864861580770189125+16499 143729.471773916853025189280227+16500 143739.182889576741697167374158+16501 143748.894065840854502115539615+16502 143758.605302705518790627961048+16503 143768.316600167062358401008538+16504 143778.027958221813446152327291+16505 143787.739376866100739539946737+16506 143797.450856096253369081409236+16507 143807.162395908600910072918384+16508 143816.873996299473382508506903+16509 143826.585657265201250999224124+16510 143836.297378802115424692343044+16511 143846.00916090654725719058696+16512 143855.721003574828546471375673+16513 143865.432906803291534806091245+16514 143875.144870588268908679363323+16515 143884.856894926093798708374004+16516 143894.568979813099779562182253+16517 143904.281125245620869881067846+16518 143913.993331219991532195894862+16519 143923.705597732546672847494687+16520 143933.417924779621641906068546+16521 143943.130312357552233090609547+16522 143952.842760462674683688344237+16523 143962.555269091325674474193652+16524 143972.267838239842329630253877+16525 143981.980467904562216665296085+16526 143991.693158081823346334286068+16527 144001.405908767964172557923243+16528 144011.118719959323592342199136+16529 144020.831591652240945697975328+16530 144030.544523843056015560580864+16531 144040.257516528109027709429123+16532 144049.97056970374065068765413+16533 144059.683683366291995721766315+16534 144069.39685751210461664132771+16535 144079.110092137520509798646582+16536 144088.82338723888211398849148+16537 144098.536742812532310367824719+16538 144108.250158854814422375555264+16539 144117.963635362072215652311033+16540 144127.677172330649897960230595+16541 144137.390769756892119102774267+16542 144147.104427637143970844554608+16543 144156.818145967750986831186287+16544 144166.531924745059142509155342+16545 144176.245763965414855045707802+16546 144185.959663625164983248757684+16547 144195.673623720656827486814347+16548 144205.387644248238129608929207+16549 144215.101725204257072864661793+16550 144224.815866585062281824065161+16551 144234.530068387002822297690629+16552 144244.244330606428201256611861+16553 144253.958653239688366752468266+16554 144263.673036283133707837527723+16555 144273.387479733115054484768622+16556 144283.101983585983677507981206+16557 144292.816547838091288481888232+16558 144302.53117248579003966228491+16559 144312.245857525432523906198148+16560 144321.960602953371774592065079+16561 144331.675408765961265539930865+16562 144341.390274959554910931665777+16563 144351.105201530507065231201547+16564 144360.820188475172523104786972+16565 144370.535235789906519341262792+16566 144380.250343471064728772355798+16567 144389.965511515003266192992204+16568 144399.680739918078686281630244+16569 144409.396028676647983520612013+16570 144419.11137778706859211653453+16571 144428.82678724569838592064002+16572 144438.542257048895678349225423+16573 144448.257787193019222304071099+16574 144457.973377674428210092888752+16575 144467.689028489482273349788538+16576 144477.404739634541482955765379+16577 144487.120511105966348959204456+16578 144496.836342900117820496405887+16579 144506.552235013357285712128575+16580 144516.268187442046571680153238+16581 144525.984200182547944323864585+16582 144535.700273231224108336852669+16583 144545.416406584438207103533376+16584 144555.132600238553822619788076+16585 144564.848854189934975413622399+16586 144574.565168434946124465844157+16587 144584.281542969952167130760397+16588 144593.997977791318439056893564+16589 144603.714472895410714107716799+16590 144613.431028278595204282408334+16591 144623.147643937238559636625004+16592 144632.864319867707868203294857+16593 144642.581056066370655913428849+16594 144652.297852529594886516951647+16595 144662.014709253748961503551496+16596 144671.731626235201720023549176+16597 144681.448603470322438808786025+16598 144691.165640955480832093531031+16599 144700.882738687047051535406981+16600 144710.599896661391686136335668+16601 144720.317114874885762163502146+16602 144730.034393323900743070338023+16603 144739.7517320048085294175238+16604 144749.469130913981458794010237+16605 144759.186590047792305738058741+16606 144768.90410940261428165830078+16607 144778.621688974821034754816313+16608 144788.33932876078664994023122+16609 144798.05702875688564876083374+16610 144807.774788959492989317709911+16611 144817.492609364984066187897994+16612 144827.210489969734710345561882+16613 144836.928430770121189083183499+16614 144846.646431762520205932774164+16615 144856.364492943308900587104924+16616 144866.082614308864848820955857+16617 144875.800795855566062412384324+16618 144885.519037579790989064012179+16619 144895.237339477918512324331922+16620 144904.955701546327951509031788+16621 144914.674123781399061622339781+16622 144924.392606179512033278386625+16623 144934.111148737047492622587647+16624 144943.829751450386501253043572+16625 144953.54841431591055614196023+16626 144963.267137330001589557087174+16627 144972.985920489041968983175193+16628 144982.704763789414497043452719+16629 144992.423667227502411421121128+16630 145002.142630799689384780868922+16631 145011.861654502359524690404783+16632 145021.580738331897373542009512+16633 145031.299882284687908474106817+16634 145041.019086357116541292852977+16635 145050.738350545569118393745352+16636 145060.457674846431920683249747+16637 145070.177059256091663500446611+16638 145079.89650377093549653869609+16639 145089.616008387351003767321892+16640 145099.335573101726203353313995+16641 145109.055197910449547583050171+16642 145118.774882809909922784036317+16643 145128.494627796496649246665611+16644 145138.214432866599481145996457+16645 145147.934298016608606463549238+16646 145157.654223242914646909121858+16647 145167.374208541908657842624072+16648 145177.094253909982128195930596+16649 145186.814359343526980394752992+16650 145196.534524838935570280530329+16651 145206.2547503926006870323386+16652 145215.975036000915553088818904+16653 145225.695381660273824070124378+16654 145235.41578736706958869988588+16655 145245.136253117697368727196407+16656 145254.856778908552118848614257+16657 145264.57736473602922663018492+16658 145274.29801059652451242948169+16659 145284.018716486434229317664997+16660 145293.739482402155063001560461+16661 145303.460308340084131745755641+16662 145313.1811942966189862947155+16663 145322.902140268157609794916555+16664 145332.623146251098417716999728+16665 145342.344212241840257777941874+16666 145352.065338236782409863246+16667 145361.786524232324585949150147+16668 145371.507770224866930024854949+16669 145381.229076210810018014769851+16670 145390.950442186554857700777987+16671 145400.67186814850288864451971+16672 145410.393354093055982109694766+16673 145420.114900016616440984383114+16674 145429.836505915586999703384376+16675 145439.55817178637082417057592+16676 145449.279897625371511681289564+16677 145459.001683428993090844706906+16678 145468.723529193640021506273255+16679 145478.445434915717194670130184+16680 145488.16740059162993242156667+16681 145497.889426217783987849488842+16682 145507.611511790585544968908314+16683 145517.333657306441218643449103+16684 145527.055862761758054507873131+16685 145536.778128152943528890624296+16686 145546.500453476405548736391111+16687 145556.222838728552451528687914+16688 145565.945283905793005212454623+16689 145575.667789004536408116675056+16690 145585.390354021192288877013784+16691 145595.112978952170706358471536+16692 145604.835663793882149578059132+16693 145614.558408542737537627489947+16694 145624.281213195148219595890904+16695 145634.004077747525974492531976+16696 145643.727002196283011169574208+16697 145653.449986537831968244836246+16698 145663.173030768585914024579363+16699 145672.896134884958346426310989+16700 145682.619298883363192901606723+16701 145692.342522760214810358950835+16702 145702.065806511927985086595252+16703 145711.789150134917932675437006+16704 145721.512553625600297941914161+16705 145731.236016980391154850920202+16706 145740.959540195707006438736876+16707 145750.683123267964784735985492+16708 145760.406766193581850690596657+16709 145770.130468968975994090798471+16710 145779.854231590565433488123134+16711 145789.578054054768816120432006+16712 145799.301936358005217834959073+16713 145809.025878496694143011372845+16714 145818.749880467255524484856656+16715 145828.473942266109723469207385+16716 145838.198063889677529479952569+16717 145847.922245334380160257485913+16718 145857.646486596639261690221201+16719 145867.370787672876907737764582+16720 145877.095148559515600354105241+16721 145886.819569252978269410824447+16722 145896.544049749688272620322966+16723 145906.268590046069395459066842+16724 145915.993190138545851090851534+16725 145925.717850023542280290084403+16726 145935.442569697483751365085555+16727 145945.167349156795760081407018+16728 145954.892188397904229585170257+16729 145964.617087417235510326422026+16730 145974.342046211216379982508534+16731 145984.067064776274043381467943+16732 145993.792143108836132425441173+16733 146003.51728120533070601410102+16734 146013.242479062186249968099575+16735 146022.96773667583167695253394+16736 146032.693054042696326400430244+16737 146042.418431159209964436245936+16738 146052.143868021802783799390367+16739 146061.869364626905403767763647+16740 146071.594920970948870081313771+16741 146081.32053705036465486561201+16742 146091.046212861584656555446564+16743 146100.771948401041199818434471+16744 146110.497743665167035478651761+16745 146120.223598650395340440281852+16746 146129.949513353159717611282194+16747 146139.675487769894195827069133+16748 146149.401521897033229774221012+16749 146159.127615731011699914199488+16750 146168.85376926826491240708907+16751 146178.579982505228599035354862+16752 146188.306255438338917127618518+16753 146198.032588064032449482452389+16754 146207.758980378746204292191877+16755 146217.485432378917615066765963+16756 146227.211944060984540557545933+16757 146236.938515421385264681212268+16758 146246.665146456558496443639724+16759 146256.391837162943369863800561+16760 146266.118587536979443897685951+16761 146275.845397575106702362245528+16762 146285.572267273765553859345101+16763 146295.299196629396831699742506+16764 146305.0261856384417938270816+16765 146314.75323429734212274190439+16766 146324.480342602539925425681293+16767 146334.207510550477733264859517+16768 146343.934738137598501974929566+16769 146353.662025360345611524509852+16770 146363.389372215162866059449418+16771 146373.116778698494493826948768+16772 146382.844244806785147099698784+16773 146392.571770536479902100037745+16774 146402.299355884024258924126424+16775 146412.027000845864141466141276+16776 146421.754705418445897342485688+16777 146431.482469598216297816019312+16778 146441.210293381622537720305457+16779 146450.938176765112235383876541+16780 146460.666119745133432554517593+16781 146470.394122318134594323567815+16782 146480.122184480564609050240174+16783 146489.850306228872788285959043+16784 146499.578487559508866698715864+16785 146509.306728468923001997442848+16786 146519.035028953565774856404693+16787 146528.763389009888188839608315+16788 146538.491808634341670325230595+16789 146548.220287823378068430064129+16790 146557.948826573449654933980982+16791 146567.677424881009124204414431+16792 146577.4060827425095931208587+16793 146587.134800154404600999386685+16794 146596.863577113148109517185648+16795 146606.592413615194502637110894+16796 146616.321309656998586532257408+16797 146626.05026523501558951054946+16798 146635.77928034570116193934817+16799 146645.508354985511376170077014+16800 146655.237489150902726462865291+16801 146664.966682838332128911209522+16802 146674.695936044256921366652789+16803 146684.425248765134863363482001+16804 146694.154620997424136043443092+16805 146703.884052737583342080474133+16806 146713.613543982071505605456364+16807 146723.343094727348072130983128+16808 146733.072704969872908476146718+16809 146742.802374706106302691343117+16810 146752.532103932508963983094635+16811 146762.26189264554202263889043+16812 146771.991740841667029952044916+16813 146781.721648517345958146574046+16814 146791.451615669041200302089469+16815 146801.181642293215570278710551+16816 146810.911728386332302641994264+16817 146820.641873944855052587882921+16818 146830.372078965247895867669774+16819 146840.102343443975328712982446+16820 146849.832667377502267760784213+16821 146859.563050762294049978393117+16822 146869.293493594816432588518906+16823 146879.023995871535592994317803+16824 146888.754557588918128704465093+16825 146898.485178743431057258245523+16826 146908.21585933154181615066151+16827 146917.946599349718262757559155+16828 146927.677398794428674260772053+16829 146937.408257662141747573282893+16830 146947.139175949326599264402853+16831 146956.87015365245276548496877+16832 146966.601190767990201892558089+16833 146976.332287292409283576721586+16834 146986.063443222180804984233852+16835 146995.794658553775979844361548+16836 147005.525933283666441094149399+16837 147015.257267408324240803723959+16838 147024.988660924221850101615103+16839 147034.720113827832159100095272+16840 147044.451626115628476820536444+16841 147054.183197784084531118784839+16842 147063.914828829674468610553349+16843 147073.646519248872854596831679+16844 147083.378269038154672989314216+16845 147093.11007819399532623584559+16846 147102.841946712870635245883951+16847 147112.573874591256839315981935+16848 147122.305861825630596055285332+16849 147132.037908412468981311049429+16850 147141.770014348249489094173047+16851 147151.502179629450031504750245+16852 147161.234404252548938657639708+16853 147170.966688214024958608051784+16854 147180.699031510357257277153199+16855 147190.43143413802541837768942+16856 147200.163896093509443339624664+16857 147209.896417373289751235799565+16858 147219.628997973847178707606469+16859 147229.361637891662979890682371+16860 147239.094337123218826340619478+16861 147248.827095664996806958693401+16862 147258.55991351347942791760896+16863 147268.292790665149612587263611+16864 147278.02572711649070146052847+16865 147287.758722863986452079046957+16866 147297.49177790412103895905102+16867 147307.224892233379053517194969+16868 147316.958065848245503996406886+16869 147326.691298745205815391757624+16870 147336.424590920745829376347379+16871 147346.157942371351804227209842+16872 147355.891353093510414751233906+16873 147365.62482308370875221110295+16874 147375.358352338434324251251664+16875 147385.091940854175054823840437+16876 147394.825588627419284114747288+16877 147404.559295654655768469577335+16878 147414.293061932373680319689806+16879 147424.026887457062608108242573+16880 147433.760772225212556216254217+16881 147443.494716233313944888683614+16882 147453.228719477857610160527031+16883 147462.962781955334803782932737+16884 147472.696903662237193149333116+16885 147482.431084595056861221594282+16886 147492.165324750286306456183182+16887 147501.899624124418442730352199+16888 147511.63398271394659926834123+16889 147521.368400515364520567597243+16890 147531.102877525166366325011316+16891 147540.837413739846711363173137+16892 147550.572009155900545556642967+16893 147560.306663769823273758241066+16894 147570.041377578110715725354569+16895 147579.776150577259106046261809+16896 147589.510982763765094066474087+16897 147599.245874134125743815094873+16898 147608.980824684838533931196447+16899 147618.715834412401357590213959+16900 147628.450903313312522430356917+16901 147638.18603138407075047903809+16902 147647.921218621175178079319823+16903 147657.656465021125355816377758+16904 147667.391770580421248443981957+16905 147677.12713529556323481099542+16906 147686.862559163052107787889996+16907 147696.598042179389074193279681+16908 147706.333584341075754720471291+16909 147716.069185644614183864032518+16910 147725.804846086506809846377353+16911 147735.540565663256494544368872+16912 147745.276344371366513415939389+16913 147755.012182207340555426727959+16914 147764.74807916768272297673523+16915 147774.484035248897531826995646+16916 147784.220050447489911026266981+16917 147793.956124759965202837737218+16918 147803.692258182829162665748751+16919 147813.428450712587958982539908+16920 147823.164702345748173255003805+16921 147832.901013078816799871464502+16922 147842.637382908301246068470473+16923 147852.373811830709331857605386+16924 147862.110299842549289952316168+16925 147871.846846940329765694758379+16926 147881.583453120559816982658861+16927 147891.320118379748914196195681+16928 147901.056842714406940124895347+16929 147910.793626121044189894547299+16930 147920.530468596171370894135667+16931 147930.267370136299602702788292+16932 147940.004330737940417016743008+16933 147949.741350397605757576331174+16934 147959.478429111807980092978455+16935 147969.215566877059852176222843+16936 147978.95276368987455326074992+16937 147988.690019546765674533445352+16938 147998.427334444247218860464609+16939 148008.164708378833600714319906+16940 148017.90214134703964610098437+16941 148027.639633345380592487013405+16942 148037.377184370372088726683277+16943 148047.114794418530194989146894+16944 148056.852463486371382685606788+16945 148066.590191570412534396505281+16946 148076.327978667170943798731844+16947 148086.06582477316431559284764+16948 148095.803729884910765430327237+16949 148105.541693998928819840817495+16950 148115.279717111737416159413623+16951 148125.017799219855902453952391+16952 148134.755940319804037452322508+16953 148144.494140408101990469792137+16954 148154.232399481270341336353575+16955 148163.970717535830080324085056+16956 148173.709094568302608074529701+16957 148183.447530575209735526091598+16958 148193.186025553073683841449004+16959 148202.924579498417084334984673+16960 148212.663192407762978400233294+16961 148222.401864277634817437346048+16962 148232.140595104556462780572263+16963 148241.879384885052185625758176+16964 148251.618233615646666957862783+16965 148261.357141292864997478490792+16966 148271.09610791323267753344265+16967 148280.835133473275617040281656+16968 148290.574217969520135415918148+16969 148300.313361398492961504210766+16970 148310.052563756721233503584772+16971 148319.791825040732498894667434+16972 148329.531145247054714367940472+16973 148339.270524372216245751409544+16974 148349.009962412745867938290782+16975 148358.749459365172764814714375+16976 148368.489015226026529187445175+16977 148378.228629991837162711620341+16978 148387.968303659135075818504012+16979 148397.708036224451087643258989+16980 148407.447827684316425952735445+16981 148417.187678035262727073276636+16982 148426.927587273822035818541622+16983 148436.667555396526805417344988+16984 148446.407582399909897441513559+16985 148456.147668280504581733760107+16986 148465.88781303484453633557404+16987 148475.628016659463847415129077+16988 148485.368279150897009195207896+16989 148495.108600505678923881143747+16990 148504.848980720344901588779037+16991 148514.589419791430660272440879+16992 148524.32991771547232565293358+16993 148534.070474489006431145548101+16994 148543.811090108569917788088446+16995 148553.551764570700134168914996+16996 148563.292497871934836355004785+16997 148573.033290008812187820028697+16998 148582.774140977870759372445593+16999 148592.515050775649529083613358+17000 148602.256019398687882215916867+17001 148611.997046843525611150912854+17002 148621.738133106702915317491692+17003 148631.479278184760401120056074+17004 148641.220482074239081866716588+17005 148650.961744771680377697504179+17006 148660.703066273626115512599506+17007 148670.444446576618528900579171+17008 148680.185885677200258066678829+17009 148689.927383571914349761073162+17010 148699.668940257304257207172733+17011 148709.410555729913840029937681+17012 148719.152229986287364184208292+17013 148728.893963022969501883052405+17014 148738.635754836505331526129675+17015 148748.37760542344033762807267+17016 148758.119514780320410746884809+17017 148767.861482903691847412355127+17018 148777.603509790101350054489872+17019 148787.345595436096026931960916+17020 148797.087739838223392060570988+17021 148806.829942993031365141735717+17022 148816.572204897068271490982479+17023 148826.314525546882841966466052+17024 148836.056904939024212897501057+17025 148845.799343070041926013111202+17026 148855.541839936485928370595307+17027 148865.28439553490657228411011+17028 148875.027009861854615253269851+17029 148884.76968291388121989176263+17030 148894.512414687537953855983533+17031 148904.255205179376789773684512+17032 148913.998054385950105172641031+17033 148923.740962303810682409335461+17034 148933.483928929511708597657224+17035 148943.226954259606775537619674+17036 148952.970038290649879644093724+17037 148962.713181019195421875558198+17038 148972.456382441798207662866915+17039 148982.199642555013446838032495+17040 148991.942961355396753563026883+17041 149001.686338839504146258598583+17042 149011.429775003892047533106607+17043 149021.17326984511728411137112+17044 149030.916823359737086763540786+17045 149040.660435544309090233976809+17046 149050.40410639539133317015366+17047 149060.147835909542258051576491+17048 149069.891624083320711118715221+17049 149079.635470913285942301955304+17050 149089.379376395997605150565163+17051 149099.123340528015756761680282+17052 149108.867363305900857709303969+17053 149118.611444726213771973324762+17054 149128.355584785515766868550488+17055 149138.099783480368512973758975+17056 149147.844040807334084060765386+17057 149157.588356762974957023506207+17058 149167.33273134385401180713985+17059 149177.077164546534531337163888+17060 149186.821656367580201448548911+17061 149196.566206803555110814888994+17062 149206.310815851023750877568776+17063 149216.055483506551015774947144+17064 149225.800209766702202271557521+17065 149235.544994628043009687324749+17066 149245.289838087139539826798556+17067 149255.034740140558296908403619+17068 149264.779700784866187493706203+17069 149274.524720016630520416697376+17070 149284.269797832419006713092797+17071 149294.014934228799759549649072+17072 149303.760129202341294153496666+17073 149313.505382749612527741489379+17074 149323.250694867182779449570372+17075 149332.996065551621770262154736+17076 149342.741494799499622941528608+17077 149352.486982607386861957264827+17078 149362.232528971854413415655111+17079 149371.978133889473604989158777+17080 149381.723797356816165845867975+17081 149391.469519370454226578989439+17082 149401.215299926960319136342758+17083 149410.96113902290737674987515+17084 149420.707036654868733865192744+17085 149430.452992819418126071108355+17086 149440.19900751312969002920576+17087 149449.945080732577963403420455+17088 149459.691212474337884789636909+17089 149469.437402734984793645302281+17090 149479.183651511094430219056625+17091 149488.929958799242935480379562+17092 149498.676324596006851049253412+17093 149508.42274889796311912584279+17094 149518.169231701689082420190659+17095 149527.915773003762484081930832+17096 149537.662372800761467630016918+17097 149547.409031089264576882467712+17098 149557.155747865850755886129019+17099 149566.902523127099348846451911+17100 149576.649356869590100057287412+17101 149586.396249089903153830697599+17102 149596.143199784619054426783127+17103 149605.890208950318745983527161+17104 149615.63727658358357244665572+17105 149625.384402680995277499514418+17106 149635.13158723913600449296161+17107 149644.878830254588296375277921+17108 149654.626131723935095622092176+17109 149664.373491643759744166323702+17110 149674.120910010645983328141016+17111 149683.868386821177953744936882+17112 149693.615922071940195301319741+17113 149703.363515759517647059121503+17114 149713.111167880495647187421699+17115 149722.858878431459932892587988+17116 149732.606647408996640348333016+17117 149742.354474809692304625787615+17118 149752.102360630133859623590345+17119 149761.850304866908637997993376+17120 149771.598307516604371092984694+17121 149781.346368575809188870426639+17122 149791.094488041111619840210757+17123 149800.842665909100590990428977+17124 149810.590902176365427717561094+17125 149820.339196839495853756678562+17126 149830.087549895081991111664588+17127 149839.835961339714359985450522+17128 149849.584431169983878710268546+17129 149859.332959382481863677920639+17130 149869.081545973800029270063842+17131 149878.830190940530487788511785+17132 149888.578894279265749385552498+17133 149898.327655986598721994282489+17134 149908.076476059122711258957082+17135 149917.825354493431420465357023+17136 149927.574291286118950471171329+17137 149937.3232864337797996363964+17138 149947.072339933008863753751367+17139 149956.821451780401435979109681+17140 149966.570621972553206761946947+17141 149976.319850506060263775804974+17142 149986.069137377519091848772068+17143 149995.81848258352657289397953+17144 150005.567886120679985840114388+17145 150015.317347985577006561948324+17146 150025.066868174815707810882822+17147 150034.816446684994559145510512+17148 150044.566083512712426862192713+17149 150054.31577865456857392565317+17150 150064.065532107162659899587979+17151 150073.815343867094740877291696+17152 150083.565213930965269412299625+17153 150093.31514229537509444904628+17154 150103.065128956925461253540019+17155 150112.815173912218011344053838+17156 150122.56527715785478242183233+17157 150132.315438690438208301814798+17158 150142.065658506571118843374518+17159 150151.815936602856739881074147+17160 150161.566272975898693155437279+17161 150171.316667622300996243736127+17162 150181.067120538668062490795346+17163 150190.81763172160470093981198+17164 150200.56820116771611626319153+17165 150210.318828873607908693400142+17166 150220.069514835886073953832911+17167 150229.820259051157003189698284+17168 150239.57106151602748289891858+17169 150249.321922227104694863046598+17170 150259.072841180996216078198322+17171 150268.823818374310018686001724+17172 150278.574853803654469904561638+17173 150288.325947465638331959440728+17174 150298.077099356870762014656522+17175 150307.828309473961312103694522+17176 150317.579577813519929060537377+17177 150327.330904372156954450710123+17178 150337.082289146483124502341476+17179 150346.833732133109570037241173+17180 150356.585233328647816401993373+17181 150366.336792729709783399066089+17182 150376.088410332907785217936662+17183 150385.840086134854530366233276+17184 150395.591820132163121600892486+17185 150405.343612321447055859332788+17186 150415.095462699320224190644198+17187 150424.847371262396911686793844+17188 150434.599338007291797413847581+17189 150444.351362930619954343207597+17190 150454.103446028996849282866029+17191 150463.855587299038342808674572+17192 150473.607786737360689195630084+17193 150483.360044340580536349176169+17194 150493.112360105314925736520751+17195 150502.864734028181292317969625+17196 150512.617166105797464478275975+17197 150522.369656334781663958005866+17198 150532.122204711752505784919701+17199 150541.87481123332899820536963+17200 150551.62747589613054261571292+17201 150561.380198696776933493741273+17202 150571.13297963188835833012609+17203 150580.885818698085397559879674+17204 150590.638715891989024493832369+17205 150600.391671210220605250125634+17206 150610.144684649401898685721037+17207 150619.897756206155056327925178+17208 150629.650885877102622305930529+17209 150639.404073658867533282372177+17210 150649.15731954807311838490049+17211 150658.910623541343099137769675+17212 150668.663985635301589393442244+17213 150678.417405826573095264209363+17214 150688.170884111782515053827104+17215 150697.924420487555139189168572+17216 150707.678014950516650151891918+17217 150717.431667497293122410124225+17218 150727.185378124511022350161266+17219 150736.939146828797208208183133+17220 150746.692973606778930001985718+17221 150756.446858455083829462728063+17222 150766.200801370339939966695557+17223 150775.95480234917568646707898+17224 150785.708861388219885425769393+17225 150795.462978484101744745168868+17226 150805.217153633450863700017052+17227 150814.971386832897232869233556+17228 150824.725678079071234067776179+17229 150834.480027368603640278514945+17230 150844.234434698125615584121954+17231 150853.988900064268715098977057+17232 150863.743423463664884901089324+17233 150873.49800489294646196403432+17234 150883.252644348746174088907184+17235 150893.007341827697139836291488+17236 150902.762097326432868458243901+17237 150912.516910841587259830294625+17238 150922.271782369794604383463612+17239 150932.026711907689583036292561+17240 150941.781699451907267126892684+17241 150951.53674499908311834500823+17242 150961.291848545852988664095783+17243 150971.047010088853120273419304+17244 150980.802229624720145510160937+17245 150990.557507150091086791547549+17246 151000.312842661603356546993027+17247 151010.068236155894757150256301+17248 151019.823687629603480851615111+17249 151029.579197079368109710055494+17250 151039.334764501827615525477002+17251 151049.090389893621359770913639+17252 151058.846073251389093524770513+17253 151068.601814571770957403076193+17254 151078.357613851407481491750788+17255 151088.113471086939585278889706+17256 151097.869386275008577587063134+17257 151107.625359412256156505631189+17258 151117.381390495324409323074774+17259 151127.137479520855812459342106+17260 151136.893626485493231398210931+17261 151146.649831385879920619666411+17262 151156.406094218659523532294676+17263 151166.162414980476072405692052+17264 151175.918793667973988302889941+17265 151185.675230277798081012795357+17266 151195.431724806593548982647127+17267 151205.188277251005979250487718+17268 151214.944887607681347377650728+17269 151224.701555873266017381264001+17270 151234.458282044406741666768381+17271 151244.215066117750660960452097+17272 151253.971908089945304242000769+17273 151263.728807957638588677063035+17274 151273.485765717478819549831797+17275 151283.242781366114690195641074+17276 151292.999854900195281933578463+17277 151302.756986316370063999113203+17278 151312.514175611288893476739836+17279 151322.271422781602015232637463+17280 151332.028727823960061847344583+17281 151341.786090735014053548449522+17282 151351.54351151141539814329644+17283 151361.300990149815890951706911+17284 151371.058526646867714738717076+17285 151380.816120999223439647330359+17286 151390.573773203536023131285751+17287 151400.331483256458809887841642+17288 151410.089251154645531790575212+17289 151419.847076894750307822197368+17290 151429.604960473427644007383227+17291 151439.362901887332433345618132+17292 151449.12090113311995574405921+17293 151458.878958207445877950412451+17294 151468.637073106966253485825327+17295 151478.395245828337522577794914+17296 151488.153476368216512093091546+17297 151497.911764723260435470697972+17298 151507.670110890126892654764023+17299 151517.428514865473870027576786+17300 151527.186976645959740342546269+17301 151536.945496228243262657206569+17302 151546.70407360898358226623252+17303 151556.462708784840230634471839+17304 151566.221401752473125329992735+17305 151575.980152508542569957147016+17306 151585.738961049709254089648646+17307 151595.497827372634253203667789+17308 151605.256751473979028610940297+17309 151615.015733350405427391892676+17310 151624.774772998575682328782488+17311 151634.533870415152411838854215+17312 151644.293025596798619907510561+17313 151654.0522385401776960214992+17314 151663.811509241953415102114953+17315 151673.570837698789937438417405+17316 151683.330223907351808620463943+17317 151693.089667864303959472558218+17318 151702.849169566311705986514028+17319 151712.608729010040749254934611+17320 151722.368346192157175404507351+17321 151732.128021109327455529313887+17322 151741.887753758218445624155619+17323 151751.647544135497386517894619+17324 151761.407392237831903806809927+17325 151771.167298061890007787969233+17326 151780.927261604340093392615945+17327 151790.687282861850940119571637+17328 151800.447361831091711968653865+17329 151810.207498508731957374109359+17330 151819.967692891441609138062574+17331 151829.727944975890984363979605+17332 151839.488254758750784390147458+17333 151849.24862223669209472316867+17334 151859.009047406386384971471282+17335 151868.769530264505508778834147+17336 151878.530070807721703757927584+17337 151888.29066903270759142386936+17338 151898.051324936136177127796005+17339 151907.812038514680849990449449+17340 151917.572809765015382835778988+17341 151927.33363868381393212455855+17342 151937.094525267751037888019295+17343 151946.855469513501623661497499+17344 151956.616471417740996418097762+17345 151966.377530977144846502371498+17346 151976.138648188389247564010731+17347 151985.899823048150656491557175+17348 151995.661055553105913346126597+17349 152005.422345699932241295148472+17350 152015.183693485307246546120899+17351 152024.945098905908918280380805+17352 152034.706561958415628586889403+17353 152044.468082639506132396032924+17354 152054.229660945859567413438599+17355 152063.991296874155454053805907+17356 152073.752990421073695374753059+17357 152083.51474158329457701067874+17358 152093.276550357498767106639087+17359 152103.038416740367316252239904+17360 152112.800340728581657415544109+17361 152122.562322318823605876994413+17362 152132.32436150777535916335122+17363 152142.086458292119496981645746+17364 152151.848612668538981153148355+17365 152161.610824633717155547352103+17366 152171.373094184337746015971494+17367 152181.13542131708486032695643+17368 152190.897806028642988098521365+17369 152200.660248315697000733189648+17370 152210.422748174932151351853061+17371 152220.185305603034074727846533+17372 152229.947920596688787221038038+17373 152239.710593152582686711933673+17374 152249.473323267402552535797901+17375 152259.236110937835545416788964+17376 152268.998956160569207402109457+17377 152278.761858932291461796172062+17378 152288.524819249690613094780437+17379 152298.287837109455346919325251+17380 152308.050912508274729950995363+17381 152317.814045442838209865004153+17382 152327.577235909835615264830974+17383 152337.340483905957155616477746+17384 152347.103789427893421182740675+17385 152356.867152472335382957497096+17386 152366.630573035974392600007435+17387 152376.394051115502182369232284+17388 152386.157586707610865058164589+17389 152395.921179808992933928176944+17390 152405.684830416341262643383982+17391 152415.44853852634910520501987+17392 152425.212304135710095885830892+17393 152434.976127241118249164483126+17394 152444.740007839267959659985196+17395 152454.503945926854002066126115+17396 152464.267941500571531085928197+17397 152474.031994557116081366115042+17398 152483.796105093183567431594585+17399 152493.560273105470283619957216+17400 152503.324498590672904015988948+17401 152513.088781545488482386199647+17402 152522.853121966614452113366307+17403 152532.617519850748626131091372+17404 152542.381975194589196858376099+17405 152552.14648799483473613420896+17406 152561.911058248184195152169068+17407 152571.675685951336904395044645+17408 152581.440371100992573569466501+17409 152591.205113693851291540556538+17410 152600.969913726613526266591269+17411 152610.734771195980124733680347+17412 152620.499686098652312890460103+17413 152630.264658431331695582802081+17414 152640.029688190720256488536574+17415 152649.794775373520358052191157+17416 152659.559919976434741419744202+17417 152669.325121996166526373393383+17418 152679.090381429419211266339162+17419 152688.855698272896672957583248+17420 152698.621072523303166746742031+17421 152708.386504177343326308874982+17422 152718.151993231722163629328017+17423 152727.917539683145068938591821+17424 152737.683143528317810647175127+17425 152747.448804763946535280492944+17426 152757.214523386737767413769731+17427 152766.980299393398409606957517+17428 152776.746132780635742339668954+17429 152786.512023545157423946125307+17430 152796.277971683671490550119368+17431 152806.043977192886355999993305+17432 152815.810040069510811803631419+17433 152825.576160310254027063467825+17434 152835.342337911825548411509046+17435 152845.108572870935299944371511+17436 152854.874865184293583158333957+17437 152864.641214848611076884404729+17438 152874.407621860598837223403984+17439 152884.17408621696829748106077+17440 152893.940607914431268103125006+17441 152903.707186949699936610494337+17442 152913.473823319486867534355867+17443 152923.240517020505002351342767+17444 152933.007268049467659418705752+17445 152942.774076403088533909499425+17446 152952.540942078081697747783477+17447 152962.30786507116159954383875+17448 152972.074845379043064529398144+17449 152981.841882998441294492892384+17450 152991.608977926071867714710616+17451 153001.376130158650738902475857+17452 153011.143339692894239126335269+17453 153020.91060652551907575426527+17454 153030.677930653242332387391473+17455 153040.44531207278146879532344+17456 153050.212750780854320851504264+17457 153059.980246774179100468574958+17458 153069.747800049474395533753658+17459 153079.515410603459169844229625+17460 153089.283078432852763042572061+17461 153099.050803534374890552153707+17462 153108.818585904745643512589244+17463 153118.58642554068548871518848+17464 153128.354322438915268538424323+17465 153138.122276596156200883415526+17466 153147.890288009129879109424221+17467 153157.658356674558271969368215+17468 153167.426482589163723545348055+17469 153177.194665749668953184188859+17470 153186.962906152797055432996908+17471 153196.731203795271499974730982+17472 153206.49955867381613156378846+17473 153216.267970785155169961606159+17474 153226.036440126013209872275914+17475 153235.804966693115220878174903+17476 153245.573550483186547375610696+17477 153255.342191492952908510481043+17478 153265.110889719140398113948379+17479 153274.879645158475484638129057+17480 153284.648457807685011091797293+17481 153294.417327663496194976103826+17482 153304.186254722636628220309285+17483 153313.955238981834277117532264+17484 153323.724280437817482260512088+17485 153333.493379087314958477386288+17486 153343.262534927055794767482755+17487 153353.03174795376945423712659+17488 153362.801018164185774035461631+17489 153372.570345555034965290286667+17490 153382.339730123047613043906316+17491 153392.109171864954676188996585+17492 153401.878670777487487404485087+17493 153411.648226857377753091445925+17494 153421.417840101357553309009235+17495 153431.18751050615934171028538+17496 153440.957238068515945478303793+17497 153450.72702278516056526196647+17498 153460.496864652826775112016101+17499 153470.266763668248522417018836+17500 153480.03671982816012783936169+17501 153489.806733129296285251264572+17502 153499.576803568392061670806938+17503 153509.34693114218289719796907+17504 153519.117115847404604950687963+17505 153528.887357680793371000927833+17506 153538.657656639085754310765225+17507 153548.42801271901868666848873+17508 153558.198425917329472624713299+17509 153567.968896230755789428509152+17510 153577.739423656035686963545281+17511 153587.510008189907587684247535+17512 153597.280649829110286551971296+17513 153607.051348570382950971188725+17514 153616.822104410465120725690585+17515 153626.59291734609670791480264+17516 153636.363787374017996889616613+17517 153646.134714490969644189235707+17518 153655.905698693692678477034692+17519 153665.676739978928500476934532+17520 153675.447838343418882909691574+17521 153685.218993783905970429201276+17522 153694.990206297132279558816477+17523 153704.761475879840698627680206+17524 153714.532802528774487707073025+17525 153724.304186240677278546774892+17526 153734.075627012293074511441563+17527 153743.847124840366250516995502+17528 153753.618679721641552967031317+17529 153763.390291652864099689235697+17530 153773.161960630779379871821869+17531 153782.933686652133253999978555+17532 153792.70546971367195379233342+17533 153802.477309812142082137431033+17534 153812.249206944290613030225303+17535 153822.021161106864891508586411+17536 153831.793172296612633589822226+17537 153841.565240510281926207214195+17538 153851.337365744621227146567714+17539 153861.109547996379364982776962+17540 153870.881787262305539016404213+17541 153880.6540835391493192102736+17542 153890.426436823660646126079342+17543 153900.198847112589830861008428+17544 153909.971314402687554984377747+17545 153919.743838690704870474285665+17546 153929.516419973393199654278049+17547 153939.289058247504335130028719+17548 153949.061753509790439726034346+17549 153958.834505757004046422323768+17550 153968.607314985898058291181742+17551 153978.380181193225748433887109+17552 153988.153104375740759917465385+17553 153997.926084530197105711455755+17554 154007.699121653349168624692483+17555 154017.472215741951701242100729+17556 154027.245366792759825861506762+17557 154037.018574802529034430462571+17558 154046.791839768015188483084869+17559 154056.565161685974519076908488+17560 154066.338540553163626729754156+17561 154076.111976366339481356610655+17562 154085.885469122259422206531356+17563 154095.659018817681157799545127+17564 154105.432625449362765863581607+17565 154115.206289014062693271410845+17566 154124.9800095085397559775973+17567 154134.753786929553138955468199+17568 154144.527621273862396134096239+17569 154154.301512538227450335296647+17570 154164.075460719408593210638577+17571 154173.849465814166485178470846+17572 154183.623527819262155360962013+17573 154193.39764673145700152115478+17574 154203.171822547512790000034728+17575 154212.94605526419165565361337+17576 154222.720344878256101790025528+17577 154232.494691386469000106641027+17578 154242.269094785593590627190687+17579 154252.043555072393481638906645+17580 154261.818072243632649629676954+17581 154271.592646296075439225214502+17582 154281.367277226486563126240213+17583 154291.141965031631102045680544+17584 154300.916709708274504645879271+17585 154310.691511253182587475823548+17586 154320.466369663121534908384256+17587 154330.24128493485789907757062+17588 154340.0162570651585998157991+17589 154349.791286050790924591176539+17590 154359.566371888522528444797591+17591 154369.34151457512143392805639+17592 154379.11671410735603103997248+17593 154388.891970481995077164531+17594 154398.667283695807697008037107+17595 154408.442653745563382536484644+17596 154418.21808062803199291293905+17597 154427.993564339983754434934496+17598 154437.76910487818926047188526+17599 154447.54470223941947140251132+17600 154457.320356420445714552278175+17601 154467.096067418039684130850879+17602 154476.87183522897344116956229+17603 154486.647659850019413458895535+17604 154496.423541277950395485980667+17605 154506.19947950953954837210554+17606 154515.975474541560399810240869+17607 154525.75152637078684400257949+17608 154535.527634993993141598089805+17609 154545.30380040795391963008342+17610 154555.080022609444171453796957+17611 154564.856301595239256683988047+17612 154574.632637362114901132545494+17613 154584.409029906847196746113614+17614 154594.185479226212601543730734+17615 154603.96198531698793955448185+17616 154613.738548175950400755165456+17617 154623.515167799877541007974507+17618 154633.291844185547281998191546+17619 154643.068577329737911171897973+17620 154652.845367229228081673697449+17621 154662.622213880796812284453448+17622 154672.399117281223487359040929+17623 154682.176077427287856764112154+17624 154691.953094315770035815876614+17625 154701.730167943450505217895088+17626 154711.507298307110110998887815+17627 154721.28448540353006445055678+17628 154731.061729229491942065422109+17629 154740.839029781777685474672567+17630 154750.616387057169601386030164+17631 154760.393801052450361521628851+17632 154770.171271764403002555907311+17633 154779.948799189810926053515843+17634 154789.726383325457898407237327+17635 154799.504024168128050775922271+17636 154809.281721714605879022437939+17637 154819.059475961676243651631547+17638 154828.837286906124369748307531+17639 154838.61515454473584691521888+17640 154848.393078874296629211072531+17641 154858.171059891593035088548822+17642 154867.949097593411747332334993+17643 154877.727191976539812997172742+17644 154887.505343037764643345919829+17645 154897.283550773874013787625711+17646 154907.061815181656063815621223+17647 154916.840136257899296945622292+17648 154926.618513999392580653847676+17649 154936.396948402925146315150731+17650 154946.175439465286589141165202+17651 154955.953987183266868118465027+17652 154965.732591553656305946738155+17653 154975.511252573245588976974381+17654 154985.289970238825767149667175+17655 154995.068744547188253933029521+17656 155004.847575495124826261223755+17657 155014.626463079427624472605384+17658 155024.405407296889152247980914+17659 155034.184408144302276548879646+17660 155043.963465618460227555839466+17661 155053.742579716156598606706608+17662 155063.521750434185346134949389+17663 155073.30097776934078960798592+17664 155083.080261718417611465525775+17665 155092.859602278210857057925631+17666 155102.638999445515934584558859+17667 155112.418453217128615032199073+17668 155122.197963589845032113417628+17669 155131.977530560461682204995064+17670 155141.757154125775424286346493+17671 155151.536834282583479877960923+17672 155161.31657102768343297985452+17673 155171.096364357873230010037798+17674 155180.876214269951179742996733+17675 155190.656120760715953248187802+17676 155200.436083826966583828546947+17677 155210.216103465502466959012441+17678 155219.996179673123360225061675+17679 155229.776312446629383261261847+17680 155239.556501782821017689834557+17681 155249.336747678499107059234298+17682 155259.117050130464856782740844+17683 155268.89740913551983407706553+17684 155278.677824690465967900971415+17685 155288.458296792105548893907334+17686 155298.238825437241229314655825+17687 155308.019410622676022979994935+17688 155317.800052345213305203373892+17689 155327.580750601656812733602653+17690 155337.361505388810643693555305+17691 155347.142316703479257518887339+17692 155356.923184542467474896766766+17693 155366.704108902580477704619096+17694 155376.485089780623808948886155+17695 155386.266127173403372703798761+17696 155396.04722107772543405016322+17697 155405.828371490396619014161676+17698 155415.609578408223914506166287+17699 155425.390841828014668259567223+17700 155435.172161746576588769614502+17701 155444.953538160717745232273633+17702 155454.734971067246567483095085+17703 155464.516460462971845936097566+17704 155474.298006344702731522665111+17705 155484.079608709248735630457974+17706 155493.86126755341973004233732+17707 155503.642982874025946875303722+17708 155513.424754667877978519449438+17709 155523.206582931786777576924494+17710 155532.988467662563656800916534+17711 155542.770408857020289034644471+17712 155552.552406511968707150365899+17713 155562.334460624221303988398288+17714 155572.11657119059083229615395+17715 155581.898738207890404667188766+17716 155591.680961672933493480264675+17717 155601.463241582533930838425929+17718 155611.245577933505908508089093+17719 155621.027970722663977858146803+17720 155630.810419946823049799085266+17721 155640.592925602798394722115505+17722 155650.375487687405642438318341+17723 155660.158106197460782117803114+17724 155669.940781129780162228880133+17725 155679.723512481180490477246848+17726 155689.506300248478833745187759+17727 155699.289144428492618030788027+17728 155709.072045018039628387160817+17729 155718.855002013938008861688343+17730 155728.638015413006262435276622+17731 155738.421085212063250961623938+17732 155748.204211407928195106502997+17733 155757.98739399742067428705679+17734 155767.770632977360626611108134+17735 155777.553928344568348816482918+17736 155787.337280095864496210347018+17737 155797.120688228070082608556907+17738 155806.904152738006480275023932+17739 155816.687673622495419861092267+17740 155826.471250878358990344930539+17741 155836.254884502419638970937116+17742 155846.038574491500171189159056+17743 155855.822320842423750594724716+17744 155865.606123552013898867290015+17745 155875.389982617094495710498347+17746 155885.173898034489778791454138+17747 155894.957869801024343680210047+17748 155904.741897913523143789267809+17749 155914.525982368811490313092704+17750 155924.310123163715052167641669+17751 155934.094320295059855929905025+17752 155943.878573759672285777461836+17753 155953.662883554379083428048884+17754 155963.447249676007348079143258+17755 155973.231672121384536347558558+17756 155983.016150887338462209054707+17757 155992.800685970697296937961359+17758 156002.585277368289569046814924+17759 156012.36992507694416422600917+17760 156022.15462909349032528345943+17761 156031.939389414757652084280399+17762 156041.724206037576101490477502+17763 156051.509078958775987300651861+17764 156061.294008175187980189718828+17765 156071.078993683643107648640093+17766 156080.864035480972753924169365+17767 156090.649133564008659958611613+17768 156100.434287929582923329595881+17769 156110.219498574527998189861643+17770 156120.004765495676695207058728+17771 156129.790088689862181503560792+17772 156139.575468153917980596292328+17773 156149.360903884677972336569232+17774 156159.146395878976392849952897+17775 156168.931944133647834476117852+17776 156178.717548645527245708732922+17777 156188.503209411449931135355927+17778 156198.288926428251551377341894+17779 156208.074699692768123029764798+17780 156217.860529201836018601352815+17781 156227.646414952291966454437087+17782 156237.432356940973050744913997+17783 156247.21835516471671136222095+17784 156257.004409620360743869325651+17785 156266.790520304743299442728889+17786 156276.576687214702884812480801+17787 156286.362910347078362202210639+17788 156296.149189698708949269170015+17789 156305.935525266434219044289631+17790 156315.721917047094099872249487+17791 156325.508365037528875351562564+17792 156335.294869234579184274671974+17793 156345.081429635086020568061583+17794 156354.868046235890733232380096+17795 156364.654719033835026282578594+17796 156374.441448025760958688061538+17797 156384.228233208510944312851217+17798 156394.015074578927751855765645+17799 156403.801972133854504790609907+17800 156413.588925870134681306380937+17801 156423.375935784612114247485745+17802 156433.163001874130991053973063+17803 156442.950124135535853701778431+17804 156452.737302565671598642982703+17805 156462.524537161383476746083979+17806 156472.311827919517093236282945+17807 156482.099174836918407635781644+17808 156491.88657791043373370409564+17809 156501.674037136909739378379598+17810 156511.461552513193446713766267+17811 156521.249124036132231823718858+17812 156531.03675170257382482039682+17813 156540.824435509366309755035008+17814 156550.612175453358124558336233+17815 156560.399971531398060980877209+17816 156570.187823740335264533527864+17817 156579.97573207701923442788404+17818 156589.763696538299823516713559+17819 156599.551717121027238234415661+17820 156609.33979382205203853749381+17821 156619.127926638225137845041849+17822 156628.916115566397802979243534+17823 156638.704360603421654105885398+17824 156648.492661746148664674882985+17825 156658.281018991431161360820421+17826 156668.069432336121824003503326+17827 156677.857901777073685548525073+17828 156687.646427311140131987846375+17829 156697.435008935174902300388205+17830 156707.22364664603208839263805+17831 156717.012340440566135039269479+17832 156726.80109031563183982377504+17833 156736.589896268084353079112466+17834 156746.378758294779177828364206+17835 156756.167676392572169725410246+17836 156765.956650558319536995614255+17837 156775.745680788877840376523024+17838 156785.534767081103993058579197+17839 156795.323909431855260625847308+17840 156805.113107837989260996753101+17841 156814.902362296363964364836139+17842 156824.691672803837693139515695+17843 156834.481039357269121886869925+17844 156844.270461953517277270428312+17845 156854.059940589441537991977386+17846 156863.849475261901634732379711+17847 156873.639065967757650092406137+17848 156883.428712703870018533581307+17849 156893.218415467099526319042435+17850 156903.008174254307311454411318+17851 156912.797989062354863628679616+17852 156922.587859888104024155107366+17853 156932.37778672841698591213474+17854 156942.167769580156293284307049+17855 156951.957808440184842103212972+17856 156961.747903305365879588436019+17857 156971.538054172563004288519228+17858 156981.328261038640166021943075+17859 156991.11852390046166581811661+17860 157000.908842754892155858381812+17861 157010.699217598796639417031148+17862 157020.489648429040470802338348+17863 157030.280135242489355297602385+17864 157040.070678036009349102204649+17865 157049.861276806466859272679331+17866 157059.651931550728643663796988+17867 157069.442642265661810869661306+17868 157079.233408948133820164819053+17869 157089.024231595012481445383203+17870 157098.81511020316595517016925+17871 157108.606044769462752301844697+17872 157118.397035290771734248091707+17873 157128.188081763962112802782936+17874 157137.979184185903450087170521+17875 157147.77034255346565849108823+17876 157157.561556863519000614166774+17877 157167.352827112934089207062268+17878 157177.144153298581887112697843+17879 157186.935535417333707207518404+17880 157196.726973466061212342758533+17881 157206.518467441636415285723527+17882 157216.310017340931678661083571+17883 157226.10162316081971489218105+17884 157235.893284898173586142350975+17885 157245.685002549866704256254548+17886 157255.476776112772830701225839+17887 157265.268605583766076508631579+17888 157275.06049095972090221524407+17889 157284.852432237512117804627202+17890 157294.644429414014882648535581+17891 157304.436482486104705448326749+17892 157314.228591450657444176386511+17893 157324.020756304549306017567355+17894 157333.81297704465684731063996+17895 157343.605253667856973489757796+17896 157353.397586171026939025934806+17897 157363.189974551044347368536162+17898 157372.982418804787150886782112+17899 157382.774918929133650811264885+17900 157392.567474920962497175478672+17901 157402.360086777152688757362675+17902 157412.152754494583573020857211+17903 157421.945478070134846057472882+17904 157431.73825750068655252787279+17905 157441.531092783119085603467816+17906 157451.323983914313186908024932+17907 157461.116930891149946459288568+17908 157470.909933710510802610615015+17909 157480.702992369277541992619861+17910 157490.496106864332299454838464+17911 157500.289277192557558007399455+17912 157510.082503350836148762711263+17913 157519.87578533605125087716166+17914 157529.669123145086391492830337+17915 157539.462516774825445679214472+17916 157549.255966222152636374967336+17917 157559.049471483952534329649879+17918 157568.843032557110058045495345+17919 157578.636649438510473719186866+17920 157588.430322125039395183648067+17921 157598.224050613582783849846657+17922 157608.017834901026948648611009+17923 157617.811674984258545972459728+17924 157627.605570860164579617444204+17925 157637.399522525632400725004131+17926 157647.193529977549707723836018+17927 157656.987593212804546271774656+17928 157666.78171222828530919768756+17929 157676.575887020880736443382376+17930 157686.370117587479915005527244+17931 157696.164403924972278877584116+17932 157705.958746030247608991755038+17933 157715.753143900196033160941365+17934 157725.547597531708026020715937+17935 157735.342106921674408971308187+17936 157745.136672066986350119602194+17937 157754.931292964535364221147663+17938 157764.72596961121331262218385+17939 157774.520702003912403201676396+17940 157784.315490139525190313367105+17941 157794.110334014944574727836627+17942 157803.905233627063803574580063+17943 157813.70018897277647028409549+17944 157823.495200048976514529985385+17945 157833.290266852558222171070962+17946 157843.085389380416225193519408+17947 157852.880567629445501652984022+17948 157862.675801596541375616757245+17949 157872.471091278599517105936586+17950 157882.26643667251594203760343+17951 157892.061837775187012167014737+17952 157901.857294583509435029807621+17953 157911.652807094380263884216802+17954 157921.448375304696897653304935+17955 157931.24399921135708086720581+17956 157941.039678811258903605380418+17957 157950.835414101300801438885879+17958 157960.631205078381555372657228+17959 157970.427051739400291787802064+17960 157980.222954081256482383908042+17961 157990.018912100849944121363218+17962 157999.814925795080839163689244+17963 158009.610995160849674819887395+17964 158019.407120195057303486797441+17965 158029.203300894604922591469351+17966 158038.999537256394074533547829+17967 158048.795829277326646627669675+17968 158058.592176954304871045873973+17969 158068.388580284231324760025096+17970 158078.185039264008929484248532+17971 158087.981553890540951617379516+17972 158097.778124160731002185424477+17973 158107.574750071483036784035292+17974 158117.371431619701355520996338+17975 158127.168168802290602958724343+17976 158136.964961616155768056781036+17977 158146.761810058202184114398587+17978 158156.558714125335528713017833+17979 158166.355673814461823658839291+17980 158176.152689122487434925386951+17981 158185.949760046319072596084847+17982 158195.746886582863790806846401+17983 158205.544068729028987688676538+17984 158215.341306481722405310286569+17985 158225.138599837852129620721834+17986 158234.935948794326590392002106+17987 158244.733353348054561161774756+17988 158254.53081349594515917598066+17989 158264.328329234907845331532868+17990 158274.125900561852424119008006+17991 158283.923527473689043565350431+17992 158293.721209967328195176589116+17993 158303.518948039680713880567272+17994 158313.316741687657777969684707+17995 158323.114590908170909043652906+17996 158332.912495698131971952262836+17997 158342.710456054453174738165476+17998 158352.50847197404706857966506+17999 158362.306543453826547733525035+18000 158372.104670490704849477786732+18001 158381.902853081595554054600737+18002 158391.701091223412584613070973+18003 158401.499384913070207152111473+18004 158411.297734147483030463315858+18005 158421.096138923566006073839502+18006 158430.894599238234428189294386+18007 158440.693115088403933636656639+18008 158450.49168647099050180718676+18009 158460.290313382910454599362521+18010 158470.088995821080456361824539+18011 158479.887733782417513836334529+18012 158489.686527263838976100746211+18013 158499.485376262262534511988898+18014 158509.284280774606222649063729+18015 158519.083240797788416256052571+18016 158528.882256328727833185139569+18017 158538.681327364343533339645345+18018 158548.480453901554918617073852+18019 158558.279635937281732852171858+18020 158568.078873468444061760001086+18021 158577.878166491962332879022972+18022 158587.677515004757315514196076+18023 158597.476919003750120680086101+18024 158607.276378485862201043988556+18025 158617.07589344801535086906403+18026 158626.875463887131705957486088+18027 158636.675089800133743593601785+18028 158646.474771183944282487104787+18029 158656.274508035486482716221103+18030 158666.07430035168384567090742+18031 158675.874148129460213996062043+18032 158685.67405136573977153474843+18033 158695.474010057447043271431318+18034 158705.274024201506895275225445+18035 158715.074093794844534643156861+18036 158724.874218834385509443436811+18037 158734.674399317055708658748217+18038 158744.474635239781362129544717+18039 158754.274926599489040497362291+18040 158764.075273393105655148143454+18041 158773.875675617558458155574009+18042 158783.676133269775042224432372+18043 158793.476646346683340633951451+18044 158803.277214845211627181193079+18045 158813.077838762288516124435008+18046 158822.878518094842962126570441+18047 158832.679252839804260198520118+18048 158842.480042994102045642656938+18049 158852.280888554666293996243128+18050 158862.081789518427320974879934+18051 158871.882745882315782415969855+18052 158881.683757643262674222191403+18053 158891.48482479819933230498638+18054 158901.285947344057432528059687+18055 158911.087125277768990650891645+18056 158920.888358596266362272262826+18057 158930.689647296482242773791406+18058 158940.490991375349667263483014+18059 158950.292390829802010519293094+18060 158960.093845656772986932701758+18061 158969.895355853196650452301145+18062 158979.696921416007394527395269+18063 158989.498542342139952051612356+18064 158999.300218628529395306529667+18065 159009.101950272111135905310814+18066 159018.903737269820924736355537+18067 159028.705579618594851906961977+18068 159038.507477315369346687001408+18069 159048.309430357081177452605443+18070 159058.111438740667451629865707+18071 159067.91350246306561563854597+18072 159077.715621521213454835806742+18073 159087.517795912049093459942319+18074 159097.320025632510994574130285+18075 159107.122310679537960010193461+18076 159116.924651050069130312374297+18077 159126.727046741043984681121712+18078 159136.529497749402340916890366+18079 159146.332004072084355363952369+18080 159156.13456570603052285422142+18081 159165.93718264818167665108938+18082 159175.739854895478988393275258+18083 159185.542582444863968038686632+18084 159195.345365293278463808293475+18085 159205.148203437664662130014404+18086 159214.951096874965087582615337+18087 159224.754045602122602839620554+18088 159234.557049616080408613236165+18089 159244.360108913782043598285982+18090 159254.163223492171384416159781+18091 159263.966393348192645558773962+18092 159273.769618478790379332544598+18093 159283.572898880909475802372872+18094 159293.376234551495162735642892+18095 159303.179625487493005546231899+18096 159312.983071685848907238532832+18097 159322.786573143509108351489286+18098 159332.590129857420186902642824+18099 159342.393741824529058332192667+18100 159352.197409041782975447067736+18101 159362.001131506129528365011067+18102 159371.804909214516644458676564+18103 159381.608742163892588299738122+18104 159391.412630351205961603011092+18105 159401.216573773405703170586086+18106 159411.020572427441088835975134+18107 159420.824626310261731408270178+18108 159430.628735418817580616313894+18109 159440.432899750058923052882855+18110 159450.237119300936382118883021+18111 159460.041394068400917967557548+18112 159469.845724049403827448706928+18113 159479.650109240896744052921441+18114 159489.454549639831637855825925+18115 159499.259045243160815462336857+18116 159509.063596047836919950931743+18117 159518.868202050812930817930812+18118 159528.67286324904216392179101+18119 159538.477579639478271427412296+18120 159548.282351219075241750456233+18121 159558.087177984787399501676864+18122 159567.892059933569405431263882+18123 159577.696997062376256373198082+18124 159587.501989368163285189619096+18125 159597.307036847886160715205406+18126 159607.112139498500887701566625+18127 159616.91729731696380676164806+18128 159626.722510300231594314147534+18129 159636.527778445261262527944476+18130 159646.333101749010159266541269+18131 159656.138480208435968032516859+18132 159665.943913820496707911992618+18133 159675.749402582150733519110453+18134 159685.554946490356734940523169+18135 159695.360545542073737679897071+18136 159705.166199734261102602426807+18137 159714.971909063878525879362452+18138 159724.777673527886038932548823+18139 159734.583493123244008378977023+18140 159744.389367846913135975348215+18141 159754.195297695854458562649621+18142 159764.001282667029348010742735+18143 159773.807322757399511162963759+18144 159783.613417963926989780736254+18145 159793.41956828357416048819599+18146 159803.225773713303734716828021+18147 159813.032034250078758650115946+18148 159822.838349890862613168203379+18149 159832.644720632619013792567618+18150 159842.451146472312010630705501+18151 159852.257627406905988320831456+18152 159862.064163433365665976587736+18153 159871.870754548656097131766839+18154 159881.677400749742669685046109+18155 159891.484102033591105844734507+18156 159901.290858397167462073531567+18157 159911.097669837438129033298509+18158 159920.904536351369831529841529+18159 159930.711457935929628457707248+18160 159940.518434588084912744990317+18161 159950.325466304803411298153189+18162 159960.132553083053184946858033+18163 159969.939694919802628388810803+18164 159979.746891812020470134617458+18165 159989.554143756675772452652316+18166 159999.361450750737931313938553+18167 160009.168812791176676337040839+18168 160018.976229874962070732970106+18169 160028.783701999064511250100447+18170 160038.591229160454728119098137+18171 160048.398811356103784997862784+18172 160058.206448582983078916480594+18173 160068.01414083806434022218976+18174 160077.821888118319632524357949+18175 160087.629690420721352639471921+18176 160097.437547742242230536139232+18177 160107.245460079855329280102059+18178 160117.053427430534044979263108+18179 160126.861449791252106728723636+18180 160136.669527158983576555833548+18181 160146.477659530702849365253601+18182 160156.28584690338465288402968+18183 160166.094089274004047606679168+18184 160175.90238663953642674028939+18185 160185.710738996957516149628134+18186 160195.519146343243374302266249+18187 160205.327608675370392213712307+18188 160215.136125990315293392559337+18189 160224.944698285055133785643621+18190 160234.753325556567301723215546+18191 160244.562007801829517864122518+18192 160254.370745017819835141003928+18193 160264.179537201516638705498165+18194 160273.988384349898645873461679+18195 160283.797286459944906070200085+18196 160293.60624352863480077571131+18197 160303.415255552948043469940775+18198 160313.224322529864679578048609+18199 160323.033444456365086415688898+18200 160332.842621329429973134300953+18201 160342.651853146040380666412611+18202 160352.461139903177681670955548+18203 160362.270481597823580478592615+18204 160372.079878226960113037057184+18205 160381.889329787569646856504504+18206 160391.698836276634880954875068+18207 160401.50839769113884580326998+18208 160411.318014028064903271338325+18209 160421.127685284396746572676534+18210 160430.937411457118400210239743+18211 160440.747192543214219921765145+18212 160450.557028539668892625207327+18213 160460.366919443467436364185591+18214 160470.176865251595200253443258+18215 160479.986865961037864424318948+18216 160489.796921568781439970229831+18217 160499.607032071812268892166856+18218 160509.417197467117024044201939+18219 160519.227417751682709079007125+18220 160529.0376929224966583933857+18221 160538.84802297654653707381527+18222 160548.658407910820340842002791+18223 160558.468847722306396000451547+18224 160568.279342407993359378040082+18225 160578.089891964870218275613072+18226 160587.90049638992629041158414+18227 160597.711155680151223867550609+18228 160607.521869832534997033920188+18229 160617.332638844067918555549595+18230 160627.143462711740627277395099+18231 160636.954341432544092190174997+18232 160646.765275003469612376044005+18233 160656.576263421508816954279571+18234 160666.387306683653665026980105+18235 160676.198404786896445624775113+18236 160686.009557728229777652547249+18237 160695.820765504646609835166269+18238 160705.632028113140220663234884+18239 160715.443345550704218338846513+18240 160725.254717814332540721354938+18241 160735.06614490101945527315584+18242 160744.877626807759559005480235+18243 160754.689163531547778424199788+18244 160764.500755069379369475644012+18245 160774.312401418249917492429351+18246 160784.124102575155337139300127+18247 160793.935858537091872358981376+18248 160803.747669301056096318043538+18249 160813.559534864044911352779025+18250 160823.371455223055548915090644+18251 160833.183430375085569518391885+18252 160842.995460317132862683519059+18253 160852.807545046195646884655303+18254 160862.619684559272469495266414+18255 160872.43187885336220673404855+18256 160882.244127925464063610887764+18257 160892.056431772577573872831376+18258 160901.868790391702599950071193+18259 160911.681203779839332901938549+18260 160921.493671933988292362911188+18261 160931.306194851150326488631967+18262 160941.118772528326611901939384+18263 160950.931404962518653638909929+18264 160960.744092150728285094912249+18265 160970.556834089957667970673134+18266 160980.369630777209292218355306+18267 160990.182482209485975987647021+18268 160999.995388383790865571863475+18269 161009.808349297127435354060009+18270 161019.621364946499487753157115+18271 161029.434435328911153170077239+18272 161039.247560441366889933893366+18273 161049.060740280871484247989405+18274 161058.873974844430050136232356+18275 161068.687264129048029389156252+18276 161078.500608131731191510157889+18277 161088.314006849485633661704329+18278 161098.127460279317780611552172+18279 161107.9409684182343846789786+18280 161117.754531263242525681024187+18281 161127.568148811349610878747472+18282 161137.381821059563374923491291+18283 161147.195548004891879803160862+18284 161157.00932964434351478851363+18285 161166.823165974926996379460856+18286 161176.637056993651368251380957+18287 161186.451002697526001201444583+18288 161196.265003083560593094951443+18289 161206.07905814876516881167886+18290 161215.893167890150080192242066+18291 161225.707332304726005984466223+18292 161235.521551389503951789770175+18293 161245.335825141495250009561921+18294 161255.15015355771155979164581+18295 161264.964536635164866976641458+18296 161274.778974370867484044414371+18297 161284.593466761832050060518288+18298 161294.408013805071530622649226+18299 161304.222615497599217807111236+18300 161314.037271836428730115293853+18301 161323.851982818574012420161252+18302 161333.666748441049335912753095+18303 161343.481568700869298048697071+18304 161353.296443595048822494733127+18305 161363.111373120603159075249382+18306 161372.926357274547883718829727+18307 161382.741396053898898404813098+18308 161392.556489455672431109864437+18309 161402.37163747688503575455731+18310 161412.186840114553592149968209+18311 161422.002097365695305944282517+18312 161431.817409227327708569412128+18313 161441.632775696468657187624739+18314 161451.448196770136334638184796+18315 161461.263672445349249384006085+18316 161471.079202719126235458315988+18317 161480.894787588486452411331376+18318 161490.71042705044938525694615+18319 161500.526121102034844419430425+18320 161510.341869740262965680141349+18321 161520.157672962154210124245556+18322 161529.973530764729364087453256+18323 161539.78944314500953910276395+18324 161549.605410100016171847223769+18325 161559.421431626771024088694436+18326 161569.237507722296182632633852+18327 161579.053638383614059268888289+18328 161588.869823607747390718496203+18329 161598.686063391719238580503653+18330 161608.502357732552989278791328+18331 161618.318706627272354008913174+18332 161628.135110072901368684946628+18333 161637.951568066464393886354438+18334 161647.768080604986114804858088+18335 161657.584647685491541191322806+18336 161667.401269305006007302654162+18337 161677.21794546055517184870625+18338 161687.034676149165017939201451+18339 161696.851461367861853030661776+18340 161706.668301113672308873351776+18341 161716.485195383623341458233036+18342 161726.302144174742230963930224+18343 161736.119147484056581703708719+18344 161745.936205308594322072463785+18345 161755.753317645383704493721323+18346 161765.57048449145330536665016+18347 161775.387705843832025013085903+18348 161785.204981699549087624566341+18349 161795.022312055634041209378387+18350 161804.83969690911675753961657+18351 161814.657136257027432098253063+18352 161824.474630096396584026219251+18353 161834.292178424255056069498831+18354 161844.109781237634014526232442+18355 161853.927438533564949193833822+18356 161863.745150309079673316117493+18357 161873.562916561210323530437967+18358 161883.380737286989359814840461+18359 161893.198612483449565435223141+18360 161903.016542147624046892510867+18361 161912.834526276546233869840452+18362 161922.652564867249879179757422+18363 161932.470657916769058711424287+18364 161942.2888054221381713778403+18365 161952.107007380391939063072721+18366 161961.92526378856540656949957+18367 161971.74357464369394156506387+18368 161981.561939942813234530539379+18369 161991.380359682959298706807802+18370 162001.198833861168470042147488+18371 162011.0173624744774071395336+18372 162020.835945519923091203949761+18373 162030.654582994542825989711174+18374 162040.473274895374237747799205+18375 162050.292021219455275173207434+18376 162060.110821963824209352299166+18377 162069.929677125519633710176404+18378 162079.748586701580463958060273+18379 162089.567550689045938040682901+18380 162099.386569084955616083690742+18381 162109.205641886349380341059358+18382 162119.024769090267435142519629+18383 162128.843950693750306840995413+18384 162138.663186693838843760052641+18385 162148.482477087574216141359844+18386 162158.30182187199791609216011+18387 162168.121221044151757532754473+18388 162177.940674601077876143996719+18389 162187.760182539818729314799622+18390 162197.579744857417096089652591+18391 162207.399361550916077116150737+18392 162217.219032617359094592535348+18393 162227.038758053789892215245776+18394 162236.858537857252535126482728+18395 162246.678372024791409861782962+18396 162256.498260553451224297605378+18397 162266.318203440277007598928512+18398 162276.138200682314110166859416+18399 162285.958252276608203586253935+18400 162295.778358220205280573348367+18401 162305.598518510151654923402509+18402 162315.418733143493961458354084+18403 162325.239002117279155974484544+18404 162335.05932542855451519009625+18405 162344.879703074367636693201022+18406 162354.700135051766438889220061+18407 162364.520621357799160948695231+18408 162374.341161989514362755011711+18409 162384.161756943960924852131996+18410 162393.982406218188048392341266+18411 162403.803109809245255084004101+18412 162413.623867714182387139332545+18413 162423.444679930049607222165523+18414 162433.265546453897398395759599+18415 162443.086467282776564070591071+18416 162452.907442413738227952169412+18417 162462.728471843833833988862038+18418 162472.549555570115146319730411+18419 162482.370693589634249222377475+18420 162492.191885899443547060806407+18421 162502.013132496595764233290698+18422 162511.834433378143945120255556+18423 162521.655788541141454032170614+18424 162531.477197982641975157453967+18425 162541.298661699699512510387501+18426 162551.120179689368389879043546+18427 162560.941751948703250773222823+18428 162570.763378474759058372403692+18429 162580.585059264591095473702704+18430 162590.406794315254964439846445+18431 162600.228583623806587147154665+18432 162610.050427187302204933534709+18433 162619.872325002798378546487221+18434 162629.694277067351988091123137+18435 162639.51628337802023297819196+18436 162649.338343931860631872121302+18437 162659.160458725931022639067709+18438 162668.982627757289562294978751+18439 162678.804851022994726953666382+18440 162688.627128520105311774891563+18441 162698.449460245680430912460144+18442 162708.271846196779517462330008+18443 162718.094286370462323410729469+18444 162727.91678076378891958228692+18445 162737.739329373819695588171731+18446 162747.561932197615359774246395+18447 162757.384589232236939169229914+18448 162767.207300474745779432872425+18449 162777.030065922203544804141066+18450 162786.85288557167221804941707+18451 162796.675759420214100410704098+18452 162806.498687464891811553847789+18453 162816.321669702768289516766544+18454 162826.144706130906790657693526+18455 162835.967796746370889603429884+18456 162845.790941546224479197609183+18457 162855.614140527531770448973055+18458 162865.43739368735729247965806+18459 162875.260701022765892473493743+18460 162885.084062530822735624311909+18461 162894.907478208593305084267083+18462 162904.730948053143401912168182+18463 162914.554472061539145021821369+18464 162924.378050230846971130384105+18465 162934.201682558133634706730388+18466 162944.025369040466207919827175+18467 162953.849109674912080587121991+18468 162963.672904458538960122941709+18469 162973.496753388414871486902514+18470 162983.320656461608157132331037+18471 162993.144613675187476954696657+18472 163002.968625026221808240054973+18473 163012.792690511780445613502438+18474 163022.616810128933000987642155+18475 163032.440983874749403511060833+18476 163042.26521174629989951681689+18477 163052.089493740655052470939718+18478 163061.913829854885742920940091+18479 163071.738220086063168444331719+18480 163081.562664431258843597163949+18481 163091.387162887544599862565596+18482 163101.211715451992585599299927+18483 163111.03632212167526599033076+18484 163120.860982893665422991399708+18485 163130.685697765036155279614546+18486 163140.510466732860878202048702+18487 163150.335289794213323724351867+18488 163160.160166946167540379371732+18489 163169.985098185797893215786832+18490 163179.810083510179063746750508+18491 163189.635122916386049898545979+18492 163199.460216401494165959252513+18493 163209.285363962579042527422715+18494 163219.110565596716626460770902+18495 163228.935821300983180824872587+18496 163238.761131072455284841875049+18497 163248.586494908209833839219+18498 163258.411912805324039198371338+18499 163268.237384760875428303568989+18500 163278.062910771941844490573827+18501 163287.888490835601446995438678+18502 163297.714124948932710903284397+18503 163307.539813109014427097088025+18504 163317.365555312925702206482006+18505 163327.191351557745958556564484+18506 163337.017201840554934116720654+18507 163346.843106158432682449455185+18508 163356.669064508459572659235692+18509 163366.495076887716289341347269+18510 163376.321143293283832530758078+18511 163386.147263722243517650995977+18512 163395.973438171676975463036208+18513 163405.79966663866615201420012+18514 163415.625949120293308587064935+18515 163425.452285613641021648384553+18516 163435.278676115792182798021391+18517 163445.105120623829998717889253+18518 163454.931619134837991120907233+18519 163464.758171645899996699964639+18520 163474.584778154100167076896942+18521 163484.411438656522968751472745+18522 163494.238153150253183050391771+18523 163504.064921632375906076293861+18524 163513.891744099976548656778985+18525 163523.718620550140836293438263+18526 163533.545550979954809110895991+18527 163543.372535386504821805862663+18528 163553.199573766877543596199+18529 163563.026666118159958169990972+18530 163572.853812437439363634635815+18531 163582.681012721803372465939032+18532 163592.508266968339911457222391+18533 163602.3355751741372216684429+18534 163612.162937336283858375322767+18535 163621.990353451868691018490337+18536 163631.817823517980903152632003+18537 163641.645347531709992395655094+18538 163651.472925490145770377861731+18539 163661.300557390378362691133644+18540 163671.12824322949820883812796+18541 163680.955983004596062181483951+18542 163690.783776712762989893040732+18543 163700.611624351090372903065927+18544 163710.439525916669905849495272+18545 163720.267481406593597027183179+18546 163730.095490817953768337164238+18547 163739.923554147843055235925669+18548 163749.751671393354406684690705+18549 163759.579842551581085098712921+18550 163769.408067619616666296581494+18551 163779.236346594555039449537389+18552 163789.064679473490407030800482+18553 163798.893066253517284764907603+18554 163808.7215069317305015770615+18555 163818.55000150522519954249073+18556 163828.378549971096833835820455+18557 163838.207152326441172680454163+18558 163848.03580856835429729796629+18559 163857.86451869393260185750576+18560 163867.693282700272793425210416+18561 163877.522100584471891913632367+18562 163887.350972343627230031174225+18563 163897.179897974836453231536238+18564 163907.008877475197519663174322+18565 163916.837910841808700118768978+18566 163926.666998071768577984705094+18567 163936.496139162176049190562641+18568 163946.325334110130322158618238+18569 163956.154582912730917753357601+18570 163965.983885567077669230998873+18571 163975.813242070270722189026815+18572 163985.642652419410534515737875+18573 163995.47211661159787633979612+18574 164005.301634643933829979800033+18575 164015.131206513519789893860171+18576 164024.960832217457462629187677+18577 164034.790511752848866771693656+18578 164044.620245116796332895599391+18579 164054.450032306402503513057417+18580 164064.279873318770333023783437+18581 164074.109768151003087664699085+18582 164083.939716800204345459585522+18583 164093.769719263477996168747879+18584 164103.599775537928241238690527+18585 164113.429885620659593751803179+18586 164123.26004950877687837605783+18587 164133.090267199385231314716506+18588 164142.920538689590100256049852+18589 164152.75086397649724432306653+18590 164162.58124305721273402325344+18591 164172.411675928842951198326749+18592 164182.242162588494588973993734+18593 164192.072703033274651709725439+18594 164201.903297260290454948540126+18595 164211.733945266649625366797538+18596 164221.564647049460100724003955+18597 164231.395402605830129812628053+18598 164241.226211932868272407927552+18599 164251.057075027683399217786656+18600 164260.887991887384691832564281+18601 164270.718962509081642674953068+18602 164280.549986889884054949849178+18603 164290.381065026902042594232871+18604 164300.212196917246030227059848+18605 164310.043382558026753099163386+18606 164319.874621946355257043167223+18607 164329.705915079342898423409228+18608 164339.537261954101344085875825+18609 164349.368662567742571308147182+18610 164359.200116917378867749353159+18611 164369.031625000122831400140016+18612 164378.863186813087370532647865+18613 164388.694802353385703650498882+18614 164398.526471618131359438796259+18615 164408.358194604438176714133907+18616 164418.189971309420304374616895+18617 164428.021801730192201349892632+18618 164437.85368586386863655119278+18619 164447.685623707564688821385907+18620 164457.517615258395746885040863+18621 164467.34966051347750929850089+18622 164477.181759469925984399968446+18623 164487.013912124857490259600765+18624 164496.846118475388654629616125+18625 164506.678378518636414894410831+18626 164516.51069225171801802068692+18627 164526.343059671751020507590567+18628 164536.175480775853288336861201+18629 164546.007955561142996922991329+18630 164555.840484024738631063397054+18631 164565.673066163758984888599299+18632 164575.50570197532316181241572+18633 164585.338391456550574482163318+18634 164595.171134604560944728871733+18635 164605.003931416474303517507237+18636 164614.836781889410990897207395+18637 164624.669686020491655951526424+18638 164634.502643806837256748691217+18639 164644.335655245569060291868052+18640 164654.168720333808642469439965+18641 164664.001839068677888005294801+18642 164673.835011447298990409123929+18643 164683.668237466794451926731619+18644 164693.501517124287083490355079+18645 164703.334850416900004668995159+18646 164713.168237341756643618757699+18647 164723.001677895980737033205539+18648 164732.835172076696330093721175+18649 164742.668719881027776419880057+18650 164752.502321306099738019834542+18651 164762.33597634903718524070848+18652 164772.169685006965396719002441+18653 164782.003447277009959331009574+18654 164791.837263156296768143242108+18655 164801.671132641952026362868471+18656 164811.505055731102245288161045+18657 164821.339032420874244258954538+18658 164831.173062708395150607114988+18659 164841.007146590792399607019371+18660 164850.841284065193734426045835+18661 164860.675475128727206075074546+18662 164870.509719778521173358999138+18663 164880.344018011704302827248775+18664 164890.178369825405568724320818+18665 164900.012775216754252940324089+18666 164909.847234182879944961532735+18667 164919.681746720912541820950693+18668 164929.516312827982248048886737+18669 164939.350932501219575623540129+18670 164949.185605737755343921596842+18671 164959.02033253472067966883638+18672 164968.855112889247016890749174+18673 164978.689946798466096863164555+18674 164988.524834259509968062889306+18675 164998.359775269510986118356787+18676 165008.194769825601813760286629+18677 165018.029817924915420772354994+18678 165027.864919564585083941875402+18679 165037.70007474174438701049012+18680 165047.535283453527220624872107+18681 165057.370545697067782287437517+18682 165067.205861469500576307068757+18683 165077.04123076796041374984809+18684 165086.87665358958241238980179+18685 165096.712129931501996659654843+18686 165106.547659790854897601596186+18687 165116.383243164777152818054483+18688 165126.218880050405106422484449+18689 165136.054570444875408990163692+18690 165145.890314345325017509000097+18691 165155.726111748891195330349733+18692 165165.561962652711512119845285+18693 165175.397867053923843808235012+18694 165185.233824949666372542232218+18695 165195.069836337077586635375244+18696 165204.905901213296280518897977+18697 165214.742019575461554692610858+18698 165224.578191420712815675792414+18699 165234.414416746189775958091282+18700 165244.250695549032453950438743+18701 165254.087027826381173935971753+18702 165263.923413575376566020966472+18703 165273.759852793159566085782284+18704 165283.596345476871415735816316+18705 165293.432891623653662252468436+18706 165303.26949123064815854411674+18707 165313.106144294997063097103528+18708 165322.942850813842839926731751+18709 165332.77961078432825852827194+18710 165342.61642420359639382797961+18711 165352.453291068790626134123132+18712 165362.29021137705464108802208+18713 165372.127185125532429615096036+18714 165381.964212311368287875923865+18715 165391.801292931706817217313449+18716 165401.638426983692924123381876+18717 165411.475614464471820166646088+18718 165421.312855371189021959123976+18719 165431.150149700990351103445928+18720 165440.987497451021934143976826+18721 165450.824898618430202517948479+18722 165460.662353200361892506602503+18723 165470.499861193964045186343639+18724 165480.337422596384006379903504+18725 165490.175037404769426607514774+18726 165500.012705616268261038095801+18727 165509.850427228028769440445653+18728 165519.688202237199516134449579+18729 165529.526030640929369942294896+18730 165539.363912436367504139697298+18731 165549.201847620663396407137573+18732 165559.03983619096682878110874+18733 165568.877878144427887605373595+18734 165578.715973478196963482232662+18735 165588.554122189424751223802548+18736 165598.39232427526224980330471+18737 165608.230579732860762306364605+18738 165618.068888559371895882321249+18739 165627.907250751947561695547168+18740 165637.745666307739974876778732+18741 165647.584135223901654474456888+18742 165657.422657497585423406078268+18743 165667.26123312594440840955669+18744 165677.09986210613203999459503+18745 165686.938544435302052394067474+18746 165696.777280110608483515412149+18747 165706.616069129205674892034115+18748 165716.454911488248271634718739+18749 165726.29380718489122238305542+18750 165736.132756216289779256871694+18751 165745.971758579599497807677684+18752 165755.810814271976236970120917+18753 165765.649923290576159013451493+18754 165775.489085632555729492997607+18755 165785.328301295071717201651418+18756 165795.167570275281194121365268+18757 165805.006892570341535374658245+18758 165814.84626817741041917613308+18759 165824.685697093645826784003396+18760 165834.525179316206042451631277+18761 165844.36471484224965337907518+18762 165854.204303668935549664648177+18763 165864.043945793422924256486518+18764 165873.883641212871272904128525+18765 165883.723389924440394110103805+18766 165893.563191925290389081532781+18767 165903.403047212581661681736541+18768 165913.242955783474918381857002+18769 165923.082917635131168212487382+18770 165932.922932764711722715312982+18771 165942.763001169378195894762271+18772 165952.603122846292504169668278+18773 165962.443297792616866324940278+18774 165972.283526005513803463245782+18775 165982.123807482146138956702814+18776 165991.964142219676998398582486+18777 166001.80453021526980955502186+18778 166011.644971466088302316747091+18779 166021.485465969296508650806863+18780 166031.326013722058762552316097+18781 166041.166614721539699996209943+18782 166051.007268964904258889008043+18783 166060.847976449317679020589069+18784 166070.68873717194550201597553+18785 166080.529551129953571287128846+18786 166090.370418320508031984754686+18787 166100.211338740775330950118568+18788 166110.052312387922216666871717+18789 166119.893339259115739212887183+18790 166129.734419351523250212106203+18791 166139.575552662312402786394826+18792 166149.416739188651151507410775+18793 166159.257978927707752348480563+18794 166169.099271876650762636486843+18795 166178.940618032649041003766004+18796 166188.782017392871747340016005+18797 166198.623469954488342744214434+18798 166208.46497571466858947654681+18799 166218.306534670582550910345107+18800 166228.148146819400591484036505+18801 166237.989812158293376653102366+18802 166247.831530684431872842047431+18803 166257.673302394987347396379232+18804 166267.515127287131368534597722+18805 166277.357005358035805300195115+18806 166287.198936604872827513665942+18807 166297.040921024814905724527304+18808 166306.882958615034811163349338+18809 166316.725049372705615693795881+18810 166326.567193295000691764675334+18811 166336.40939037909371236200172+18812 166346.251640622158650961065941+18813 166356.093944021369781478517218+18814 166365.936300573901678224454725+18815 166375.778710276929215854529408+18816 166385.621173127627569322055984+18817 166395.46368912317221383013512+18818 166405.306258260738924783785796+18819 166415.14888053750377774208783+18820 166424.991555950643148370334587+18821 166434.834284497333712392195853+18822 166444.677066174752445541890871+18823 166454.519900980076623516371549+18824 166464.36278891048382192751582+18825 166474.205729963151916254331169+18826 166484.048724135259081795168311+18827 166493.891771423983793619945021+18828 166503.734871826504826522380119+18829 166513.578025340001254972237597+18830 166523.421231961652453067580894+18831 166533.264491688638094487037315+18832 166543.107804518138152442072586+18833 166552.951170447332899629275546+18834 166562.794589473402908182652975+18835 166572.638061593529049625934553+18836 166582.48158680489249482488795+18837 166592.325165104674713939644033+18838 166602.168796490057476377032211+18839 166612.012480958222850742925886+18840 166621.856218506353204794598032+18841 166631.700009131631205393086886+18842 166641.543852831239818455571749+18843 166651.387749602362308907758904+18844 166661.231699442182240636277632+18845 166671.075702347883476441086341+18846 166680.91975831665017798788879+18847 166690.76386734566680576056042+18848 166700.608029432118119013584773+18849 166710.452244573189175724500009+18850 166720.29651276606533254635552+18851 166730.140834007932244760178617+18852 166739.985208295975866227451322+18853 166749.829635627382449342597228+18854 166759.674115999338544985478445+18855 166769.518649409031002473902629+18856 166779.363235853646969516140075+18857 166789.207875330373892163450892+18858 166799.052567836399514762622243+18859 166808.897313368911879908515658+18860 166818.742111925099328396624397+18861 166828.586963502150499175640897+18862 166838.431868097254329300034257+18863 166848.276825707600053882637791+18864 166858.121836330377206047246634+18865 166867.966899962775616881225395+18866 166877.812016601985415388125862+18867 166887.657186245197028440314752+18868 166897.502408889601180731611501+18869 166907.3476845323888947299361+18870 166917.193013170751490629966967+18871 166927.03839480188058630580885+18872 166936.883829422968097263670765+18873 166946.729317031206236594553971+18874 166956.574857623787514926949958+18875 166966.420451197904740379548473+18876 166976.266097750751018513955557+18877 166986.111797279519752287421611+18878 166995.957549781404642005579473+18879 167005.803355253599685275192508+18880 167015.64921369329917695691271+18881 167025.495125097697709118048819+18882 167035.341089463990170985344434+18883 167045.187106789371748897766135+18884 167055.033177071037926259301606+18885 167064.879300306184483491767753+18886 167074.72547649200749798762882+18887 167084.571705625703344062824496+18888 167094.417987704468692909608015+18889 167104.264322725500512549394238+18890 167114.110710685996067785617726+18891 167123.957151583152920156600789+18892 167133.803645414168927888431522+18893 167143.650192176242245847851809+18894 167153.496791866571325495155309+18895 167163.343444482354914837095409+18896 167173.190150020792058379803149+18897 167183.036908479082097081715107+18898 167192.883719854424668306511259+18899 167202.730584144019705776062788+18900 167212.57750134506743952338986+18901 167222.424471454768395845629348+18902 167232.271494470323397257012521+18903 167242.118570388933562441852668+18904 167251.965699207800306207542684+18905 167261.812880924125339437562592+18906 167271.660115535110669044497012+18907 167281.507403037958597923062569+18908 167291.354743429871724903145238+18909 167301.202136708052944702847622+18910 167311.049582869705447881546167+18911 167320.897081912032720792958301+18912 167330.744633832238545538219504+18913 167340.5922386275269999189703+18914 167350.439896295102457390453168+18915 167360.287606832169587014619382+18916 167370.135370235933353413245753+18917 167379.983186503599016721061295+18918 167389.831055632372132538883802+18919 167399.678977619458551886766325+18920 167409.526952462064421157153567+18921 167419.374980157396182068048169+18922 167429.223060702660571616186905+18923 167439.071194095064622030226774+18924 167448.919380331815660723940983+18925 167458.767619410121310249424828+18926 167468.615911327189488250311459+18927 167478.464256080228407414997544+18928 167488.3126536664465754298788+18929 167498.161104083052794932595425+18930 167508.0096073272561634652874+18931 167517.858163396266073427859665+18932 167527.706772287292212031257179+18933 167537.555433997544561250749843+18934 167547.404148524233397779227302+18935 167557.252915864569292980503599+18936 167567.101736015763112842631712+18937 167576.950608975026017931227935+18938 167586.799534739569463342806129+18939 167596.648513306605198658121823+18940 167606.497544673345267895526176+18941 167616.346628837002009464329778+18942 167626.195765794788056118176315+18943 167636.044955543916334908426066+18944 167645.894198081600067137549251+18945 167655.743493405052768312529217+18946 167665.592841511488248098275464+18947 167675.442242398120610271046503+18948 167685.291696062164252671882553+18949 167695.141202500833867160048058+18950 167704.990761711344439566484046+18951 167714.840373690911249647270297+18952 167724.690038436749871037097348+18953 167734.53975594607617120274831+18954 167744.389526216106311396590501+18955 167754.2393492440567466100769+18956 167764.089225027144225527257409+18957 167773.939153562585790478299924+18958 167783.789134847598777393021217+18959 167793.639168879400815754427616+18960 167803.489255655209828552265495+18961 167813.339395172244032236581554+18962 167823.189587427721936671292905+18963 167833.039832418862345087766943+18964 167842.890130142884354038411018+18965 167852.740480597007353350271885+18966 167862.590883778451026078644951+18967 167872.441339684435348460693298+18968 167882.29184831218058986907649+18969 167892.142409658907312765589162+18970 167901.993023721836372654809376+18971 167911.843690498188918037756761+18972 167921.694409985186390365560415+18973 167931.545182180050523993136581+18974 167941.396007080003346132876086+18975 167951.246884682267176808341547+18976 167961.097814984064628807974327+18977 167970.948797982618607638811265+18978 167980.799833675152311480211146+18979 167990.650922058889231137590935+18980 168000.502063131053149996171755+18981 168010.353256888868143974734614+18982 168020.204503329558581479385879+18983 168030.055802450349123357332489+18984 168039.907154248464722850666915+18985 168049.758558721130625550161847+18986 168059.610015865572369349074624+18987 168069.461525679015784396961396+18988 168079.313088158686993053501009+18989 168089.164703301812409842328626+18990 168099.016371105618741404879064+18991 168108.868091567332986454239862+18992 168118.719864684182435729014061+18993 168128.571690453394671947192705+18994 168138.423568872197569760037053+18995 168148.275499937819295705970508+18996 168158.127483647488308164480252+18997 168167.979519998433357310028584+18998 168177.831608987883485065973972+18999 168187.683750613068025058501797+19000 168197.535944871216602570564798+19001 168207.388191759559134495833223+19002 168217.240491275325829292654655+19003 168227.092843415747186938023552+19004 168236.945248178053998881560456+19005 168246.797705559477347999500901+19006 168256.650215557248608548693997+19007 168266.502778168599446120610705+19008 168276.355393390761817595361777+19009 168286.208061220967971095725384+19010 168296.060781656450445941184411+19011 168305.913554694442072601973427+19012 168315.766380332175972653135318+19013 168325.619258566885558728587594+19014 168335.47218939580453447519835+19015 168345.325172816166894506871897+19016 168355.178208825206924358644042+19017 168365.031297420159200440787035+19018 168374.884438598258589992924157+19019 168384.737632356740251038153968+19020 168394.590878692839632337184199+19021 168404.44417760379247334247529+19022 168414.297529086834804152393571+19023 168424.150933139202945465374085+19024 168434.004389758133508534093049+19025 168443.857898940863395119649947+19026 168453.711460684629797445759258+19027 168463.56507498667019815295182+19028 168473.418741844222370252785811+19029 168483.272461254524377082067363+19030 168493.126233214814572257080799+19031 168502.980057722331599627828484+19032 168512.833934774314393232280302+19033 168522.687864368002177250632742+19034 168532.541846500634465959577601+19035 168542.395881169451063686580292+19036 168552.249968371692064764167765+19037 168562.104108104597853484226031+19038 168571.958300365409104052307286+19039 168581.812545151366780541946643+19040 168591.666842459712136848988451+19041 168601.521192287686716645922215+19042 168611.375594632532353336228111+19043 168621.230049491491170008732086+19044 168631.084556861805579391970546+19045 168640.939116740718283808564634+19046 168650.79372912547227512960408+19047 168660.648394013310834729040647+19048 168670.503111401477533438091138+19049 168680.357881287216231499649988+19050 168690.212703667771078522711424+19051 168700.067578540386513436801201+19052 168709.922505902307264446417893+19053 168719.777485750778348985483765+19054 168729.632518083045073671805191+19055 168739.487602896353034261542649+19056 168749.342740187948115603690254+19057 168759.197929955076491594564867+19058 168769.053172194984625132304735+19059 168778.9084669049192680713777+19060 168788.76381408212746117709894+19061 168798.619213723856534080158265+19062 168808.474665827354105231156953+19063 168818.33017038986808185515412+19064 168828.185727408646659906222636+19065 168838.041336880938324022014568+19066 168847.896998803991847478336163+19067 168857.752713175056292143732355+19068 168867.608479991381008434080799+19069 168877.464299250215635267195435+19070 168887.320170948810100017439569+19071 168897.17609508441461847034848+19072 168907.032071654279694777261533+19073 168916.888100655656121409963821+19074 168926.744182085794979115337312+19075 168936.600315941947636870021499+19076 168946.456502221365751835083576+19077 168956.312740921301269310698098+19078 168966.169032039006422690836158+19079 168976.025375571733733417964056+19080 168985.881771516736010937751472+19081 168995.738219871266352653789124+19082 169005.594720632578143882315931+19083 169015.451273797925057806955657+19084 169025.30787936456105543346304+19085 169035.16453732974038554447942+19086 169045.021247690717584654297832+19087 169054.878010444747476963637591+19088 169064.734825589085174314428352+19089 169074.591693120986076144603638+19090 169084.448613037705869442903855+19091 169094.305585336500528703688759+19092 169104.162610014626315881759407+19093 169114.019687069339780347189561+19094 169123.876816497897758840166564+19095 169133.733998297557375425841668+19096 169143.591232465576041449189825+19097 169153.448518999211455489878931+19098 169163.305857895721603317148525+19099 169173.163249152364757844697933+19100 169183.020692766399479085583866+19101 169192.878188735084614107127459+19102 169202.735737055679296985830758+19103 169212.593337725442948762302636+19104 169222.450990741635277396194163+19105 169232.308696101516277721143398+19106 169242.166453802346231399729618+19107 169252.024263841385706878436983+19108 169261.882126215895559342627621+19109 169271.74004092313693067152414+19110 169281.598007960371249393201569+19111 169291.456027324860230639588715+19112 169301.314099013865876101478935+19113 169311.172223024650473983550331+19114 169321.030399354476598959395351+19115 169330.88862800060711212655981+19116 169340.746908960305160961591305+19117 169350.605242230834179275097053+19118 169360.463627809457887166811118+19119 169370.322065693440290980671046+19120 169380.180555880045683259903898+19121 169390.039098366538642702121675+19122 169399.897693150184034114426146+19123 169409.756340228247008368523052+19124 169419.615039597993002355845714+19125 169429.473791256687738942688017+19126 169439.332595201597226925346782+19127 169449.191451429987760985273518+19128 169459.050359939125921644235554+19129 169468.909320726278575219486544+19130 169478.768333788712873778946351+19131 169488.627399123696255096390301+19132 169498.486516728496442606647799+19133 169508.345686600381445360810323+19134 169518.204908736619557981448774+19135 169528.064183134479360617840191+19136 169537.923509791229718901203824+19137 169547.782888704139783899946563+19138 169557.642319870478992074917724+19139 169567.501803287517065234673185+19140 169577.361338952524010490748869+19141 169587.220926862770120212943582+19142 169597.080567015525971984611186+19143 169606.940259408062428557962119+19144 169616.800004037650637809374255+19145 169626.659800901562032694713099+19146 169636.519649997068331204661322+19147 169646.379551321441536320057616+19148 169656.239504871953935967244898+19149 169666.099510645878102973427821+19150 169675.959568640486895022039626+19151 169685.819678853053454608118309+19152 169695.679841280851208993692108+19153 169705.540055921153870163174311+19154 169715.400322771235434778767378+19155 169725.260641828370184135876372+19156 169735.12101308983268411853171+19157 169744.981436552897785154821211+19158 169754.841912214840622172331455+19159 169764.702440072936614553598447+19160 169774.563020124461466091567581+19161 169784.423652366691164945062894+19162 169794.284336796901983594265629+19163 169804.145073412370478796202083+19164 169814.005862210373491540240748+19165 169823.866703188188147003598739+19166 169833.727596343091854506857516+19167 169843.588541672362307469487874+19168 169853.449539173277483365384234+19169 169863.310588843115643678408195+19170 169873.171690679155333857941377+19171 169883.032844678675383274447525+19172 169892.894050838954905175043897+19173 169902.755309157273296639081911+19174 169912.616619630910238533737065+19175 169922.477982257145695469608122+19176 169932.339397033259915756325549+19177 169942.200863956533431358169226+19178 169952.062383024247057849695406+19179 169961.923954233681894371372929+19180 169971.785577582119323585228696+19181 169981.647253066841011630502379+19182 169991.508980685128908079310394+19183 170001.370760434265245892319109+19184 170011.232592311532541374427298+19185 170021.094476314213594130457833+19186 170030.956412439591487020858622+19187 170040.818400684949586117412767+19188 170050.680441047571540658957972+19189 170060.542533524741283007115172+19190 170070.404678113743028602026389+19191 170080.266874811861275918101822+19192 170090.12912361638080641977615+19193 170099.991424524586684517274068+19194 170109.853777533764257522385029+19195 170119.716182641199155604247214+19196 170129.578639844177291745140704+19197 170139.441149139984861696289876+19198 170149.303710525908343933674997+19199 170159.166323999234499613853032+19200 170169.028989557250372529787653+19201 170178.891707197243289066688449+19202 170188.75447691650085815785934+19203 170198.617298712310971240556181+19204 170208.480172581961802211853568+19205 170218.343098522741807384520831+19206 170228.206076531939725442907219+19207 170238.069106606844577398836272+19208 170247.93218874474566654750938+19209 170257.795322942932578423418519+19210 170267.658509198695180756268176+19211 170277.521747509323623426906446+19212 170287.385037872108338423265301+19213 170297.248380284340039796310045+19214 170307.111774743309723615997923+19215 170316.975221246308667927245915+19216 170326.838719790628432705907681+19217 170336.702270373560859814759682+19218 170346.565872992398072959496452+19219 170356.429527644432477644735039+19220 170366.293234326956761130028591+19221 170376.156993037263892385889107+19222 170386.020803772647122049819332+19223 170395.884666530399982382353805+19224 170405.748581307816287223109053+19225 170415.612548102190131946842928+19226 170425.476566910815893419523092+19227 170435.340637730988229954404631+19228 170445.204760560002081268116819+19229 170455.068935395152668436759007+19230 170464.933162233735493852005651+19231 170474.797441073046341177220464+19232 170484.661771910381275303579705+19233 170494.526154743036642306204585+19234 170504.3905895683090694003028+19235 170514.255076383495464897319184+19236 170524.119615185893018161095482+19237 170533.984205972799199564039235+19238 170543.848848741511760443301786+19239 170553.713543489328733056965388+19240 170563.578290213548430540239427+19241 170573.443088911469446861665751+19242 170583.307939580390656779333104+19243 170593.172842217611215797100657+19244 170603.037796820430560120830643+19245 170612.902803386148406614630089+19246 170622.76786191206475275710164+19247 170632.632972395479876597603478+19248 170642.498134833694336712518331+19249 170652.363349224008972161531566+19250 170662.228615563724902443918373+19251 170672.093933850143527454840025+19252 170681.95930408056652744164923+19253 170691.824726252295862960204544+19254 170701.690200362633774831193878+19255 170711.555726408882784096467064+19256 170721.421304388345691975377505+19257 170731.28693429832557982113288+19258 170741.152616136125809077154927+19259 170751.018349899050021233448285+19260 170760.884135584402137782978397+19261 170770.749973189486360178058478+19262 170780.615862711607169786745529+19263 170790.481804148069327849245417+19264 170800.347797496177875434327005+19265 170810.213842753238133395745325+19266 170820.079939916555702328673805+19267 170829.946088983436462526145541+19268 170839.812289951186573935503611+19269 170849.678542817112476114860428+19270 170859.544847578520888189566134+19271 170869.411204232718808808686025+19272 170879.277612777013516101487019+19273 170889.144073208712567633933144+19274 170899.010585525123800365190063+19275 170908.877149723555330604138622+19276 170918.74376580131555396589742+19277 170928.610433755713145328354412+19278 170938.477153584057058788707512+19279 170948.343925283656527620014234+19280 170958.210748851821064227750334+19281 170968.077624285860460106377466+19282 170977.944551583084785795919858+19283 170987.811530740804390838549983+19284 170997.678561756329903735183243+19285 171007.545644626972231902081654+19286 171017.412779350042561627466535+19287 171027.279965922852358028140186+19288 171037.147204342713365006116578+19289 171047.014494606937605205261018+19290 171056.881836712837379967938823+19291 171066.749230657725269291672971+19292 171076.616676438914131785810745+19293 171086.484174053717104628199357+19294 171096.35172349944760352187056+19295 171106.219324773419322651734236+19296 171116.086977872946234641280959+19297 171125.95468279534259050929354+19298 171135.822439537922919626567542+19299 171145.690248098002029672640758+19300 171155.558108472895006592531672+19301 171165.426020659917214553486873+19302 171175.29398465638429590173744+19303 171185.162000459612171119264283+19304 171195.030068066917038780572447+19305 171204.898187475615375509474373+19306 171214.766358683023935935882108+19307 171224.634581686459752652608472+19308 171234.502856483240136172177175+19309 171244.371183070682674883641874+19310 171254.239561446105235009414188+19311 171264.107991606825960562100642+19312 171273.97647355016327330134856+19313 171283.845007273435872690700892+19314 171293.713592773962735854459983+19315 171303.582230049063117534560263+19316 171313.450919096056550047449883+19317 171323.319659912262843240981269+19318 171333.188452495002084451310607+19319 171343.057296841594638459806253+19320 171352.926192949361147449966059+19321 171362.795140815622530964343629+19322 171372.664140437699985861483481+19323 171382.53319181291498627286513+19324 171392.402294938589283559856086+19325 171402.271449812044906270673757+19326 171412.140656430604160097356259+19327 171422.00991479158962783274214+19328 171431.879224892324169327459001+19329 171441.748586730130921446921018+19330 171451.618000302333298028335363+19331 171461.487465606254989837717528+19332 171471.356982639219964526915532+19333 171481.226551398552466590643031+19334 171491.096171881577017323521309+19335 171500.965844085618414777130162+19336 171510.835568008001733717067663+19337 171520.705343646052325580018814+19338 171530.575170997095818430833075+19339 171540.445050058458116919610773+19340 171550.314980827465402238798382+19341 171560.184963301444132080292688+19342 171570.054997477721040592553811+19343 171579.925083353623138337727108+19344 171589.795220926477712248773933+19345 171599.665410193612325586611271+19346 171609.535651152354817897260222+19347 171619.40594380003330496900336+19348 171629.276288133976178789550935+19349 171639.14668415151210750321594+19350 171649.017131849970035368098023+19351 171658.887631226679182713276262+19352 171668.758182278969045896010772+19353 171678.628785004169397258953172+19354 171688.499439399610285087365887+19355 171698.370145462622033566350298+19356 171708.240903190535242738083723+19357 171718.111712580680788459065248+19358 171727.982573630389822357370375+19359 171737.85348633699377178991452+19360 171747.724450697824339799725327+19361 171757.59546671021350507322382+19362 171767.466534371493521897514375+19363 171777.337653678996920117683517+19364 171787.208824630056505094107534+19365 171797.080047222005357659768919+19366 171806.951321452176834077581621+19367 171816.822647317904565997725107+19368 171826.694024816522460414987247+19369 171836.565453945364699626115999+19370 171846.436934701765741187179906+19371 171856.308467083060317870937395+19372 171866.180051086583437624214882+19373 171876.051686709670383525293675+19374 171885.923373949656713741305675+19375 171895.795112803878261485637877+19376 171905.666903269671134975345658+19377 171915.538745344371717388574865+19378 171925.410639025316666821992683+19379 171935.282584309842916248227294+19380 171945.154581195287673473316325+19381 171955.02662967898842109416407+19382 171964.898729758282916456007498+19383 171974.770881430509191609891038+19384 171984.643084693005553270150136+19385 171994.515339543110582771903589+19386 172004.387645978163136028554649+19387 172014.260003995502343489300898+19388 172024.132413592467610096652882+19389 172034.004874766398615243961519+19390 172043.87738751463531273295426+19391 172053.749951834517930731280021+19392 172063.622567723386971730062857+19393 172073.495235178583212501464407+19394 172083.367954197447704056255079+19395 172093.240724777321771601393995+19396 172103.113546915547014497617681+19397 172112.986420609465306217037501+19398 172122.859345856418794300745837+19399 172132.732322653749900316431011+19400 172142.605350998801319816000948+19401 172152.47843088891602229321557+19402 172162.351562321437251141327934+19403 172172.224745293708523610734094+19404 172182.097979803073630766631698+19405 172191.971265846876637446687313+19406 172201.844603422461882218712474+19407 172211.717992527173977338348462+19408 172221.591433158357808706759791+19409 172231.464925313358535828336432+19410 172241.338468989521591768404738+19411 172251.212064184192683110947092+19412 172261.085710894717789916330265+19413 172270.959409118443165679042487+19414 172280.83315885271533728543922+19415 172290.706960094881104971497643+19416 172300.580812842287542280579837+19417 172310.454717092281996021204672+19418 172320.328672842212086224828394+19419 172330.202680089425706103633904+19420 172340.076738831271022008328741+19421 172349.950849065096473385951747+19422 172359.825010788250772737688429+19423 172369.699223998082905576695005+19424 172379.573488691942130385931138+19425 172389.447804867177978576001351+19426 172399.322172521140254443005123+19427 172409.196591651179035126395671+19428 172419.071062254644670566847395+19429 172428.94558432888778346413201+19430 172438.820157871259269235003346+19431 172448.694782879110295971090812+19432 172458.569459349792304396801538+19433 172468.444187280657007827231175+19434 172478.318966669056392126083361+19435 172488.193797512342715663597848+19436 172498.068679807868509274487286+19437 172507.943613552986576215882667+19438 172517.818598745049992125287418+19439 172527.693635381412104978540152+19440 172537.568723459426535047786066+19441 172547.443862976447174859456985+19442 172557.319053929828189152260055+19443 172567.194296316924014835175075+19444 172577.069590135089360945460475+19445 172586.94493538167920860666793+19446 172596.820332054048810986665607+19447 172606.695780149553693255670055+19448 172616.571279665549652544286717+19449 172626.446830599392757901559081+19450 172636.322432948439350253026452+19451 172646.198086710046042358790353+19452 172656.073791881569718771589548+19453 172665.949548460367535794883685+19454 172675.825356443796921440945562+19455 172685.701215829215575388962002+19456 172695.577126613981468943143351+19457 172705.453088795452844990841581+19458 172715.329102370988217960677007+19459 172725.205167337946373780673611+19460 172735.081283693686369836402973+19461 172744.957451435567534929136796+19462 172754.83367056094946923400805+19463 172764.709941067192044258180696+19464 172774.586262951655402799028019+19465 172784.462636211699958902319548+19466 172794.339060844686397820416578+19467 172804.215536847975675970476269+19468 172814.092064218929020892664343+19469 172823.968642954907931208376362+19470 172833.845273053274176578467593+19471 172843.721954511389797661491447+19472 172853.598687326617106071946508+19473 172863.475471496318684338532126+19474 172873.352307017857385862412597+19475 172883.229193888596334875489906+19476 172893.106132105898926398685047+19477 172902.983121667128826200227902+19478 172912.8601625696499707539557+19479 172922.737254810826567197620024+19480 172932.614398388023093291202391+19481 172942.491593298604297375238384+19482 172952.368839539935198329150345+19483 172962.246137109381085529588626+19484 172972.123486004307518808781378+19485 172982.000886222080328412892913+19486 172991.878337760065614960390591+19487 173001.755840615629749400420274+19488 173011.633394786139372971190304+19489 173021.511000268961397158364042+19490 173031.38865706146300365346093+19491 173041.266365161011644312266099+19492 173051.144124564975041113248514+19493 173061.021935270721186115987644+19494 173070.899797275618341419608666+19495 173080.777710577035039121226205+19496 173090.655675172340081274396587+19497 173100.533691058902539847578626+19498 173110.411758234091756682602929+19499 173120.289876695277343453149724+19500 173130.168046439829181623235199+19501 173140.046267465117422405706364+19502 173149.924539768512486720744423+19503 173159.802863347385065154376655+19504 173169.681238199106117916996805+19505 173179.559664321046874801893987+19506 173189.438141710578835143790083+19507 173199.316670365073767777385648+19508 173209.195250281903710995914319+19509 173219.073881458440972509705714+19510 173228.952563892058129404756834+19511 173238.831297580128028101311954+19512 173248.710082520023784312451011+19513 173258.588918709118783002686472+19514 173268.467806144786678346568696+19515 173278.346744824401393687299783+19516 173288.225734745337121495355898+19517 173298.104775904968323327118081+19518 173307.983868300669729783511535+19519 173317.863011929816340468653387+19520 173327.742206789783423948508929+19521 173337.621452877946517709556321+19522 173347.500750191681428117459777+19523 173357.380098728364230375751207+19524 173367.259498485371268484520329+19525 173377.138949460079155199113246+19526 173387.018451649864771988839479+19527 173396.898005052105268995687464+19528 173406.777609664178064993048504+19529 173416.657265483460847344449171+19530 173426.53697250733157196229217+19531 173436.416730733168463266605643+19532 173446.296540158350014143800929+19533 173456.176400780254985905438764+19534 173466.056312596262408247003926+19535 173475.936275603751579206688329+19536 173485.816289800102065124182542+19537 173495.696355182693700599475759+19538 173505.576471748906588451664196+19539 173515.456639496121099677767925+19540 173525.336858421717873411556134+19541 173535.217128523077816882380823+19542 173545.097449797582105374018917+19543 173554.977822242612182183522814+19544 173564.858245855549758580079345+19545 173574.738720633776813763877159+19546 173584.61924657467559482498253+19547 173594.499823675628616702223568+19548 173604.380451934018662142082855+19549 173614.261131347228781657598487+19550 173624.141861912642293487273525+19551 173634.022643627642783553993856+19552 173643.903476489614105423954455+19553 173653.784360495940380265594052+19554 173663.665295644005996808538202+19555 173673.546281931195611302550746+19556 173683.42731935489414747649368+19557 173693.308407912486796497295403+19558 173703.189547601359016928927372+19559 173713.070738418896534691389138+19560 173722.951980362485343019701771+19561 173732.833273429511702422909674+19562 173742.714617617362140643090773+19563 173752.596012923423452614375101+19564 173762.477459345082700421971746+19565 173772.358956879727213261204188+19566 173782.240505524744587396554005+19567 173792.122105277522686120712952+19568 173802.003756135449639713643413+19569 173811.885458095913845401647222+19570 173821.767211156303967316442843+19571 173831.649015314008936454250926+19572 173841.530870566417950634888213+19573 173851.412776910920474460869814+19574 173861.294734344906239276519835+19575 173871.176742865765243127090361+19576 173881.058802470887750717888799+19577 173890.940913157664293373413561+19578 173900.823074923485668996498111+19579 173910.705287765742942027463346+19580 173920.587551681827443403278329+19581 173930.469866669130770516729362+19582 173940.352232725044787175597403+19583 173950.234649846961623561843817+19584 173960.117118032273676190804466+19585 173969.999637278373607870392137+19586 173979.882207582654347660307293+19587 173989.76482894250909083125716+19588 173999.647501355331298824183147+19589 174009.53022481851469920949658+19590 174019.412999329453285646322767+19591 174029.295824885541317841753388+19592 174039.178701484173321510107195+19593 174049.061629122744088332199033+19594 174058.944607798648675914617185+19595 174068.827637509282407749009015+19596 174078.710718252040873171374932+19597 174088.593850024319927321370661+19598 174098.47703282351569110161782+19599 174108.360266647024551137022801+19600 174118.243551492243159734103954+19601 174128.126887356568434840327071+19602 174138.010274237397560003449171+19603 174147.893712132127984330870577+19604 174157.777201038157422448995288+19605 174167.660740952883854462599646+19606 174177.54433187370552591420929+19607 174187.427973798020947743484396+19608 174197.311666723228896246613207+19609 174207.195410646728413035713846+19610 174217.079205565918804998244402+19611 174226.963051478199644256421309+19612 174236.846948380970768126645992+19613 174246.730896271632279078939789+19614 174256.614895147584544696387151+19615 174266.498945006228197634587106+19616 174276.383045844964135581112999+19617 174286.267197661193521214980493+19618 174296.151400452317782166123835+19619 174306.035654215738610974880388+19620 174315.919958948857965051483418+19621 174325.804314649078066635563146+19622 174335.688721313801402755656047+19623 174345.573178940430725188722413+19624 174355.457687526369050419672158+19625 174365.342247069019659600898882+19626 174375.226857565786098511822173+19627 174385.111519014072177518438164+19628 174394.99623141128197153287833+19629 174404.880994754819819972976519+19630 174414.765809042090326721844234+19631 174424.650674270498360087454146+19632 174434.535590437449052762231842+19633 174444.420557540347801782655806+19634 174454.305575576600268488865633+19635 174464.190644543612378484278468+19636 174474.075764438790321595213678+19637 174483.96093525954055183052574+19638 174493.846157003269787341245359+19639 174503.7314296673850103802288+19640 174513.616753249293467261815446+19641 174523.502127746402668321493564+19642 174533.387553156120387875574291+19643 174543.273029475854664180873827+19644 174553.158556703013799394403846+19645 174563.044134835006359533070103+19646 174572.929763869241174433379257+19647 174582.815443803127337711153893+19648 174592.701174634074206721255748+19649 174602.586956359491402517317133+19650 174612.472788976788809811480553+19651 174622.358672483376576934146527+19652 174632.244606876665115793729595+19653 174642.13059215406510183642252+19654 174652.016628312987474005968679+19655 174661.902715350843434703442636+19656 174671.788853265044449747038908+19657 174681.675042053002248331868908+19658 174691.561281712128822989766068+19659 174701.447572239836429549099147+19660 174711.333913633537587094593708+19661 174721.220305890645077927161774+19662 174731.106749008571947523739655+19663 174740.993242984731504497133946+19664 174750.879787816537320555875693+19665 174760.766383501403230464082723+19666 174770.653030036743332001330142+19667 174780.539727419971985922528995+19668 174790.426475648503815917813076+19669 174800.313274719753708572433913+19670 174810.200124631136813326663896+19671 174820.087025380068542435707559+19672 174829.973976963964570929621022+19673 174839.860979380240836573239574+19674 174849.74803262631353982611341+19675 174859.635136699599143802451506+19676 174869.522291597514374231073646+19677 174879.409497317476219415370585+19678 174889.296753856901930193272349+19679 174899.18406121320901989722468+19680 174909.071419383815264314173609+19681 174918.958828366138701645558163+19682 174928.846288157597632467311208+19683 174938.733798755610619689868415+19684 174948.621360157596488518185355+19685 174958.50897236097432641176272+19686 174968.396635363163483044679663+19687 174978.284349161583570265635264+19688 174988.172113753654462057998112+19689 174998.059929136796294499864+19690 175007.94779530842946572412174+19691 175017.835712265974635878527086+19692 175027.723680006852727085784773+19693 175037.611698528484923403638658+19694 175047.499767828292670784969968+19695 175057.387887903697677037903659+19696 175067.276058752121911785922865+19697 175077.164280370987606427991463+19698 175087.052552757717254098684718+19699 175096.940875909733609628328038+19700 175106.829249824459689503143818+19701 175116.717674499318771825406374+19702 175126.606149931734396273604966+19703 175136.494676119130364062614917+19704 175146.383253058930737903876807+19705 175156.271880748559841965583756+19706 175166.16055918544226183287679+19707 175176.04928836700284446804828+19708 175185.938068290666698170753468+19709 175195.82689895385919253823006+19710 175205.715780354005958425525896+19711 175215.604712488532887905734691+19712 175225.493695354866134230239844+19713 175235.382728950432111788966318+19714 175245.271813272657496070640579+19715 175255.160948318969223623058605+19716 175265.050134086794492013361948+19717 175274.939370573560759788321864+19718 175284.828657776695746434631495+19719 175294.717995693627432339206103+19720 175304.607384321784058749491366+19721 175314.496823658594127733779712+19722 175324.386313701486402141534717+19723 175334.275854447889905563723537+19724 175344.165445895233922293157389+19725 175354.055088040947997284840079+19726 175363.944780882461936116324565+19727 175373.834524417205804948077558+19728 175383.724318642609930483852167+19729 175393.61416355610489993106857+19730 175403.504059155121560961202724+19731 175413.394005437091021670183099+19732 175423.284002399444650538795447+19733 175433.174050039614076393095593+19734 175443.064148355031188364830255+19735 175452.954297343128135851865876+19736 175462.844497001337328478625492+19737 175472.734747327091436056533605+19738 175482.625048317823388544469077+19739 175492.515399970966376009226038+19740 175502.405802283953848585982811+19741 175512.296255254219516438778834+19742 175522.186758879197349720999607+19743 175532.077313156321578535869633+19744 175541.967918083026692896953366+19745 175551.858573656747442688664161+19746 175561.749279874918837626781231+19747 175571.640036734976147218974589+19748 175581.530844234354900725337993+19749 175591.421702370490887118929892+19750 175601.312611140820155046322348+19751 175611.20357054277901278815796+19752 175621.094580573804028219714775+19753 175630.985641231332028771479177+19754 175640.876752512800101389726768+19755 175650.76791441564559249711123+19756 175660.65912693730610795326116+19757 175670.550390075219513015384889+19758 175680.441703826823932298883278+19759 175690.33306818955774973797048+19760 175700.224483160859608546302683+19761 175710.115948738168411177614814+19762 175720.007464918923319286365221+19763 175729.899031700563753688388308+19764 175739.790649080529394321555142+19765 175749.682317056260180206442024+19766 175759.574035625196309407007009+19767 175769.465804784778238991274397+19768 175779.357624532446684992027167+19769 175789.24949486564262236750737+19770 175799.141415781807284962124481+19771 175809.033387278382165467171684+19772 175818.92540935280901538155012+19773 175828.817482002529844972501073+19774 175838.709605224986923236346099+19775 175848.601779017622777859235102+19776 175858.494003377880195177902342+19777 175868.386278303202220140430388+19778 175878.278603791032156267022+19779 175888.17097983881356561077995+19780 175898.063406443990268718494769+19781 175907.955883604006344591440429+19782 175917.84841131630613064617795+19783 175927.740989578334222675366929+19784 175937.633618387535474808584999+19785 175947.526297741354999473155206+19786 175957.419027637238167354981304+19787 175967.311808072630607359390971+19788 175977.204639044978206571986937+19789 175987.097520551727110219506028+19790 175996.99045259032372163068612+19791 176006.883435158214702197141004+19792 176016.776468252846971334243158+19793 176026.66955187166770644201442+19794 176036.562686012124342866024574+19795 176046.455870671664573858297828+19796 176056.349105847736350538227196+19797 176066.242391537787881853496778+19798 176076.135727739267634541011933+19799 176086.029114449624333087837349+19800 176095.922551666306959692142998+19801 176105.81603938676475422415799+19802 176115.709577608447214187132305+19803 176125.603166328804094678306419+19804 176135.496805545285408349888806+19805 176145.390495255341425370041325+19806 176155.284235456422673383872488+19807 176165.178026145979937474438606+19808 176175.071867321464260123752802+19809 176184.965758980326941173801911+19810 176194.859701120019537787571242+19811 176204.753693737993864410077213+19812 176214.647736831701992729407851+19813 176224.541830398596251637771162+19814 176234.435974436129227192551361+19815 176244.330168941753762577372969+19816 176254.224413912922958063172757+19817 176264.118709347090170969279565+19818 176274.013055241709015624501965+19819 176283.907451594233363328223779+19820 176293.801898402117342311507453+19821 176303.696395662815337698205277+19822 176313.590943373781991466078457+19823 176323.485541532472202407924024+19824 176333.380190136341126092709601+19825 176343.274889182844174826715996+19826 176353.169638669437017614687648+19827 176363.064438593575580120990902+19828 176372.959288952716044630780126+19829 176382.854189744314850011171656+19830 176392.749140965828691672425583+19831 176402.644142614714521529135354+19832 176412.539194688429547961425218+19833 176422.434297184431235776155487+19834 176432.329450100177306168135626+19835 176442.224653433125736681345162+19836 176452.119907180734761170162416+19837 176462.015211340462869760601052+19838 176471.910565909768808811554441+19839 176481.805970886111580876047841+19840 176491.70142626695044466249839+19841 176501.596932049744914995982904+19842 176511.492488231954762779513493+19843 176521.388094811040014955320973+19844 176531.283751784460954466146088+19845 176541.179459149678120216538534+19846 176551.075216904152307034163782+19847 176560.971025045344565631117703+19848 176570.866883570716202565248982+19849 176580.762792477728780201489337+19850 176590.65875176384411667319152+19851 176600.554761426524285843475117+19852 176610.450821463231617266580131+19853 176620.346931871428696149228356+19854 176630.243092648578363311992534+19855 176640.139303792143715150673292+19856 176650.035565299588103597683864+19857 176659.93187716837513608344259+19858 176669.828239395968675497773195+19859 176679.724651979832840151312833+19860 176689.621114917432003736927918+19861 176699.517628206230795291137718+19862 176709.414191843694099155545716+19863 176719.310805827287054938278743+19864 176729.207470154475057475433877+19865 176739.104184822723756792533098+19866 176749.000949829499058065985715+19867 176758.897765172267121584558538+19868 176768.794630848494362710853826+19869 176778.691546855647451842794972+19870 176788.588513191193314375119951+19871 176798.485529852599130660882522+19872 176808.382596837332335972961171+19873 176818.279714142860620465575809+19874 176828.176881766651929135812212+19875 176838.074099706174461785154204+19876 176847.971367958896672981023587+19877 176857.868686522287272018327803+19878 176867.766055393815222881015341+19879 176877.663474570949744203638874+19880 176887.560944051160309232926137+19881 176897.458463831916645789358529+19882 176907.35603391068873622875745+19883 176917.253654284946817403878367+19884 176927.151324952161380626012601+19885 176937.049045909803171626596846+19886 176946.946817155343190518830399+19887 176956.844638686252691759300126+19888 176966.74251050000318410961313+19889 176976.640432594066430598037146+19890 176986.53840496591444848114865+19891 176996.436427613019509205488674+19892 177006.33450053285413836922634+19893 177016.232623722891115683830094+19894 177026.130797180603474935746656+19895 177036.029020903464503948087669+19896 177045.927294888947744542324049+19897 177055.825619134526992499988045+19898 177065.723993637676297524382986+19899 177075.622418395869963202300738+19900 177085.520893406582546965746842+19901 177095.41941866728886005367336+19902 177105.3179941754639674737194+19903 177115.216619928583187963959339+19904 177125.115295924122093954658728+19905 177135.014022159556511530037882+19906 177144.912798632362520390043163+19907 177154.811625340016453812125931+19908 177164.710502279994898613029184+19909 177174.609429449774695110581874+19910 177184.508406846832937085500896+19911 177194.407434468646971743200755+19912 177204.306512312694399675610903+19913 177214.205640376453074823000744+19914 177224.104818657401104435812311+19915 177234.004047153016849036500608+19916 177243.903325860778922381381614+19917 177253.802654778166191422487954+19918 177263.702033902657776269432223+19919 177273.60146323173305015127798+19920 177283.500942762871639378418385+19921 177293.400472493553423304462503+19922 177303.300052421258534288129251+19923 177313.199682543467357655149004+19924 177323.099362857660531660172843+19925 177332.999093361318947448689456+19926 177342.898874051923749018949677+19927 177352.798704926956333183898679+19928 177362.698585983898349533115795+19929 177372.59851722023170039476199+19930 177382.49849863343854079753496+19931 177392.39853022100127843263188+19932 177402.298611980402573615719769+19933 177412.198743909125339248913502+19934 177422.098926004652740782761441+19935 177431.999158264468196178238698+19936 177441.899440686055375868748027+19937 177451.799773266898202722128333+19938 177461.700156004480852002670811+19939 177471.600588896287751333142697+19940 177481.501071939803580656818644+19941 177491.401605132513272199519712+19942 177501.302188471902010431659969+19943 177511.202821955455232030300714+19944 177521.103505580658625841212298+19945 177531.004239344998132840943566+19946 177540.905023245959946098898895+19947 177550.805857281030510739422845+19948 177560.706741447696523903892412+19949 177570.607675743444934712816875+19950 177580.508660165762944227945251+19951 177590.409694712138005414381344+19952 177600.310779380057823102706387+19953 177610.211914167010353951109282+19954 177620.113099070483806407524426+19955 177630.014334087966640671777136+19956 177639.915619216947568657736647+19957 177649.816954454915553955476714+19958 177659.718339799359811793443781+19959 177669.619775247769809000632745+19960 177679.521260797635263968770292+19961 177689.422796446446146614505815+19962 177699.324382191692678341609909+19963 177709.226018030865332003180436+19964 177719.12770396145483186385617+19965 177729.029439980952153562038006+19966 177738.931226086848524072117738+19967 177748.833062276635421666714412+19968 177758.734948547804575878918234+19969 177768.636884897847967464542045+19970 177778.538871324257828364380362+19971 177788.440907824526641666475967+19972 177798.342994396147141568394068+19973 177808.245131036612313339504002+19974 177818.147317743415393283268501+19975 177828.049554514049868699540505+19976 177837.951841346009477846867527+19977 177847.854178236788209904803563+19978 177857.756565183880304936228556+19979 177867.659002184780253849675391+19980 177877.561489236982798361664446+19981 177887.464026337982930959045674+19982 177897.36661348527589486134823+19983 177907.269250676357183983137628+19984 177917.171937908722542896380439+19985 177927.074675179867966792816517+19986 177936.977462487289701446338762+19987 177946.880299828484243175380404+19988 177956.783187200948338805309822+19989 177966.686124602178985630832883+19990 177976.589112029673431378402809+19991 177986.49214948092917416863756+19992 177996.395236953443962478744742+19993 178006.298374444715795104954029+19994 178016.201561952242921124957106+19995 178026.104799473523839860355117+19996 178036.008087006057300839113638+19997 178045.911424547342303758025146+19998 178055.814812094878098445179011+19999 178065.718249646164184822438979
+ tests/tables/generate.py view
@@ -0,0 +1,102 @@+#!/usr/bin/env python3+"""+"""+import itertools+import re+import mpmath+import sys++# We want to require quad precision (it never hurts to have some+# buffer for errors+mpmath.mp.dps = 30++def skip_comments(gen):+ "Skip comments and empty lines"+ for s in gen:+ s = s.strip()+ if not (s == '' or s[0] == '#'):+ yield s++def tokenize_stream(gen):+ "Extremeli ugly code which splits code on separator"+ nm = None+ acc = None+ for s in gen:+ r = re.match(r'^([a-zA-Z]+(, *[a-zA-Z]+)*) *= *', s)+ if r:+ if acc is not None:+ for _ in nm:+ yield(acc)+ nm = r.groups()[0].split(',')+ acc = []+ elif acc is None:+ raise Exception("Invalid format")+ else:+ acc.append(float(s))+ for _ in nm:+ yield(acc)++++def load_inputs(path):+ "Load inputs for function from tsv file"+ with open(path) as f:+ for s in skip_comments(f):+ yield tuple(map(float, s.split()))+++def load_inputs_cartesian(path):+ "Load inputs for several variables where we want to generate all pair"+ with open(path) as f:+ for x in itertools.product(*tokenize_stream(skip_comments(f))):+ yield x++def fmt(f, inputs, out):+ # Here we set up output. We hope that refcounting will collect fds+ # promptly+ if out is None:+ out = sys.stdout+ else:+ out = open(out, 'w')+ for xs in inputs:+ param = ["%.18g" % x for x in xs]+ sOut = mpmath.nstr( f(*xs), mpmath.mp.dps )+ print( '\t'.join( param + [sOut]),+ file=out) +++## ================================================================++fmt( mpmath.erf,+ load_inputs('inputs/erf.dat'),+ 'erf.dat')+fmt( mpmath.erf,+ load_inputs('inputs/erf.dat'),+ 'erf.dat')+fmt( mpmath.erfc,+ load_inputs('inputs/erfc.dat'),+ 'erfc.dat')+fmt( mpmath.erfc,+ load_inputs('inputs/erfc-large.dat'),+ 'erfc-large.dat')+fmt( mpmath.loggamma,+ load_inputs('inputs/loggamma.dat'),+ 'loggamma.dat')+fmt( mpmath.digamma,+ load_inputs('inputs/digamma.dat'),+ 'digamma.dat')+fmt( mpmath.expm1,+ load_inputs('inputs/expm1.dat'),+ 'expm1.dat')+fmt( mpmath.log1p,+ load_inputs('inputs/log1p.dat'),+ 'log1p.dat')+fmt( lambda x: mpmath.log(mpmath.factorial(x)),+ map(lambda x: (x,), range(0, 20000)),+ 'factorial.dat')+fmt( lambda a, x: mpmath.gammainc(z=a, a=0, b=x, regularized=True),+ load_inputs_cartesian('inputs/igamma.dat'),+ 'igamma.dat')+fmt( lambda p, q: mpmath.log(mpmath.beta(p,q)),+ load_inputs_cartesian('inputs/logbeta.dat'),+ 'logbeta.dat')
+ tests/tables/igamma.dat view
@@ -0,0 +1,180 @@+0.000100000000000000005 9.99999999999999955e-07 0.998677038073159095961395592937+0.000100000000000000005 1.00000000000000008e-05 0.998907017536745023882308685182+0.000100000000000000005 0.00100000000000000002 0.99936703825416550859567037094+0.000100000000000000005 0.0100000000000000002 0.999596280434128887942384540059+0.000100000000000000005 0.100000000000000006 0.999817716935473516734296177546+0.000100000000000000005 1 0.999978059361861853366809113793+0.000100000000000000005 10 0.999999999584179852012789127241+0.000100000000000000005 100 1.0+0.000100000000000000005 1000 1.0+0.000100000000000000005 3301 1.0+0.00100000000000000002 9.99999999999999955e-07 0.986848133694076665339510700432+0.00100000000000000002 1.00000000000000008e-05 0.989123044695782668850940465364+0.00100000000000000002 0.00100000000000000002 0.993687646708860290096219637037+0.00100000000000000002 0.0100000000000000002 0.995969403033513155770944661152+0.00100000000000000002 0.100000000000000006 0.998178009737950275679802671096+0.00100000000000000002 1 0.999780391642414443603710710493+0.00100000000000000002 10 0.999999995830692182809738396874+0.00100000000000000002 100 1.0+0.00100000000000000002 1000 1.0+0.00100000000000000002 3301 1.0+0.0100000000000000002 9.99999999999999955e-07 0.875933759832353305070970748339+0.0100000000000000002 1.00000000000000008e-05 0.896336798267197200971193210546+0.0100000000000000002 0.00100000000000000002 0.938570652526128985382985766694+0.0100000000000000002 0.0100000000000000002 0.96034742352150919771436640649+0.0100000000000000002 0.100000000000000006 0.981864683949012656049337973119+0.0100000000000000002 1 0.997783765376772009656873315569+0.0100000000000000002 10 0.99999995718295022590061122615+0.0100000000000000002 100 1.0+0.0100000000000000002 1000 1.0+0.0100000000000000002 3301 1.0+0.100000000000000006 9.99999999999999955e-07 0.264033654327922324857187514752+0.100000000000000006 1.00000000000000008e-05 0.332398405040503295401903974218+0.100000000000000006 0.00100000000000000002 0.526768568392445111817869842601+0.100000000000000006 0.0100000000000000002 0.662621259954479791719163509349+0.100000000000000006 0.100000000000000006 0.827551759585850536640325217217+0.100000000000000006 1 0.975872656273672221159491552528+0.100000000000000006 10 0.999999445201428209809392042838+0.100000000000000006 100 1.0+0.100000000000000006 1000 1.0+0.100000000000000006 3301 1.0+0.200000000000000011 9.99999999999999955e-07 0.0687190937987684780583487585964+0.200000000000000011 1.00000000000000008e-05 0.108912260585591831357806184556+0.200000000000000011 0.00100000000000000002 0.273530102033034019134013607911+0.200000000000000011 0.0100000000000000002 0.432867560926525011649024101477+0.200000000000000011 0.100000000000000006 0.676043203815343235247645659238+0.200000000000000011 1 0.94761956872092219049498771916+0.200000000000000011 10 0.999998540143010797930830697127+0.200000000000000011 100 1.0+0.200000000000000011 1000 1.0+0.200000000000000011 3301 1.0+0.299999999999999989 9.99999999999999955e-07 0.0176595495901936665671778397068+0.299999999999999989 1.00000000000000008e-05 0.0352353606155625769158079986437+0.299999999999999989 0.00100000000000000002 0.140242458924867370902963425856+0.299999999999999989 0.0100000000000000002 0.279240996359014861043662850848+0.299999999999999989 0.100000000000000006 0.545912849591796504879621643764+0.299999999999999989 1 0.915674156241108765935255658365+0.299999999999999989 10 0.99999715515533278951644372428+0.299999999999999989 100 1.0+0.299999999999999989 1000 1.0+0.299999999999999989 3301 1.0+0.400000000000000022 9.99999999999999955e-07 0.00448690737698480048018769908146+0.400000000000000022 1.00000000000000008e-05 0.0112705727782256817005130809278+0.400000000000000022 0.00100000000000000002 0.0710923978953330760218610475958+0.400000000000000022 0.0100000000000000002 0.1781181731349402872996196694+0.400000000000000022 0.100000000000000006 0.436236405292472911042922275296+0.400000000000000022 1 0.880526105085710353628636433962+0.400000000000000022 10 0.999995127544578487259167603836+0.400000000000000022 100 1.0+0.400000000000000022 1000 1.0+0.400000000000000022 3301 1.0+0.5 9.99999999999999955e-07 0.00112837879096923635441785924383+0.5 1.00000000000000008e-05 0.00356823633818045042058077366094+0.5 0.00100000000000000002 0.0356705917296798854171108747554+0.5 0.0100000000000000002 0.112462916018284893366044542857+0.5 0.100000000000000006 0.345279153981422979558163796893+0.5 1 0.842700792949714869341220635083+0.5 10 0.999992255783568955916362323619+0.5 100 1.0+0.5 1000 1.0+0.5 3301 1.0+0.599999999999999978 9.99999999999999955e-07 0.000281123932739927969642852394278+0.599999999999999978 1.00000000000000008e-05 0.00111917075717695837092315556803+0.599999999999999978 0.00100000000000000002 0.0177310780570833845378940622156+0.599999999999999978 0.0100000000000000002 0.0703511716641694562971278987802+0.599999999999999978 0.100000000000000006 0.27089860192931033562779340509+0.599999999999999978 1 0.802740472915040929411662127818+0.599999999999999978 10 0.999988293084421631090774556099+0.599999999999999978 100 1.0+0.599999999999999978 1000 1.0+0.599999999999999978 3301 1.0+2 9.99999999999999955e-07 4.9999966666679162138149041803e-13+2 1.00000000000000008e-05 4.99996666679166715135638665241e-11+2 0.00100000000000000002 0.000000499666791633340297383350611252+2 0.0100000000000000002 0.000049667913340265892415918274953+2 0.100000000000000006 0.00467884016044447002161170213187+2 1 0.264241117657115356808952459677+2 10 0.999500600772612666633108493329+2 100 1.0+2 1000 1.0+2 3301 1.0+3 9.99999999999999955e-07 1.6666654166671664402685631963e-19+3 1.00000000000000008e-05 1.66665416671666693678925483422e-16+3 0.00100000000000000002 1.66541716652780763845435502936e-10+3 0.0100000000000000002 0.000000165421652807487686572525438025+3 0.100000000000000006 0.000154653070264671678619072687835+3 1 0.0803013970713941960111905745964+3 10 0.997230604284488424056328917551+3 100 1.0+3 1000 1.0+3 3301 1.0+6 9.99999999999999955e-07 1.38888769841321886877873406008e-39+6 1.00000000000000008e-05 1.38887698417906798768211894792e-33+6 0.00100000000000000002 1.38769893337745993330072800382e-21+6 0.0100000000000000002 1.37703605634306470721227911913e-15+6 0.100000000000000006 0.00000000127489869222979188498133341591+6 1 0.000594184817581692998827091061365+6 10 0.932914037120968217714240937173+6 100 1.0+6 1000 1.0+6 3301 1.0+12 9.99999999999999955e-07 2.08767377170244306355144979982e-81+12 1.00000000000000008e-05 2.08765642802367929860815380041e-69+12 0.00100000000000000002 2.08574950796625691581696824468e-45+12 0.0100000000000000002 2.06849404029269947208812650771e-33+12 0.100000000000000006 1.90364240064062767847395955076e-21+12 1 8.31610742688233390952391737168e-10+12 10 0.30322385369689331180582927404+12 100 0.99999999999999999999999999999+12 1000 1.0+12 3301 1.0+18 9.99999999999999955e-07 1.56191921714497984569652172566e-124+18 1.00000000000000008e-05 1.56190589978546723049068336087e-106+18 0.00100000000000000002 1.56044168515546614690893456571e-70+18 0.0100000000000000002 1.5471936172459858931960924774e-52+18 0.100000000000000006 1.42075999849733529123506295102e-34+18 1 6.06428067721557331946176715382e-17+18 10 0.0142776135970496129089830965836+18 100 0.999999999999999999999998742916+18 1000 1.0+18 3301 1.0+101 9.99999999999999955e-07 1.06090022487198225461869933883e-766+101 1.00000000000000008e-05 1.06089077042094832542309156458e-665+101 0.00100000000000000002 1.05985129506822713235416044578e-463+101 0.0100000000000000002 1.05044811631749169413217529395e-362+101 0.100000000000000006 9.60885206142996276573449906708e-262+101 1 3.94147589063752014615062291541e-161+101 10 5.33940546071971052337450543217e-64+101 100 0.473437801470001529623393607105+101 1000 1.0+101 3301 1.0+201 9.99999999999999955e-07 6.30833677503352627325382205745e-1584+201 1.00000000000000008e-05 6.30828028132019299365575041933e-1383+201 0.00100000000000000002 6.30206906057329746426353105998e-981+201 0.0100000000000000002 6.24588319207081699412164871293e-780+201 0.100000000000000006 5.71085198693835010992991011704e-579+201 1 2.33225525188187904433135775933e-378+201 10 3.01310889066541622340100430602e-181+201 100 4.62617947019577288096442044516e-19+201 1000 1.0+201 3301 1.0+1000 9.99999999999999955e-07 2.4851656605824546988202041697e-8568+1000 1.00000000000000008e-05 2.48514331653642003877116895294e-7568+1000 0.00100000000000000002 2.48268669750003876617472467308e-5568+1000 0.0100000000000000002 2.46046488714861784228553201292e-4568+1000 0.100000000000000006 2.24889779123046964018322233315e-3568+1000 1 9.15156509116491575720545785542e-2569+1000 10 1.13964958763725134069338684487e-1572+1000 100 1.0270971815582277877665615585e-611+1000 1000 0.504205244180215508503777843602+1000 3301 1.0+3003 9.99999999999999955e-07 8.90812855529069811196158732723e-27160+3003 1.00000000000000008e-05 8.90804840918643793907789460332e-24157+3003 0.00100000000000000002 8.89923673804629728415411068459e-18151+3003 0.0100000000000000002 8.81952937102869844156580901528e-15148+3003 0.100000000000000006 8.0606844309353722733298755906e-12145+3003 1 3.27821191297260784144201433956e-9142+3003 10 4.05779611158376897690039719814e-6143+3003 100 3.42800829838332693574242322961e-3179+3003 1000 6.77752709164469153719156665409e-567+3003 3301 0.999999933219976432069280011406
+ tests/tables/inputs/digamma.dat view
@@ -0,0 +1,100 @@+0.1972018552655726+0.2766365979680845+0.3352840110772935+0.5241560861477529+0.8108729056729371+0.8289440927562556+0.9070101446062873+0.9385094944630431+0.9498749870396368+1.0704026637921555+1.1608524325026863+1.1815938184339669+1.2328105814385013+1.2786090750546355+1.4222181352589696+1.4654265058258678+1.5107587188614726+1.7232417075599473+1.8741725410778542+1.9482800424522431+2.0717397641759350+2.1964374279534344+2.2041235084734976+2.2101710538553756+2.2914619096171260+2.4073661551765566+2.4921048837305193+2.5037441860153118+2.7573211981404855+2.8590898311999715+2.9310065630306474+3.1362387322050900+3.2500957742991048+3.3467578222470555+3.3716588961200955+3.3932538441985769+3.4369121607821915+3.4679213262860156+3.4716258279958572+3.6989463639934752+3.7348491113356177+3.8933394033155189+4.0502102843199079+4.1320729121597584+4.1956416643620571+4.4741465342999014+5.3213868642873896+5.5020466797149687+5.6622605630542511+5.8655552400886410+5.9700184459319399+6.4894496431749733+6.5709053027851487+7.2023118361897769+7.3600347508772019+7.3868205159465790+7.5321882978878660+7.9098387372709587+8.6720493874148570+9.1173553049782452+9.2578640399661225+9.3081256750537182+9.4381079039564071+9.9662376350778192+10.0261172557341425+10.6478950333943825+10.6498308581562604+10.6750266252851169+10.6883248506773985+10.6908820268137070+10.7410508007627694+10.9702870318273966+11.2357450115053670+11.4168205413938768+12.2373583939228876+13.1568457441413429+13.6688064138713390+14.0357118427322334+14.1730624058772161+14.3373372205836365+14.9455957898231535+15.4401781010745509+16.3105956379859052+16.7950471612825254+17.1377048621110468+18.8934063317711676+19.7457045917841398+20.3998669454332315+20.4905634096258815+20.5303177686997920+21.4416006516504787+21.8943170241258827+24.1273989930028883+24.7013029455164919+27.9448247140513644+28.5703089405901878+29.5024809785193902+30.4956621109554185+32.2002179941400826+47.6946291432301663
+ tests/tables/inputs/erf.dat view
@@ -0,0 +1,68 @@+-3.000000+-2.500000+-2.400000+-2.300000+-2.200000+-2.100000+-2.000000+-1.900000+-1.800000+-1.700000+-1.600000+-1.500000+-1.400000+-1.300000+-1.200000+-1.100000+-1.000000+-0.900000+-0.800000+-0.700000+-0.600000+-0.500000+-0.400000+-0.300000+-0.200000+-0.100000+-0.080000+-0.060000+-0.040000+-0.020000+0.000000+1e-9+1e-8+1e-7+1e-6+1e-5+1e-4+1e-3+0.020000+0.040000+0.060000+0.080000+0.100000+0.200000+0.300000+0.400000+0.500000+0.600000+0.700000+0.800000+0.900000+1.000000+1.100000+1.200000+1.300000+1.400000+1.500000+1.600000+1.700000+1.800000+1.900000+2.000000+2.100000+2.200000+2.300000+2.400000+2.500000+3.000000
+ tests/tables/inputs/erfc-large.dat view
@@ -0,0 +1,9 @@+2.100000+2.200000+2.300000+2.400000+2.500000+3.000000+3.500000+11.000000+23.000000
+ tests/tables/inputs/erfc.dat view
@@ -0,0 +1,56 @@+-3.000000+-2.500000+-2.400000+-2.300000+-2.200000+-2.100000+-2.000000+-1.900000+-1.800000+-1.700000+-1.600000+-1.500000+-1.400000+-1.300000+-1.200000+-1.100000+-1.000000+-0.900000+-0.800000+-0.700000+-0.600000+-0.500000+-0.400000+-0.300000+-0.200000+-0.100000+-0.080000+-0.060000+-0.040000+-0.020000+0.000000+0.020000+0.040000+0.060000+0.080000+0.100000+0.200000+0.300000+0.400000+0.500000+0.600000+0.700000+0.800000+0.900000+1.000000+1.100000+1.200000+1.300000+1.400000+1.500000+1.600000+1.700000+1.800000+1.900000+2.000000+2.0009765625
+ tests/tables/inputs/expm1.dat view
@@ -0,0 +1,13 @@+-1e-1+-1e-2+-1e-3+-1e-4+-1e-5+-1e-6+0+1e-6+1e-5+1e-4+1e-3+1e-2+1e-1
+ tests/tables/inputs/igamma.dat view
@@ -0,0 +1,31 @@+a =+1e-4+1e-3+0.01+0.1+0.2+0.3+0.4+0.5+0.6+2+3+6+12+18+101+201+1000+3003++x =+1e-6+1e-5+1e-3+1e-2+1e-1+1+10+100+1000+3301
+ tests/tables/inputs/log1p.dat view
@@ -0,0 +1,13 @@+-1e-1+-1e-2+-1e-3+-1e-4+-1e-5+-1e-6+0+1e-6+1e-5+1e-4+1e-3+1e-2+1e-1
+ tests/tables/inputs/logbeta.dat view
@@ -0,0 +1,29 @@+p,q =+0.1+0.2+0.30000000000000004+0.4+0.5+0.6+0.7000000000000001+0.8+0.9+2.0+3.0+4.0+5.0+6.0+7.0+8.0+9.0+10.0+11.0+12.0+13.0+14.0+15.0+16.0+17.0+18.0+19.0+20.0
+ tests/tables/inputs/loggamma.dat view
@@ -0,0 +1,43 @@+ 0.000001250000000+ 0.000068200000000+ 0.000246000000000+ 0.000880000000000+ 0.003120000000000+ 0.026700000000000+ 0.077700000000000+ 0.234000000000000+ 0.860000000000000+ 1.340000000000000+ 1.890000000000000+ 2.450000000000000+ 3+ 3.650000000000000+ 4+ 4.560000000000000+ 5+ 6+ 6.660000000000000+ 7+ 8+ 8.250000000000000+ 10+ 11.300000000000001+ 25.600000000000001+ 33+ 50.399999999999999+ 77+ 123.299999999999997+ 222+ 487.399999999999977+ 555+ 853.399999999999977+ 888+ 2923.300000000000182+ 3333+ 8764.299999999999272+ 12630.000000000000000+ 34500.000000000000000+ 82340.000000000000000+ 234800.000000000000000+ 834300.000000000000000+1230000.000000000000000
+ tests/tables/log1p.dat view
@@ -0,0 +1,13 @@+-0.100000000000000006 -0.105360515657826307395406673201+-0.0100000000000000002 -0.0100503358535014413938183697982+-0.00100000000000000002 -0.00100050033358353352098050148502+-0.000100000000000000005 -0.00010000500033335834012615288196+-1.00000000000000008e-05 -0.0000100000500003333366513920530275+-9.99999999999999955e-07 -0.00000100000050000033328833140010729+0 0.0+9.99999999999999955e-07 0.000000999999500000333287831490611062+1.00000000000000008e-05 0.00000999995000033333165137569208339+0.000100000000000000005 0.0000999950003333083401248611138938+0.00100000000000000002 0.000999500333083533187605284746431+0.0100000000000000002 0.00995033085316808305432111706626+0.100000000000000006 0.0953101798043248650904204170315
+ tests/tables/logbeta.dat view
@@ -0,0 +1,784 @@+0.100000000000000006 0.100000000000000006 2.98136148103762733785155813344+0.100000000000000006 0.200000000000000011 2.68097847934691490481873313178+0.100000000000000006 0.300000000000000044 2.5518328288504976295622130394+0.100000000000000006 0.400000000000000022 2.47702552651128957910344931655+0.100000000000000006 0.5 2.42684373658967109801325202939+0.100000000000000006 0.599999999999999978 2.39007926327177430112850463066+0.100000000000000006 0.700000000000000067 2.36152021986603481598314080924+0.100000000000000006 0.800000000000000044 2.33839609039930051445700230897+0.100000000000000006 0.900000000000000022 2.31908889146894887245316209564+0.100000000000000006 2 2.20727491318972076341641980639+0.100000000000000006 3 2.1584847490202887577076572483+0.100000000000000006 4 2.12569492619729788540104731758+0.100000000000000006 5 2.10100231360692638303280912431+0.100000000000000006 6 2.08119968631074666891832611172+0.100000000000000006 7 2.06467038435953610408738694871+0.100000000000000006 8 2.05048574936757967109942941389+0.100000000000000006 9 2.03806322936902251710281343055+0.100000000000000006 10 2.02701339318243754214244252318+0.100000000000000006 11 2.01706306232926945874461180691+0.100000000000000006 12 2.00801322680935155056110547006+0.100000000000000006 13 1.99971442399465645622614940377+0.100000000000000006 14 1.99205155124908733172445504281+0.100000000000000006 15 1.98493408348022335165513934767+0.100000000000000006 16 1.97828954076155477250527555493+0.100000000000000006 17 1.972058991010918697935300161+0.100000000000000006 18 1.96619387155852061907868171244+0.100000000000000006 19 1.96065369118290524815861728052+0.100000000000000006 20 1.95540433529676151904505191525+0.200000000000000011 0.100000000000000006 2.68097847934691490481873313178+0.200000000000000011 0.200000000000000011 2.25144982715978522265126152466+0.200000000000000011 0.300000000000000044 2.04749687432415985421975281385+0.200000000000000011 0.400000000000000022 1.92250778206333332752756529932+0.200000000000000011 0.5 1.83556151882381805239188143801+0.200000000000000011 0.599999999999999978 1.77023800210018180049435057017+0.200000000000000011 0.700000000000000067 1.71855482922770798675764878536+0.200000000000000011 0.800000000000000044 1.67612350083062204412612726133+0.200000000000000011 0.900000000000000022 1.640312503425367158849053443+0.200000000000000011 2 1.42711635564014568362603153827+0.200000000000000011 3 1.33180617583582081853561112124+0.200000000000000011 4 1.2672676546982496433932402536+0.200000000000000011 5 1.21847749052881763768447769551+0.200000000000000011 6 1.17925677737553633928023252081+0.200000000000000011 7 1.14646695455254546697362259009+0.200000000000000011 8 1.11829607758584914351280352691+0.200000000000000011 9 1.09360346499547764114456533364+0.200000000000000011 10 1.07162455827670239710506603024+0.200000000000000011 11 1.05182193098052268299058301765+0.200000000000000011 12 1.03380342547784436730496626332+0.200000000000000011 13 1.01727412352663380247402710031+0.200000000000000011 14 1.0020066513958453674127748898+0.200000000000000011 15 0.987822016403888934424817354976+0.200000000000000011 16 0.974576789653868295447679698924+0.200000000000000011 17 0.962154269655311141451063715586+0.200000000000000011 18 0.950458229892119862765804529193+0.200000000000000011 19 0.93940839370553488780543362182+0.200000000000000011 20 0.928937093838239483355573384062+0.300000000000000044 0.100000000000000006 2.5518328288504976295622130394+0.300000000000000044 0.200000000000000011 2.04749687432415985421975281385+0.300000000000000044 0.300000000000000044 1.79336213156691596948531307636+0.300000000000000044 0.400000000000000022 1.63160856598819264268858272367+0.300000000000000044 0.5 1.51610325934293790728225697271+0.300000000000000044 0.599999999999999978 1.42765561315256734553334829486+0.300000000000000044 0.700000000000000067 1.3566652413497418633334968684+0.300000000000000044 0.800000000000000044 1.29773011447775267384243926396+0.300000000000000044 0.900000000000000022 1.24754832455613418953344554887+0.300000000000000044 2 0.941608539858444758396805164189+0.300000000000000044 3 0.801846597483286041717049393301+0.300000000000000044 4 0.706536417678961168215848486685+0.300000000000000044 5 0.634215756099335037267805627915+0.300000000000000044 6 0.575946847975359253363045581512+0.300000000000000044 7 0.527156683805927243248636100304+0.300000000000000044 8 0.48519248470689509719645760743+0.300000000000000044 9 0.448378511584178780640200795366+0.300000000000000044 10 0.415588688761187905349120368344+0.300000000000000044 11 0.386029886519643498304955235959+0.300000000000000044 12 0.35912243359971915387276576747+0.300000000000000044 13 0.334429821009347649247976711139+0.300000000000000044 14 0.311615143243176300866058816643+0.300000000000000044 15 0.290412935592573316185685166698+0.300000000000000044 16 0.270610308296393600257112244584+0.300000000000000044 17 0.252033922723458185154626138918+0.300000000000000044 18 0.234540765275940999921662170722+0.300000000000000044 19 0.218011463324730433574024886646+0.300000000000000044 20 0.202345346580331023445132357917+0.400000000000000022 0.100000000000000006 2.47702552651128957910344931655+0.400000000000000022 0.200000000000000011 1.92250778206333332752756529932+0.400000000000000022 0.300000000000000044 1.63160856598819264268858272367+0.400000000000000022 0.400000000000000022 1.4412959570037298734178446585+0.400000000000000022 0.5 1.30266652089174084231631660668+0.400000000000000022 0.599999999999999978 1.19491167577101864349604672533+0.400000000000000022 0.700000000000000067 1.10741750549328990457170119879+0.400000000000000022 0.800000000000000044 1.03411158610493712456750518284+0.400000000000000022 0.900000000000000022 0.971228866944387142555708031546+0.400000000000000022 2 0.579818495252942063307453647077+0.400000000000000022 3 0.397496938458987427843877083379+0.400000000000000022 4 0.272333795504981407059623361389+0.400000000000000022 5 0.177023615700656541969202944358+0.400000000000000022 6 0.100062574564528212873048771801+0.400000000000000022 7 0.0355240534269570377306779041635+0.400000000000000022 8 -0.0200457977278537299319084594557+0.400000000000000022 9 -0.0688359618972857356406710175483+0.400000000000000022 10 -0.112321073837024567432548528388+0.400000000000000022 11 -0.151541786990305865836793703084+0.400000000000000022 12 -0.187259869592385100526123153028+0.400000000000000022 13 -0.220049692415375972832733083746+0.400000000000000022 14 -0.250355041910704923505607595804+0.400000000000000022 15 -0.278525918877401246966426658986+0.400000000000000022 16 -0.304843227194774656978807160948+0.400000000000000022 17 -0.329535839785146159347045354221+0.400000000000000022 18 -0.352792701949413424351387091515+0.400000000000000022 19 -0.374771608668188668390886394914+0.400000000000000022 20 -0.395605695571030657042381070705+0.5 0.100000000000000006 2.42684373658967109801325202939+0.5 0.200000000000000011 1.83556151882381805239188143801+0.5 0.300000000000000044 1.51610325934293790728225697271+0.5 0.400000000000000022 1.30266652089174084231631660668+0.5 0.5 1.14472988584940017414342735135+0.5 0.599999999999999978 1.02047124225377473563622634042+0.5 0.700000000000000067 0.918606279459682389161179431881+0.5 0.800000000000000044 0.832599430832398111454179979721+0.5 0.900000000000000022 0.758354096831814341499486725185+0.5 2 0.287682072451780927439219005994+0.5 3 0.0645385211375711716729239156839+0.5 4 -0.0896121586896871326199514693785+0.5 5 -0.207395194346070587158745578849+0.5 6 -0.30270537415039544720269770213+0.5 7 -0.382748081823931873026475663856+0.5 8 -0.451740953310883324499895369104+0.5 9 -0.512365575127318167080501501144+0.5 10 -0.566432796397593934881806337729+0.5 11 -0.615222960567025937947180741952+0.5 12 -0.659674723137859775274757874339+0.5 13 -0.700496717658114904829334939494+0.5 14 -0.738237045640961933544351087238+0.5 15 -0.77332836545223203678780613324+0.5 16 -0.806118188275222907303733766176+0.5 17 -0.836889846941976595674761973773+0.5 18 -0.865877383815228885714107311111+0.5 19 -0.893276358003343328457248265381+0.5 20 -0.919251844406603986479721390523+0.599999999999999978 0.100000000000000006 2.39007926327177430112850463066+0.599999999999999978 0.200000000000000011 1.77023800210018180049435057017+0.599999999999999978 0.300000000000000044 1.42765561315256734553334829486+0.599999999999999978 0.400000000000000022 1.19491167577101864349604672533+0.599999999999999978 0.5 1.02047124225377473563622634042+0.599999999999999978 0.599999999999999978 0.88184180614178570453469828859+0.599999999999999978 0.700000000000000067 0.767275914108761845400473602733+0.599999999999999978 0.800000000000000044 0.669906450641443779750578047334+0.599999999999999978 0.900000000000000022 0.585392335439223110596962240107+0.599999999999999978 2 0.0408219945202551804397990271417+0.599999999999999978 3 -0.221542269947235863055519847238+0.599999999999999978 4 -0.403863826741190483099332180031+0.599999999999999978 5 -0.543625769116349175643804806893+0.599999999999999978 6 -0.656954454423352346417020895996+0.599999999999999978 7 -0.752264634227677203096660823443+0.599999999999999978 8 -0.834502732464649289895168761633+0.599999999999999978 9 -0.906823394044275407933641566622+0.599999999999999978 10 -0.97136191518184657729360084767+0.599999999999999978 11 -1.02963082330582235072455877497+0.599999999999999978 12 -1.08274064861977076674818238893+0.599999999999999978 13 -1.13153081278920276805129802391+0.599999999999999978 14 -1.17665124806967235484836919134+0.599999999999999978 15 -1.21861544716870449329628039226+0.599999999999999978 16 -1.25783616032198578814211843675+0.599999999999999978 17 -1.29465013344470209801028473902+0.599999999999999978 18 -1.32933569143259211421201365683+0.599999999999999978 19 -1.36212551425558298353415309124+0.599999999999999978 20 -1.3932161013256140674194232971+0.700000000000000067 0.100000000000000006 2.36152021986603481598314080924+0.700000000000000067 0.200000000000000011 1.71855482922770798675764878536+0.700000000000000067 0.300000000000000044 1.3566652413497418633334968684+0.700000000000000067 0.400000000000000022 1.10741750549328990457170119879+0.700000000000000067 0.5 0.918606279459682389161179431881+0.700000000000000067 0.599999999999999978 0.767275914108761845400473602733+0.700000000000000067 0.700000000000000067 0.641347407235704173048531465899+0.700000000000000067 0.800000000000000044 0.533709162566749197333458954456+0.700000000000000067 0.900000000000000022 0.439835251963165159935206262777+0.700000000000000067 2 -0.17395330712343815166522003684+0.700000000000000067 3 -0.474057899573776257087354940913+0.700000000000000067 4 -0.683778430555845344045830535881+0.700000000000000067 5 -0.845046578151967642187385396884+0.700000000000000067 6 -0.976074840558371746659465431733+0.700000000000000067 7 -1.08642289772723713144136435794+0.700000000000000067 8 -1.1817330775315620001364049848+0.700000000000000067 9 -1.26561456151226411410194494968+0.700000000000000067 10 -1.34051586968538187627754355806+0.700000000000000067 11 -1.40817451815919668777150913651+0.700000000000000067 12 -1.46986808716453658422900342761+0.700000000000000067 13 -1.52656343084108186827389144863+0.700000000000000067 14 -1.57900990621362436837989329916+0.700000000000000067 15 -1.62780007038305637597679025287+0.700000000000000067 16 -1.67341058163510868763013000441+0.700000000000000067 17 -1.71623057881803687719178607881+0.700000000000000067 18 -1.75658187434160425869902349699+0.700000000000000067 19 -1.79473364030598051034700055607+0.700000000000000067 20 -1.83091329688348287648116892138+0.800000000000000044 0.100000000000000006 2.33839609039930051445700230897+0.800000000000000044 0.200000000000000011 1.67612350083062204412612726133+0.800000000000000044 0.300000000000000044 1.29773011447775267384243926396+0.800000000000000044 0.400000000000000022 1.03411158610493712456750518284+0.800000000000000044 0.5 0.832599430832398111454179979721+0.800000000000000044 0.599999999999999978 0.669906450641443779750578047334+0.800000000000000044 0.700000000000000067 0.533709162566749197333458954456+0.800000000000000044 0.800000000000000044 0.416711122496430864240003961913+0.800000000000000044 0.900000000000000022 0.314243615541646350984101667578+0.800000000000000044 2 -0.364643113587909332606210051015+0.800000000000000044 3 -0.701115350209122278971132384448+0.800000000000000044 4 -0.937504128273352684670713400136+0.800000000000000044 5 -1.11982568506730732013428996383+0.800000000000000044 6 -1.2682456901855806057727538444+0.800000000000000044 7 -1.39340883313958662655700756639+0.800000000000000044 8 -1.50162241777981937999307957654+0.800000000000000044 9 -1.59693259758414424508349999357+0.800000000000000044 10 -1.68209040592445110243447822288+0.800000000000000044 11 -1.75905144706057943153063239544+0.800000000000000044 12 -1.82925570573382796724744773805+0.800000000000000044 13 -1.89379422687139914238981860569+0.800000000000000044 14 -1.95351346157302141715560765217+0.800000000000000044 15 -2.00908331272783218481819401578+0.800000000000000044 16 -2.06104305165854324120506685547+0.800000000000000044 17 -2.10983321582797524691382941357+0.800000000000000044 18 -2.15581832906979863287623420454+0.800000000000000044 19 -2.19930344100953746466811171538+0.800000000000000044 20 -2.2405463995435865591536337993+0.900000000000000022 0.100000000000000006 2.31908889146894887245316209564+0.900000000000000022 0.200000000000000011 1.640312503425367158849053443+0.900000000000000022 0.300000000000000044 1.24754832455613418953344554887+0.900000000000000022 0.400000000000000022 0.971228866944387142555708031546+0.900000000000000022 0.5 0.758354096831814341499486725185+0.900000000000000022 0.599999999999999978 0.585392335439223110596962240107+0.900000000000000022 0.700000000000000067 0.439835251963165159935206262777+0.900000000000000022 0.800000000000000044 0.314243615541646350984101667578+0.900000000000000022 0.900000000000000022 0.203836352383858063183782655552+0.900000000000000022 2 -0.536493370514568511121715919761+0.900000000000000022 3 -0.908056926947051552526474890637+0.900000000000000022 4 -1.17042119141454261025542228585+0.900000000000000022 5 -1.37336203541123292214519462463+0.900000000000000022 6 -1.53887647388880631790596209052+0.900000000000000022 7 -1.67863841626396501849552909873+0.900000000000000022 8 -1.79959102668162752635582164366+0.900000000000000022 9 -1.90620076173988575489883256668+0.900000000000000022 10 -2.00151094154421061718565948718+0.900000000000000022 11 -2.08768863778526295156409949723+0.900000000000000022 12 -2.16633176510437611070497287568+0.900000000000000022 13 -2.2386524266840022330466356986+0.900000000000000022 14 -2.30559190935911157176138492212+0.900000000000000022 15 -2.36789579269526641570346912546+0.900000000000000022 16 -2.42616470081924219262569442579+0.900000000000000022 17 -2.48088960050848874435962277033+0.900000000000000022 18 -2.53247696929898197751037378101+0.900000000000000022 19 -2.58126713346841398175058736473+0.900000000000000022 20 -2.62754788603242023424949180482+2 0.100000000000000006 2.20727491318972076341641980639+2 0.200000000000000011 1.42711635564014568362603153827+2 0.300000000000000044 0.941608539858444758396805164189+2 0.400000000000000022 0.579818495252942063307453647077+2 0.5 0.287682072451780927439219005994+2 0.599999999999999978 0.0408219945202551804397990271417+2 0.700000000000000067 -0.17395330712343815166522003684+2 0.800000000000000044 -0.364643113587909332606210051015+2 0.900000000000000022 -0.536493370514568511121715919761+2 2 -1.79175946922805500081247735838+2 3 -2.48490664978800031022970947984+2 4 -2.99573227355399099343522357614+2 5 -3.40119738166215537541323669161+2 6 -3.73766961828336830591783010182+2 7 -4.02535169073514923335704910782+2 8 -4.27666611901605531104218683822+2 9 -4.49980967033026506680848192853+2 10 -4.70048036579241622807993503265+2 11 -4.8828019225863708542916530578+2 12 -5.0498560072495370462831969214+2 13 -5.20400668707679535057607230647+2 14 -5.34710753071746868051858943505+2 15 -5.48063892334199130366493305598+2 16 -5.60580206629599731791846310371+2 17 -5.72358510195238077245725721318+2 18 -5.83481073706260515221675002719+2 19 -5.94017125272043145344425100803+2 20 -6.04025471127741398993582155651+3 0.100000000000000006 2.1584847490202887577076572483+3 0.200000000000000011 1.33180617583582081853561112124+3 0.300000000000000044 0.801846597483286041717049393301+3 0.400000000000000022 0.397496938458987427843877083379+3 0.5 0.0645385211375711716729239156839+3 0.599999999999999978 -0.221542269947235863055519847238+3 0.700000000000000067 -0.474057899573776257087354940913+3 0.800000000000000044 -0.701115350209122278971132384448+3 0.900000000000000022 -0.908056926947051552526474890637+3 2 -2.48490664978800031022970947984+3 3 -3.40119738166215537541323669161+3 4 -4.09434456222210068483046881306+3 5 -4.65396035015752337110135731359+3 6 -5.12396397940325892475229434474+3 7 -5.5294290875114233067303074602+3 8 -5.88610403145015568564294617145+3 9 -6.20455776256869030145319338504+3 10 -6.49223983502047122889241239103+3 11 -6.75460409948796228092790837791+3 12 -6.99576615630485035138854966485+3 13 -7.21890970761906010715484475516+3 14 -7.42654907239730460877028579942+3 15 -7.6207050868382620744972355524+3 16 -7.80302664363221670070895357755+3 17 -7.97487690055887592304905252361+3 18 -8.13739583005665083623474148187+3 19 -8.29154650988390914052761686694+3 20 -8.43814998407578453399776513447+4 0.100000000000000006 2.12569492619729788540104731758+4 0.200000000000000011 1.2672676546982496433932402536+4 0.300000000000000044 0.706536417678961168215848486685+4 0.400000000000000022 0.272333795504981407059623361389+4 0.5 -0.0896121586896871326199514693785+4 0.599999999999999978 -0.403863826741190483099332180031+4 0.700000000000000067 -0.683778430555845344045830535881+4 0.800000000000000044 -0.937504128273352684670713400136+4 0.900000000000000022 -1.17042119141454261025542228585+4 2 -2.99573227355399099343522357614+4 3 -4.09434456222210068483046881306+4 4 -4.94164242260930429854057631959+4 5 -5.63478960316924960795780844104+4 6 -6.22257626807136861614753958166+4 7 -6.73340189183735929935305367797+4 8 -7.18538701558041653830964451249+4 9 -7.59085212368858092028765762795+4 10 -7.95857690381389827355065459567+4 11 -8.29504914043511120405524800589+4 12 -8.60520406873895072598930899807+4 13 -8.89288614119073165342852800407+4 14 -9.16115012778541099762457518038+4 15 -9.41246455606631707530971291078+4 16 -9.64885333413054746932273577252+4 17 -9.87199688544475722508903086283+4 18 -10.0833059791119641413400942253+4 19 -10.2839766745741153026115473294+4 20 -10.4750319113368245334092727294+5 0.100000000000000006 2.10100231360692638303280912431+5 0.200000000000000011 1.21847749052881763768447769551+5 0.300000000000000044 0.634215756099335037267805627915+5 0.400000000000000022 0.177023615700656541969202944358+5 0.5 -0.207395194346070587158745578849+5 0.599999999999999978 -0.543625769116349175643804806893+5 0.700000000000000067 -0.845046578151967642187385396884+5 0.800000000000000044 -1.11982568506730732013428996383+5 0.900000000000000022 -1.37336203541123292214519462463+5 2 -3.40119738166215537541323669161+5 3 -4.65396035015752337110135731359+5 4 -5.63478960316924960795780844104+5 5 -6.44571981938557837191383467197+5 6 -7.13886699994552368133106679343+5 7 -7.74500280351583922458053301301+5 8 -8.28399930424852622970488974941+5 9 -8.7695071200302270375066808266+5 10 -9.21133987230926626923877521766+5 11 -9.61680498041743065121678833312+5 12 -9.99149842985884134482377324099+5 13 -10.339805124127057114843598379+5 14 -10.6652275245616850709978335328+5 15 -10.9706091741128669164842760997+5 16 -11.2582912465646478439234951057+5 17 -11.5302249620482896027551646003+5 18 -11.7880540713503893759848056818+5 19 -12.0331765293833743745838359183+5 20 -12.2667913805648795342217500877+6 0.100000000000000006 2.08119968631074666891832611172+6 0.200000000000000011 1.17925677737553633928023252081+6 0.300000000000000044 0.575946847975359253363045581512+6 0.400000000000000022 0.100062574564528212873048771801+6 0.5 -0.30270537415039544720269770213+6 0.599999999999999978 -0.656954454423352346417020895996+6 0.700000000000000067 -0.976074840558371746659465431733+6 0.800000000000000044 -1.2682456901855806057727538444+6 0.900000000000000022 -1.53887647388880631790596209052+6 2 -3.73766961828336830591783010182+6 3 -5.12396397940325892475229434474+6 4 -6.22257626807136861614753958166+6 5 -7.13886699994552368133106679343+6 6 -7.92732436030979385079225103817+6 7 -8.62047154086973916020948315963+6 8 -9.23951074927596259115761785775+6 9 -9.79912653721138527742850635828+6 10 -10.3099521609773759606340204546+6 11 -10.7799557902231115142849574857+6 12 -11.2152738614809570504725485256+6 13 -11.6207389695891214324505616411+6 14 -12.0002285912940251564061016314+6 15 -12.3569035352327575353187403427+6 16 -12.6933757718539704658233337529+6 17 -13.0118295029725050816335809665+6 18 -13.3141103748454386921907991804+6 19 -13.6017924472972196196300181864+6 20 -13.876229292998979908822509421+7 0.100000000000000006 2.06467038435953610408738694871+7 0.200000000000000011 1.14646695455254546697362259009+7 0.300000000000000044 0.527156683805927243248636100304+7 0.400000000000000022 0.0355240534269570377306779041635+7 0.5 -0.382748081823931873026475663856+7 0.599999999999999978 -0.752264634227677203096660823443+7 0.700000000000000067 -1.08642289772723713144136435794+7 0.800000000000000044 -1.39340883313958662655700756639+7 0.900000000000000022 -1.67863841626396501849552909873+7 2 -4.02535169073514923335704910782+7 3 -5.5294290875114233067303074602+7 4 -6.73340189183735929935305367797+7 5 -7.74500280351583922458053301301+7 6 -8.62047154086973916020948315963+7 7 -9.39366142910322089545049324281+7 8 -10.0868086096631662048677253643+7 9 -10.71541726908554034261203357+7 10 -11.290781413989102197490471582+7 11 -11.8214096650512725937220147452+7 12 -12.3138861501490667418677937626+7 13 -12.7734184795275068916471117146+7 14 -13.2042013956199611490288478492+7 15 -13.6096665037281255310068609647+7 16 -13.9926587559842313184900320939+7 17 -14.3555642496735997716278564399+7 18 -14.7004047359653293110252634233+7 19 -15.0289088029373653680190594945+7 20 -15.3425663617924069534807516256+8 0.100000000000000006 2.05048574936757967109942941389+8 0.200000000000000011 1.11829607758584914351280352691+8 0.300000000000000044 0.48519248470689509719645760743+8 0.400000000000000022 -0.0200457977278537299319084594557+8 0.5 -0.451740953310883324499895369104+8 0.599999999999999978 -0.834502732464649289895168761633+8 0.700000000000000067 -1.1817330775315620001364049848+8 0.800000000000000044 -1.50162241777981937999307957654+8 0.900000000000000022 -1.79959102668162752635582164366+8 2 -4.27666611901605531104218683822+8 3 -5.88610403145015568564294617145+8 4 -7.18538701558041653830964451249+8 5 -8.28399930424852622970488974941+8 6 -9.23951074927596259115761785775+8 7 -10.0868086096631662048677253643+8 8 -10.848948661710062965758377191+8 9 -11.5420958422700082751756093124+8 10 -12.1780846089900049726346534565+8 11 -12.7658712738921239808243845971+8 12 -13.312414980260193896771468451+8 13 -13.8232406040261845799769825473+8 14 -14.3028136842880708404240930861+8 15 -14.7547988080311280793806839206+8 16 -15.1822428228580677041914321823+8 17 -15.5877079309662320861694452978+8 18 -15.9733704117782167551214293463+8 19 -16.3410951919035341083844263141+8 20 -16.6924930787414227225611345929+9 0.100000000000000006 2.03806322936902251710281343055+9 0.200000000000000011 1.09360346499547764114456533364+9 0.300000000000000044 0.448378511584178780640200795366+9 0.400000000000000022 -0.0688359618972857356406710175483+9 0.5 -0.512365575127318167080501501144+9 0.599999999999999978 -0.906823394044275407933641566622+9 0.700000000000000067 -1.26561456151226411410194494968+9 0.800000000000000044 -1.59693259758414424508349999357+9 0.900000000000000022 -1.90620076173988575489883256668+9 2 -4.49980967033026506680848192853+9 3 -6.20455776256869030145319338504+9 4 -7.59085212368858092028765762795+9 5 -8.7695071200302270375066808266+9 6 -9.79912653721138527742850635828+9 7 -10.71541726908554034261203357+9 8 -11.5420958422700082751756093124+9 9 -12.2958676446463884271734475659+9 10 -12.9890148252063337365906796874+9 11 -13.6308687113787285125817156646+9 12 -14.2287057121343489619549956628+9 13 -14.7883215000697716482258841633+9 14 -15.3144145959665507656515724212+9 15 -15.8108514822804418419357403881+9 16 -16.2808551115261773955866774192+9 17 -16.7271422141545969071192675998+9 18 -17.152025408119862872340452545+9 19 -17.5574905162280272543184656604+9 20 -17.9452560472367907182492552149+10 0.100000000000000006 2.02701339318243754214244252318+10 0.200000000000000011 1.07162455827670239710506603024+10 0.300000000000000044 0.415588688761187905349120368344+10 0.400000000000000022 -0.112321073837024567432548528388+10 0.5 -0.566432796397593934881806337729+10 0.599999999999999978 -0.97136191518184657729360084767+10 0.700000000000000067 -1.34051586968538187627754355806+10 0.800000000000000044 -1.68209040592445110243447822288+10 0.900000000000000022 -2.00151094154421061718565948718+10 2 -4.70048036579241622807993503265+10 3 -6.49223983502047122889241239103+10 4 -7.95857690381389827355065459567+10 5 -9.21133987230926626923877521766+10 6 -10.3099521609773759606340204546+10 7 -11.290781413989102197490471582+10 8 -12.1780846089900049726346534565+10 9 -12.9890148252063337365906796874+10 10 -13.7362292270365548138092166454+10 11 -14.4293764075965001232264487669+10 12 -15.0760035725215525756651031693+10 13 -15.6821393760918681189145693889+10 14 -16.2526842345594810736678347791+10 15 -16.7916807352921680787921915155+10 16 -17.3025063590581587619977056118+10 17 -17.788014174839859569799496689+10 18 -18.2506376967879725637356977819+10 19 -18.692470449067011795467792173+10 20 -19.1153272998870453626420367734+11 0.100000000000000006 2.01706306232926945874461180691+11 0.200000000000000011 1.05182193098052268299058301765+11 0.300000000000000044 0.386029886519643498304955235959+11 0.400000000000000022 -0.151541786990305865836793703084+11 0.5 -0.615222960567025937947180741952+11 0.599999999999999978 -1.02963082330582235072455877497+11 0.700000000000000067 -1.40817451815919668777150913651+11 0.800000000000000044 -1.75905144706057943153063239544+11 0.900000000000000022 -2.08768863778526295156409949723+11 2 -4.8828019225863708542916530578+11 3 -6.75460409948796228092790837791+11 4 -8.29504914043511120405524800589+11 5 -9.61680498041743065121678833312+11 6 -10.7799557902231115142849574857+11 7 -11.8214096650512725937220147452+11 8 -12.7658712738921239808243845971+11 9 -13.6308687113787285125817156646+11 10 -14.4293764075965001232264487669+11 11 -15.1713137523258774357090552926+11 12 -15.864460932885822745126287414+11 13 -16.515048499026972125703330766+11 14 -17.1281529719133810092967849257+11 15 -17.7079714671663231439757187273+11 16 -18.2580178040855951234504337202+11 17 -18.7812659478501429599672409451+11 18 -19.2802571139691308036575233136+11 19 -19.7571811860594401386330727506+11 20 -20.2139395885551550540372820104+12 0.100000000000000006 2.00801322680935155056110547006+12 0.200000000000000011 1.03380342547784436730496626332+12 0.300000000000000044 0.35912243359971915387276576747+12 0.400000000000000022 -0.187259869592385100526123153028+12 0.5 -0.659674723137859775274757874339+12 0.599999999999999978 -1.08274064861977076674818238893+12 0.700000000000000067 -1.46986808716453658422900342761+12 0.800000000000000044 -1.82925570573382796724744773805+12 0.900000000000000022 -2.16633176510437611070497287568+12 2 -5.0498560072495370462831969214+12 3 -6.99576615630485035138854966485+12 4 -8.60520406873895072598930899807+12 5 -9.99149842985884134482377324099+12 6 -11.2152738614809570504725485256+12 7 -12.3138861501490667418677937626+12 8 -13.312414980260193896771468451+12 9 -14.2287057121343489619549956628+12 10 -15.0760035725215525756651031693+12 11 -15.864460932885822745126287414+12 12 -16.6020598760166018918710966679+12 13 -17.2952070565765472012883287893+12 14 -17.9491335239832112144363600142+12 15 -18.5681727323894346453844947123+12 16 -19.155959397291553653574225853+12 17 -19.7155751852269763398451143535+12 18 -20.249657671157234286778851768+12 19 -20.7604832949232249699843658643+12 20 -21.2500315202419307559045027569+13 0.100000000000000006 1.99971442399465645622614940377+13 0.200000000000000011 1.01727412352663380247402710031+13 0.300000000000000044 0.334429821009347649247976711139+13 0.400000000000000022 -0.220049692415375972832733083746+13 0.5 -0.700496717658114904829334939494+13 0.599999999999999978 -1.13153081278920276805129802391+13 0.700000000000000067 -1.52656343084108186827389144863+13 0.800000000000000044 -1.89379422687139914238981860569+13 0.900000000000000022 -2.2386524266840022330466356986+13 2 -5.20400668707679535057607230647+13 3 -7.21890970761906010715484475516+13 4 -8.89288614119073165342852800407+13 5 -10.339805124127057114843598379+13 6 -11.6207389695891214324505616411+13 7 -12.7734184795275068916471117146+13 8 -13.8232406040261845799769825473+13 9 -14.7883215000697716482258841633+13 10 -15.6821393760918681189145693889+13 11 -16.515048499026972125703330766+13 12 -17.2952070565765472012883287893+13 13 -18.0291762316567476402601379759+13 14 -18.7223234122166929496773700974+13 15 -19.3791029486057634093405209433+13 16 -20.0032572576787572672843333595+13 17 -20.597964365425450056798676906+13 18 -21.1659484030313893519623789797+13 19 -21.709563849620370905683820709+13 20 -22.2308607732536569927609538844+14 0.100000000000000006 1.99205155124908733172445504281+14 0.200000000000000011 1.0020066513958453674127748898+14 0.300000000000000044 0.311615143243176300866058816643+14 0.400000000000000022 -0.250355041910704923505607595804+14 0.5 -0.738237045640961933544351087238+14 0.599999999999999978 -1.17665124806967235484836919134+14 0.700000000000000067 -1.57900990621362436837989329916+14 0.800000000000000044 -1.95351346157302141715560765217+14 0.900000000000000022 -2.30559190935911157176138492212+14 2 -5.34710753071746868051858943505+14 3 -7.42654907239730460877028579942+14 4 -9.16115012778541099762457518038+14 5 -10.6652275245616850709978335328+14 6 -12.0002285912940251564061016314+14 7 -13.2042013956199611490288478492+14 8 -14.3028136842880708404240930861+14 9 -15.3144145959665507656515724212+14 10 -16.2526842345594810736678347791+14 11 -17.1281529719133810092967849257+14 12 -17.9491335239832112144363600142+14 13 -18.7223234122166929496773700974+14 14 -19.4532109207594852878096183666+14 15 -20.1463581013194305972268504881+14 16 -20.8056037302036945584141179503+14 17 -21.4342123896260686961584261561+14 18 -22.0349862500549988618380558627+14 19 -22.6103503949585607167164938747+14 20 -23.1624189772586004921646552577+15 0.100000000000000006 1.98493408348022335165513934767+15 0.200000000000000011 0.987822016403888934424817354976+15 0.300000000000000044 0.290412935592573316185685166698+15 0.400000000000000022 -0.278525918877401246966426658986+15 0.5 -0.77332836545223203678780613324+15 0.599999999999999978 -1.21861544716870449329628039226+15 0.700000000000000067 -1.62780007038305637597679025287+15 0.800000000000000044 -2.00908331272783218481819401578+15 0.900000000000000022 -2.36789579269526641570346912546+15 2 -5.48063892334199130366493305598+15 3 -7.6207050868382620744972355524+15 4 -9.41246455606631707530971291078+15 5 -10.9706091741128669164842760997+15 6 -12.3569035352327575353187403427+15 7 -13.6096665037281255310068609647+15 8 -14.7547988080311280793806839206+15 9 -15.8108514822804418419357403881+15 10 -16.7916807352921680787921915155+15 11 -17.7079714671663231439757187273+15 12 -18.5681727323894346453844947123+15 13 -19.3791029486057634093405209433+15 14 -20.1463581013194305972268504881+15 15 -20.8745966016906460098875376555+15 16 -21.567743782250591319304769777+15 17 -22.2291422644959563275650056157+15 18 -22.8616648232394667944016316051+15 19 -23.4678006268097823376510978247+15 20 -24.0497221722595032673088371321+16 0.100000000000000006 1.97828954076155477250527555493+16 0.200000000000000011 0.974576789653868295447679698924+16 0.300000000000000044 0.270610308296393600257112244584+16 0.400000000000000022 -0.304843227194774656978807160948+16 0.5 -0.806118188275222907303733766176+16 0.599999999999999978 -1.25783616032198578814211843675+16 0.700000000000000067 -1.67341058163510868763013000441+16 0.800000000000000044 -2.06104305165854324120506685547+16 0.900000000000000022 -2.42616470081924219262569442579+16 2 -5.60580206629599731791846310371+16 3 -7.80302664363221670070895357755+16 4 -9.64885333413054746932273577252+16 5 -11.2582912465646478439234951057+16 6 -12.6933757718539704658233337529+16 7 -13.9926587559842313184900320939+16 8 -15.1822428228580677041914321823+16 9 -16.2808551115261773955866774192+16 10 -17.3025063590581587619977056118+16 11 -18.2580178040855951234504337202+16 12 -19.155959397291553653574225853+16 13 -20.0032572576787572672843333595+16 14 -20.8056037302036945584141179503+16 15 -21.567743782250591319304769777+16 16 -22.2936807856335274992379295314+16 17 -22.9868279661934728086551616528+16 18 -23.6501221836037369638628158499+16 19 -24.2861109503237336613218599939+16 20 -24.8970200326467068810189446387+17 0.100000000000000006 1.972058991010918697935300161+17 0.200000000000000011 0.962154269655311141451063715586+17 0.300000000000000044 0.252033922723458185154626138918+17 0.400000000000000022 -0.329535839785146159347045354221+17 0.5 -0.836889846941976595674761973773+17 0.599999999999999978 -1.29465013344470209801028473902+17 0.700000000000000067 -1.71623057881803687719178607881+17 0.800000000000000044 -2.10983321582797524691382941357+17 0.900000000000000022 -2.48088960050848874435962277033+17 2 -5.72358510195238077245725721318+17 3 -7.97487690055887592304905252361+17 4 -9.87199688544475722508903086283+17 5 -11.5302249620482896027551646003+17 6 -13.0118295029725050816335809665+17 7 -14.3555642496735997716278564399+17 8 -15.5877079309662320861694452978+17 9 -16.7271422141545969071192675998+17 10 -17.788014174839859569799496689+17 11 -18.7812659478501429599672409451+17 12 -19.7155751852269763398451143535+17 13 -20.597964365425450056798676906+17 14 -21.4342123896260686961584261561+17 15 -22.2291422644959563275650056157+17 16 -22.9868279661934728086551616528+17 17 -23.7107468054201718064434219819+17 18 -24.4038939859801171158606541034+17 19 -25.0688702895733661033590435847+17 20 -25.7079502488630356449749708696+18 0.100000000000000006 1.96619387155852061907868171244+18 0.200000000000000011 0.950458229892119862765804529193+18 0.300000000000000044 0.234540765275940999921662170722+18 0.400000000000000022 -0.352792701949413424351387091515+18 0.5 -0.865877383815228885714107311111+18 0.599999999999999978 -1.32933569143259211421201365683+18 0.700000000000000067 -1.75658187434160425869902349699+18 0.800000000000000044 -2.15581832906979863287623420454+18 0.900000000000000022 -2.53247696929898197751037378101+18 2 -5.83481073706260515221675002719+18 3 -8.13739583005665083623474148187+18 4 -10.0833059791119641413400942253+18 5 -11.7880540713503893759848056818+18 6 -13.3141103748454386921907991804+18 7 -14.7004047359653293110252634233+18 8 -15.9733704117782167551214293463+18 9 -17.152025408119862872340452545+18 10 -18.2506376967879725637356977819+18 11 -19.2802571139691308036575233136+18 12 -20.249657671157234286778851768+18 13 -21.1659484030313893519623789797+18 14 -22.0349862500549988618380558627+18 15 -22.8616648232394667944016316051+18 16 -23.6501221836037369638628158499+18 17 -24.4038939859801171158606541034+18 18 -25.1260287034133147153172315621+18 19 -25.8191758839732600247344636836+18 20 -26.4856548174510440090935319227+19 0.100000000000000006 1.96065369118290524815861728052+19 0.200000000000000011 0.93940839370553488780543362182+19 0.300000000000000044 0.218011463324730433574024886646+19 0.400000000000000022 -0.374771608668188668390886394914+19 0.5 -0.893276358003343328457248265381+19 0.599999999999999978 -1.36212551425558298353415309124+19 0.700000000000000067 -1.79473364030598051034700055607+19 0.800000000000000044 -2.19930344100953746466811171538+19 0.900000000000000022 -2.58126713346841398175058736473+19 2 -5.94017125272043145344425100803+19 3 -8.29154650988390914052761686694+19 4 -10.2839766745741153026115473294+19 5 -12.0331765293833743745838359183+19 6 -13.6017924472972196196300181864+19 7 -15.0289088029373653680190594945+19 8 -16.3410951919035341083844263141+19 9 -17.5574905162280272543184656604+19 10 -18.692470449067011795467792173+19 11 -19.7571811860594401386330727506+19 12 -20.7604832949232249699843658643+19 13 -21.709563849620370905683820709+19 14 -22.6103503949585607167164938747+19 15 -23.4678006268097823376510978247+19 16 -24.2861109503237336613218599939+19 17 -25.0688702895733661033590435847+19 18 -25.8191758839732600247344636836+19 19 -26.5397220387213197768948367593+19 20 -27.2328692192812650863120688808+20 0.100000000000000006 1.95540433529676151904505191525+20 0.200000000000000011 0.928937093838239483355573384062+20 0.300000000000000044 0.202345346580331023445132357917+20 0.400000000000000022 -0.395605695571030657042381070705+20 0.5 -0.919251844406603986479721390523+20 0.599999999999999978 -1.3932161013256140674194232971+20 0.700000000000000067 -1.83091329688348287648116892138+20 0.800000000000000044 -2.2405463995435865591536337993+20 0.900000000000000022 -2.62754788603242023424949180482+20 2 -6.04025471127741398993582155651+20 3 -8.43814998407578453399776513447+20 4 -10.4750319113368245334092727294+20 5 -12.2667913805648795342217500877+20 6 -13.876229292998979908822509421+20 7 -15.3425663617924069534807516256+20 8 -16.6924930787414227225611345929+20 9 -17.9452560472367907182492552149+20 10 -19.1153272998870453626420367734+20 11 -20.2139395885551550540372820104+20 12 -21.2500315202419307559045027569+20 13 -22.2308607732536569927609538844+20 14 -23.1624189772586004921646552577+20 15 -24.0497221722595032673088371321+20 16 -24.8970200326467068810189446387+20 17 -25.7079502488630356449749708696+20 18 -26.4856548174510440090935319227+20 19 -27.2328692192812650863120688808+20 20 -27.9519918862444710537517741274
+ tests/tables/loggamma.dat view
@@ -0,0 +1,43 @@+1.2500000000000001e-06 13.5923662851317682435796016512+6.82000000000000043e-05 9.59302663083187580782892179804+0.000246000000000000016 8.31003707674479645971159589555+0.000880000000000000031 7.03508133735248536292633538786+0.00311999999999999994 5.76812935836556732325877954057+0.0267000000000000015 3.60825889188929751923626846281+0.0777000000000000052 2.51483718587682339914549034673+0.234000000000000014 1.35795575594327598998191258078+0.859999999999999987 0.0981465780276855927795120251869+1.34000000000000008 -0.114047575572077578623579479668+1.8899999999999999 -0.0425116422978701401405661729629+2.45000000000000018 0.250142965692176235761147104829+3 0.693147180559945309417232121458+3.64999999999999991 1.37010419973806862861634409045+4 1.79175946922805500081247735838+4.55999999999999961 2.53751433179495797698708606823+5 3.1780538303479456196469416013+6 4.78749174278204599424770093452+6.66000000000000014 5.95153772695502089846022734702+7 6.5792512120101009950601782929+8 8.52516136106541430016553103635+8.25 9.03318691960512285327455704258+10 12.8018274800814696112077178746+11.3000000000000007 15.8141806813739487483883484684+25.6000000000000014 56.7112615983281240988282625152+33 81.557959456115037178502968666+50.3999999999999986 146.128151587021650625708161324+77 256.221135550009525456082846319+123.299999999999997 468.855000758975584910395998022+222 975.612353993036060800198673231+487.399999999999977 2526.98466475437276484523752546+555 2949.78690775573651020653356334+853.399999999999977 4903.93591359782221336869490715+888 5138.13145428259548143327765439+2923.30000000000018 20402.9319893870607273552436914+3333 23699.9195344962473524769527089+8764.29999999999927 70798.268343590118940583038718+12630 106641.772649825079076675672666+34500 325976.34838781821769124632363+82340 849629.79603036717685116333246+234800 2668846.43905079586519344403509+834300 10540830.9125575340577530715314+1230000 16017699.3223150155655909214342
+ tests/tables/shell.nix view
@@ -0,0 +1,10 @@+let+ pkgs = import <nixpkgs> {};+ pyp = pkgs.python3.withPackages (py: with py;+ [ ipython+ mpmath+ ]);+in+pkgs.mkShell {+ buildInputs = [ pyp ];+}
tests/tests.hs view
@@ -1,13 +1,16 @@-import Test.Framework (defaultMain)-import qualified Tests.SpecFunctions+import Test.Tasty (defaultMain,testGroup) import qualified Tests.Chebyshev-import qualified Tests.Sum import qualified Tests.Comparison+import qualified Tests.RootFinding+import qualified Tests.SpecFunctions+import qualified Tests.Sum main :: IO ()-main = defaultMain [ Tests.SpecFunctions.tests- -- FIXME: tests for chebyshev polynomials fail intermittently- -- , Tests.Chebyshev.tests- , Tests.Sum.tests- , Tests.Comparison.tests- ]+main = defaultMain $ testGroup "math-functions"+ [ Tests.SpecFunctions.tests+ -- FIXME: tests for chebyshev polynomials fail intermittently+ -- , Tests.Chebyshev.tests+ , Tests.Sum.tests+ , Tests.Comparison.tests+ , Tests.RootFinding.tests+ ]
− tests/view.hs
@@ -1,102 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-import Control.Applicative-import Control.Monad-import Numeric.SpecFunctions-import Numeric.MathFunctions.Constants-import CPython.Sugar-import CPython.MPMath-import qualified CPython as Py--import HEP.ROOT.Plot----------------------------------------------------------------------viewBetaDelta = runPy $ do- addToPythonPath "."- m <- loadMPMath- mpmSetDps m 100- xs <- forM pqBeta $ \(p,q) -> do x <- fromMPNum =<< mpmLog m =<< mpmBeta m (MPDouble p) (MPDouble q)- return (p,q, relErr x (logBeta p q))- draws $ do- -- let xs = [ (p,q, logBeta p q `relErr` (logGammaL p + logGammaL q - logGammaL (q+p)))- -- | (p,q) <- pqBeta- -- ]- add $ Graph2D xs---pqBeta = [ (p,q)- | p <- logRange 50 0.3 0.6- , q <- logRange 50 5 6- ]- where-----viewIBeta x = runPy $ do- addToPythonPath "."- m <- loadMPMath- mpmSetDps m 30- --- let n = 40- let pq = (,)- <$> logRange n 100 1000- <*> logRange n 100 1000- --- xs <- forM pq $ \(p,q) -> do- i <- fromMPNum =<< mpmIncompleteBeta m (MPDouble p) (MPDouble q) (MPDouble x)- return (p,q, incompleteBeta p q x `relErr` i)- --- draws $ do- add $ Graph2D xs---go = runPy $ do- addToPythonPath "."- m <- loadMPMath- mpmSetDps m 16- --- print =<< fromMPNum =<< mpmIncompleteBeta m (MPDouble 10) (MPDouble 10) (MPDouble 0.4)- print $ incompleteBeta 10 10 0.4-----viewLancrox = runPy $ do- addToPythonPath "."- m <- loadMPMath- mpmSetDps m 50- --- let xs = logRange 10000 (1e-8) (1e-1)- pl <- forM xs $ \x -> do y0 <- fromMPNum =<< mpmLog m =<< mpmGamma m (MPDouble x)- return (x, y0)- draws $ do- add $ Graph $ [ (x, abs $ y `relErr` logGammaL x) | (x,y) <- pl ]- set $ lineColor RED- --- add $ Graph $ [ (x, abs $ y `relErr` logGamma x) | (x,y) <- pl ]- set $ lineColor BLUE- --- set $ xaxis $ logScale ON- -- set $ yaxis $ logScale ON- --- add $ HLine m_epsilon- add $ HLine $ negate m_epsilon---------------------------------------------------------------------relErr :: Double -> Double -> Double-relErr 0 0 = 0-relErr x y = (x - y) / max (abs x) (abs y)----logRange :: Int -> Double -> Double -> [Double]-logRange n a b- = [ a * r^i | i <- [0 .. n] ]- where- r = (b / a) ** (1 / fromIntegral n)-