Deterministic primality proving for special sequences

Alice Silverberg

UC Irvine

Hawaii Conference in Algebraic , Arithmetic Geometry and Modular Forms March 8, 2012 Primality Proving

Manindra Agrawal, Neeraj Kayal, & Nitin Saxena (2002) showed that the primality or compositeness of any integer can be determined in deterministic polynomial time.

With improvements of Hendrik Lenstra and Carl Pomerance, the time to test an integer N is O˜ (log6 N). Primality Proving

Faster have long been known for numbers in special sequences, such as:

2k Fermat numbers Fk = 2 + 1 using Pépin’s criterion (1877) p Mersenne numbers Mp = 2 − 1 using the Lucas-Lehmer test (1930)

These algorithms are deterministic and run in time O˜ (log2 N). Primality Testing

As pointed out by Pomerance, essentially all of primality testing is based on: Theorem (Lucas) If aN−1 ≡ 1 (mod N), and a(N−1)/p 6≡ 1 (mod N) for all primes p|(N − 1), then N is prime.

In other words (according to Carl Pomerance): “Build up a that is so large that N is forced to be prime.”

Here, the group is

× hai ⊆ (Z/NZ) = Gm(Z/NZ). Using Elliptic Curves to give faster Algorithms

In the mid-1980’s elliptic curves started to be used to give faster algorithms: Deterministic to compute square roots modulo primes (R. Schoof, 1985) (H. W. Lenstra, Jr., 1987) Primality Testing (S. Goldwasser & J. Kilian, 1986) Bosma

In his 1985 Masters thesis “Primality testing using elliptic curves”, Wieb Bosma gave sufficient conditions for primality of numbers of a special form, using elliptic curve analogues of classical N − 1 tests.

The group ( /N )× is replaced by elliptic curves with Z Z √ by Q(i) or Q( −3).

It gives a probabilistic , and does not prove compositeness. Chudnovsky & Chudnovsky

D. V. Chudnovsky and G. V. Chudnovsky (1986) used √ elliptic curves with CM by Q( −D) to give sufficient conditions for the primality of integers in certain sequences

= √ ( + α αk ), sk NormQ( −D)/Q 1 0 1 √ defined by algebraic integers α0, α1 ∈ Q( −D).

They obtained a probabilistic primality test, which they implemented.

They also proposed using higher dimensional algebraic varieties, including abelian varieties with complex multiplication. Goldwasser & Kilian

Shafi Goldwasser & Joe Kilian (1986) gave the first general purpose elliptic curve primality proving algorithm, using randomly generated elliptic curves.

It runs in expected polynomial time. Gordon

Daniel Gordon (1989) proposed a general purpose compositeness test using supersingular reductions of CM elliptic curves over Q. Atkin & Morain

Oliver Atkin and François Morain (1993) developed an improved version of the Goldwasser-Kilian algorithm that uses the “CM method” to construct elliptic curves with complex multiplication, rather than generating elliptic curves at random.

The algorithm is faster in practice, but runs in “heuristic polynomial time”. Gross

Benedict Gross (2005) reinterpreted the Lucas-Lehmer test for Mersenne numbers in terms of the algebraic torus √ associated to the field Q( 3).

He also gave a primality test for Mersenne numbers using the elliptic curve

E : y 2 = x 3 − 12x,

which has complex multiplication by Q(i) and has supersingular reduction modulo every . Denomme & Savin

Robert Denomme and Gordan Savin (2008), extending the ideas of Gross, gave primality tests for the Fermat numbers and for the sequences

` `−1 22 − 22 + 1

and ` `−1 32 − 32 + 1

using elliptic curves with complex multiplication by (i) or √ Q Q( −3). Tsumura

Using similar methods, Yu Tsumura (2011) obtained similar results for the sequence

2p ± 2(p+1)/2 + 1

using elliptic curves with CM by Q(i). Gurevich & Kunyavski˘ı

A. Gurevich and B. Kunyavski˘ı (2009) reinterpreted classical primality tests for numbers of the form h2k ± 1 and put them in the framework of group schemes.

More recently (2012), they extend the framework of Gross and Denomme-Savin to give deterministic primality tests for numbers of the form

g222n−1 − g2n + 1 and g222n − g2n + 1 √ using elliptic curves with CM by Q(i) or Q( −3). Gross, Denomme-Savin, Tsumura, Gurevich-Kunyavski˘ı

These results fit into the general framework laid out by Chudnovsky and Chudnovsky.

However, as Pomerance pointed out, the numbers they consider can all be dealt with using classical N − 1 or N + 1 primality tests that are more efficient and do not involve elliptic curves. Zero mod N

If E ⊂ P2 is an elliptic curve over Q, we take points P = (x : y : z) ∈ E(Q) so that x, y, z ∈ Z and gcd(x, y, z) = 1.

Definition (x : y : z) = O mod N means that N|z. (x : y : z) 6= O mod N means that N - z.

If P = O mod N then P = O mod p for all primes p|N. Strongly nonzero

Definition Suppose E is an elliptic curve over Q and P = (x : y : z) ∈ E(Q). We say that P is strongly nonzero mod N if gcd(z, N) = 1.

Remarks 1 If P is strongly nonzero mod N, then P 6= O mod p for every prime p|N. 2 If N is prime, then P is strongly nonzero mod N if and only if P 6= O mod N. Sufficient condition for primality

Proposition (Goldwasser-Kilian, Lenstra) Suppose E is an elliptic curve over Q, P ∈ E(Q), N ∈ Z+ such that gcd(N, disc(E)) = 1, m ∈ Z+ such that m > (N1/4 + 1)2, mP = O mod N, and m q P is strongly nonzero mod N for all primes q|m. Then N is prime. Proof

mP = O mod N =⇒ mP = O mod p for all primes p|N,

so the order dp of P in E(Fp) divides m. m If dp < m for some prime p|N, then dp| q for some prime m q|m, so q P = O mod p. This contradicts the hypothesis m that q P is strongly nonzero mod N for all primes q|m. So P has order m in E( ) for every prime p|N. Fp √ If N is not prime then N has a prime divisor p ≤ N, and

1/4 2 1/2 2 √ |E(Fp)| ≥ m > (N + 1) ≥ (p + 1) = p + 1 + 2 p,

contradicting the Hasse bound √ |E(Fp)| ≤ p + 1 + 2 p.

So N is prime. Abatzoglou, Silverberg, Sutherland, & Wong

Jointly with Alex Abatzoglou, Drew Sutherland, and Angela Wong, we give necessary and sufficient conditions for the primality of integers in sequences of a special form.

We use this to give a deterministic algorithm that very quickly proves the primality or compositeness of the integers N in certain sequences.

The algorithm runs in quasi-quadratic time: O˜ (log2 N). Computations

We implemented the algorithm for a certain sequence and found the first 78 primes in the sequence. We believe that the 16 largest are the largest proven primes p that do not succumb to a classical p − 1 or p + 1 test. Relation to prior work

Our work is in the Chudnovsky and Chudnovsky framework, and is a direct extension of the techniques used by Gross and by Denomme & Savin.

However, the integers considered by Gross, Denomme-Savin, Tsumura, and Gurevich-Kunyavski˘ı can be proved prime using more efficient classical N ± 1 methods.

We consider a sequence for which that is not the case. Our framework

Suppose (for simplicity) that K is an imaginary quadratic

field of class number one, λ1, . . . , λs are primes of OK , s γ ∈ OK − {0}, and k = (k1,..., ks) ∈ N . Let

k1 ks Λk = γλ1 ··· λs , πk = 1 + Λk , Fk = NormK /Q(πk ).

Let E be an elliptic curve over Q with complex

multiplication by OK and positive rank over K , and fix P ∈ E(K ) of infinite order. General result

Theorem s Suppose Σ ⊂ N is such that if k ∈ Σ and πk is prime, then:

the Frobenius endomorphism of E modulo πk is πk , and

P mod πk 6∈ λi E(OK /(πk )) for i = 1,..., s. 2 If k ∈ Σ and Fk > 16 NormK /Q(γ) , then Fk is prime if and only if

Λk P = 0 mod πk , and Λk P is strongly nonzero mod πk for all i. λi Sufficient condition for primality

To show that Fk is prime, use the result of Goldwasser-Kilian & Lenstra on sufficient conditions for primality.

For the other direction, first note that Fk is prime in Z if

and only if πk is prime in OK , since

Fk = NormK /Q(πk ). The hypotheses

Our hypothesis is that k is in a nice set Σ such that

whenever k ∈ Σ and πk is prime, then:

the Frobenius endomorphism of E modulo πk is πk , and

P mod πk 6∈ λi E(OK /(πk )) for i = 1,..., s. Frobenius endomorphism

If πk is prime, then the Frobenius endomorphism of

E mod πk corresponds, under the canonical embedding

OK ,→ End(E mod πk ),

to either πk or −πk . Structure of E(OK /(πk ))

If πk is prime and the Frobenius endomorphism of

E mod πk is πk , then

∼ ∼ E(OK /(πk )) = ker(Frob −1) = ker(πk − 1) ∼ = ker(Λk ) = OK /(Λk )

so

Λk P = 0 mod πk as desired. Necessary condition for primality

Continue to assume Fk is prime and the Frobenius

endomorphism of E mod πk is πk .

We have

∼ k1 ks E(OK /(πk )) = OK /(Λk ) = OK /(γλ1 ··· λs ).

If P 6∈ λi E(OK /(πk )) for i = 1,..., s, then

Λk P 6= 0 mod πk λi for all i, as desired. The goal

Our goal is to find a large nice set Σ such that if k ∈ Σ and

πk is prime, then:

the Frobenius endomorphism of E modulo πk is πk , and

P mod πk 6∈ λi E(OK /(πk )) for i = 1,..., s. Good k

For any given k, one could check whether

P ∈/ λi E(OK /(πk )).

The method used by us and by Gross and Denomme-Savin determines a “good" k in advance.

This is what allows us to obtain efficient deterministic primality tests. Constraint

However, finding a nice description of the k for which

P mod πk 6∈ λi E(OK /(πk )) is constrained by the following. Let −1 Fi := K (E[λi ]) ⊆ Li := Fi (λi (P)).

Proposition The following are equivalent:

P mod πk 6∈ λi E(OK /(πk )),

(πk ) splits completely in Fi /K but does not split completely in Li /K. Constraint

When Li /K is an abelian extension, class field theory tells

us that the splitting behavior in Li of a prime ideal of OK is determined by congruence conditions.

But if Li /K is not abelian, then this is not true.

In general, we don’t know a good way to characterize the

prime ideals of K that split completely in Fi but not in Li , so we lack a concise description of the “good" k. Constraint

Requiring Li /K to be abelian is a very strong constraint.

If P 6∈ λi E(K ), then it follows that E[λi ] ⊂ E(K ). However, elliptic curves with CM by K have only very limited torsion over K . If E is defined over Q, this only happens when

NormK /Q(λi ) = 2, or

j = 0 and NormK /Q(λi ) = 3 or 4. Constraint

So if E is defined over Q and one wants a simple description of congruence classes for the “good” k, one is restricted to √ √ K = Q( −7) with λi = (1 ± −7)/2, or √ √ K = Q( −2) with λi = −2, or

K = Q(i) with λi = 1 + i, or √ √ Q( −3) with λi = −3 or 2. A sequence

Recall the framework:

k1 ks Λk = γλ1 ··· λs , πk = 1 + Λk , Fk = NormK /Q(πk ).

Take

√ √ 1+ −7 K = Q( −7), s = 1, λ1 = 2 , γ = 2,

so k πk = 1 + 2λ1 ∈ OK , Fk = πk πk ∈ N.

Let’s write Jk for Fk , and jk for πk . A sequence

Then k k k+2 Jk = 1 + 2(λ1 + λ1) + 2 .

We have

J1 = J2 = 11, J3 = 23, J4 = 67,

and

Jk+4 = 4Jk+3 − 7Jk+2 + 8Jk+1 − 4Jk . Family of elliptic curves

For a ∈ Q×, consider the family of elliptic curves:

2 3 2 3 Ea : y = x − 35a x − 98a √ with complex multiplication by Q( −7). Twisting parameters a and points Pa

Given k, choose a and Pa as follows.

k a Pa k ≡ 0 or 2 (mod 3) −1 (1, 8) k ≡ 4, 7, 13, 22 (mod 24) −5 (15, 50) k ≡ 10 (mod 24) −6 (21, 63) k ≡ 1, 19 (mod 72) −17 (81, 440) k ≡ 25, 43, 49, 67 (mod 72) −111 (−633, 12384)

Then rank(Ea(Q)) = 1, and Pa generates Ea(Q)/torsion. Primality Test for the sequence Jk

Theorem Suppose k > 1. If k ≡ 0 (mod 8) or 6 (mod 24), then Jk is composite. Otherwise, the following are equivalent:

Jk is prime. k+1 k 2 Pa = 0 mod Jk and 2 Pa is strongly nonzero mod Jk . Primality Test for the sequence Jk

To get from the general result to this, the hard work is in finding values of a for which there are many “good” k’s, and computing the k’s that work for a.

This means determining a good set Σa such that if k ∈ Σa

and jk is prime, then:

the Frobenius endomorphism of Ea mod jk is jk , and

Pa mod jk 6∈ λ1Ea(OK /(jk )). Generalized Legendre and Jacobi symbols

Definition

If α ∈ OK and π is a prime of OK , the (generalized) Legendre symbol is:

 0 if π|α, α  = 1 if α is a nonzero square mod π, π  −1 otherwise.

The (generalized) Jacobi symbol is defined multiplicatively. Frobenius endomorphism

Suppose a is a squarefree integer. Let     n a jk o Sa := k > 1 : √ = 1 . Jk −7

Proposition (Gross, Stark)

If k ∈ Sa and jk is prime in OK , then the Frobenius endomorphism of Ea mod jk is jk . The sets TP

Definition

Suppose a is squarefree and P ∈ Ea(K ). Then the field (λ−1( )) K 1 P has√ degree 1 or 2 over K , so it can be written in the form K ( δP ) with δP ∈ K . Let    δP TP := k ∈ : = −1 . Z jk

For a ∈ {−1, −5, −6, −17, −111}, let

Ta = TPa . The sets TP

Lemma

Suppose a is squarefree, P ∈ Ea(K ), k ∈ N, and jk is prime. Then

k ∈ TP ⇐⇒ P 6∈ λ1Ea(OK /(jk )). The sets TP

Lemma

T−1 = Z T−5 = {k ≡ 3, 4, 7, 8, 11, 13, 14, 15, 16, 17, 20, 22 (mod 24)}

T−6 = {k ≡ 1, 5, 10, 12, 15, 19, 20, 21, 22, 23 (mod 24)} T−17 = Z T−111 = {k ≡ 1, 2, 3, 6 (mod 8)} Proof

Given k ∈ Z>1 with k 6≡ 0 (mod 8) and k 6≡ 6 (mod 24), choose twisting factor a and Pa ∈ Ea(Q) as in the table:

k a Pa k ≡ 0 or 2 (mod 3) −1 (1, 8) k ≡ 4, 7, 13, 22 (mod 24) −5 (15, 50) k ≡ 10 (mod 24) −6 (21, 63) k ≡ 1, 19 (mod 72) −17 (81, 440) k ≡ 25, 43, 49, 67 (mod 72) −111 (−633, 12384)

Then k ∈ Sa ∩ Ta. Proof

Since k ∈ Sa, the Frobenius endomorphism of Ea modulo

jk is jk .

Since k ∈ Ta, we have P mod jk 6∈ λ1Ea(OK /(jk )).

Now apply the general result with Σ = Sa ∩ Ta. Recall:

Theorem s Suppose Σ ⊂ N is such that if k ∈ Σ and πk is prime, then:

the Frobenius endomorphism of E modulo πk is πk , and

P mod πk 6∈ λi E(OK /(πk )) for i = 1,..., s. 2 If k ∈ Σ and Fk > 16 NormK /Q(γ) , then Fk is prime if and only if

Λk P = 0 mod πk , and Λk P is strongly nonzero mod πk for all i. λi Large primes

The 16 largest primes we’ve found so far in the sequence are the largest proven primes that do not succumb to a classical N − 1 or N + 1 test.

The largest prime Jk we’ve found so far is J857,637 which has 258,176 decimal digits.

In 2000, it would have been the seventh largest prime,

with only the Mersenne primes M33, M34, M35, M36, M37,

and M38 ahead of it.

As of Tuesday, it was ranked 2492. 1159982029503274424439250721972553383414253935908849528012972738416511345083741947793878842503457364574067793957386199020216558065406786011378353277923734097958409096214866370781441062544798495994929876694775848391185914860336247777549354758200759238027904892020232258021459618871609590302818249312840685182319231536541592641266983689887997180056141735170828365045600281817864433360551014504533634125746799008354621643897049000715270365656536110211064262333079955130908227850065188505761787545821682475055814009517433188807974602524897532935848206633668292540192882945474838598000393671564908967029455259770597341964791398547067423694920597511366419852528606595752538012712927687990512203861439693629058898826688979539644441932829128140444993965897225312262313479807732539225545638971538977070083302532031812123733400549566444156040302136617690606055818827208942778 1296527626958461971881185416480527229055290712107090225219681083606032340510879766059157497273722159921465647589436999028888830708349061974042199288440724401702316513244680417623613318277840597105224046866719911788996962988896466454569546565008938798339074803140199289905426188903483473946153393591705633021378467090068577099227363058872843522495771408384277094505555372843354208384318621342527299817214542072900369110783870217184530268612613294762817968566531931431537286186089538491201592348062937905497232474781030521269864699347848577464785721550137477710525825019897236479329420480642786764052454994857052030772697739349321294520835768902365145524137006455137046394459891839330654268950867473120278583990516388684247192907331235022005133035282161979424585685005521761176616440587001204851570826699877265971935362314139439446545134148540708988165446433556890013 6858545658078151001576259595685828230021924128874860192286367093455142448560256744786784912709172547859310773801477009075309001230661510826062547798461492429245750003457985160228494215693880962483828696013831468706775650270115786488770451253440588091895069442805520706009203517654509031471620220631900048411719146461537149693756073555118452608094598455896674921331994932591760104378219222329225034707805384894781910282703054959213437811526078797549039763415786599341283979933050918382299746483741361342582477779760175350744659179881446042101648028374364271938862221760392386912927533606790881716507226897000190209118282812628353576781994343414015506462382485401490802661224911284950792586576301453317209847169544097739731630530492787571403756516144612487394161929111734257411176932736721892973779630062622945994544442763049955019478668525970370916155248644691796373 3080218130200063969353967620665669917184311321541500242639330503592673269592556776035961255483538667118892233875423840606068050344149652336670062071696966109475781392067773107370216660519382285278506885680436917283724796191090942043942505020892007244461348910866693970818775296672470282271370327674567748389303638914853110349737962701210771646164203939373081268005198736124153150897954206358506392823298995702385051930178458727054712497637779354438257275967902640005251845156223343674439424847950938896692714462183509122151432016183339760462560786406132648216595653805065543594894771134378508537577441533959112461601506063535076102321783830278628522765291909722061938793672810296097235571296851892690293554499104641592893324537370918914254836265807706477543837673143615478974112296616276836710032265635705377699275978872205583598026432507212227704087625940320464928 5428719241218088847588569832204854661199975413623482228240510198848381110922134887505307763153904414268260280016416828176378425019180382619337277436613177182748036012760677590154279905329179099000281463258809376053865807291300661349312482717459247023406268446340209659970663487411811110883771529583254834923903284275632553896512913919783084024426435392641695700685893609088663586629501236796123051043107468718361928949016531180203490197365558509491529798215451720690758224254665153275926113741257875374276227966967218921753731952389656076542210375094148846651849190335048808055266154022229965879161012497069323103373487607467940383001659035383632051124598046860425296778638230241281862398491094632622232699279733903911473290166728683071827236504292104852266988896254583240011024519187468402183835088883735866531507508810001100318487196300910439575752079345486304133 6999582128287599065434868921159030435137158413772102747306526173670753882747117749301821675900590066937065175651880381364394584453230494844829033550178542769050988683508574155302924835044105858845120259913590811923965411054360844606591129670149317895875630538451996761836726028944736182581940178806537597999968899059181497139851883123669259383976823243162215983105463264146606615984336569763391974393547210471033983079975068492422948297124771867870720738832783106646193767513330998033555861888027892675368590045246555762698519532058777427093123919777315437935191619157913559380381502504660026450542847330380963662430934795889712847065248858099029039062025400877595252724374473582689787742934286263549877894418789939014481826504236518002120050561689634023308584574499111781689933584380615045774313777082633354978795250324749377625165122214743216052731225581858600003 5929834128761054996458022461513278562989519235426175724516673330822791171205939515231438524747496014339460198716795972198235120856184442293345344118861943995681110798025170559356755663201872623113333573054761949881040352437384786151586617508033232237143741974516212253397852570846561256630037466553702967047273026224013072444933271365020785860218504428173609995844560136207907286205289857530535938608455521199280753844825240331834492157086268029203551146053435964994033677613254927064086818116950568712542076332725278856344678578822090009077608157573123756549291102698789790956554443584957804059274529706814598940843521947035013020433190056913646957420243432482119501065615384293610337718938125577301352972397480474221754395058036230884773330219339391008789088121653824854509727571334043848489137898547116862082036376040216128544055742294450754274745376668998196784 9058940046849674272890898054836093421326861936079676128043531241848453435889478193389462597126110625598463947955837418899576793244016439959531501012151422194541059161388015557559948500728591737522476823700626511668914616953229707562625044393398144280243617687616883661531468442061605352023446972762891358221755666753901110357095198787261769212642594092903320758374238897348780983007339616516023315439901509830105391839128537933799342746733877925729835538341858302710904407483266003655562648862903547499278784523060766462446128356574654464801803643264781230517509068961826684343209993828813566742039759721514715188003539695686539156324113724001454381049065676240316141171454074589247973714830569021271839198185735730999755680068058117757189873208447870970313301554812646957419913522899088156439034694129575938281995690421513552023303406125022482306931973775761289501 7309389128764426818354331915485135698472267327050570180281686345352490654365978066132530574896269965470048491937993772821323788107969437721570131588632187308157702725356379313331104004895447721046661414791230467392431746191955109005396388050658307801678600007213695084782063105565686352098861799760842064591063085839311807260916443661621212389404013152611011626729221684394320817851542410002583965671794927365179777774031775634596443619115702455942259016929456787132975483833344561079201108582145919348889382388874316563108420021676386264240649793704480889996742304708538965985250999662650582219639908494103547069723045726642451329761568310411212202691204449615462792780169681053889511922660946071464181712629033787698511913749937507348669294277920903203290669750311309604256610759817445632033179430035324658893087440617815308621575780174464056332346960856415294249 6754074837565707287112548079376991460164195109540657466135498208884302098395370977265562934222826831407412736649939691909905672056613405827790608402307340279237124709883629631610894128881946714548729118692393680939103425892536841496316513747270996585872621353607123629657716470820344058532428148068829444640746100378700189422918851591926576426398787940885627862124962620414490205443814118039390069247388145603502423617634204256976822987297617567077021720095934306770014527877387822713003965796754807700704937876370941425073583088395970325449661187848145996181144904558006809639854149417825694060621583361025153866814999832183124486518656715199354127903350941907165008939158499972492879252252503167676009406286055822571510699627046468846604984550950796977828582164903709568930311275935309055335808567434253628489072705807658037339395935879588424882360489383056466086 9584768986612707841303804656548538826571416400035256225939457946313682716362524124542770046703534980260379795993750636855544489609865723334425131507185076463676712147463284879416094405823197444104368065646651017483740004013589913643918466050638993522707316815925367715975169638929807619893248999736993517927004503789528708231360481931003204516162674943189372710678987302592162258317298032546365336422390392292513674775894768785153112542255459449215954385989247010950341583321027569840218786379953763745610648738414315452700201596995784712564245549816389404966781461501544979842188147636360030857029642353500971223798264465824861545120482583147557413522385734208137980892611486348267920638931781804671755265250247083597283505155666323945864041517593209167402387614200000505328486680675489790109669822174140119766862676187438757286508817148263761180660815185629512357 8472250888902215639111049277368241615302333594824170433135982624469203015249911959878905708013357536144668853958752988953977394271681518683852336154699412503393447159811955561595596312875759483501240432356276961403010430464161511901469690060454853638652137024162268655046711012337212279343139512020900686285503011059935208794574029278801798075697807653461714031127286804236594291218959680411394673840497758598028165626091371875714501248588318268894887600283811452431480064178235325727143511775389315680669535687949805621692229778805028930312888893991671017828825919473931436408507902292311769105505897965164643707186636648764513260788807771067645145820736737795030277367940839315942244379357346400637273561649076266628292263829050241056336717430673886970937608073501525395064603439245422693490278227574006085263318920853280055917265958576172301003759726645068410860 5393253261464664527896256606653062743429095372743492783289922311233162272986935937054870008466906650118827975565450565496351178333466655955419447810362110666574022290305844794052177482049053282402030643116810328734984188879642004222880994001354489498564756317058892881048076237199249905386402294443689925209602212022816749463518434637332445069775447542737901012138054511051808929449003669855115565307979549821827781949219627335333568899321571587691992965832168266613020021889531161375403993002193091474487990858445816425650792443336075318437377881001303362141523170049331048444505139383680666084129996318468376291890393247574957168520346677915388070133530743433859227524433361617401882946022249124187173134350240101612596630519953331478565901270680524837972468316448407149009046135478648627137131227025042191039351076738027087669252669649863947417467664225553947376 3607840183832246168200315824237655789571215048066210933144334926035459938367069855101354632328520732137932320653386815296275270698200041568348239595598496682184300099074128309248367507731198730780133640136115987742181450588999836523265322164200895328094635190659090851622978933284385853692686831657353964233170681049257761877663223335953640759001417823708704849090908280763275315306403093270180102490388398792535093857702433773528539587802822615108443197099817779125921719631188820404903060789640348165582874884017484224013590948817752314080566838760712438335479272967827652193059223116465614323024236876882252385240313079774301107595350530213929758737740130748021324079019789887006128140721402245352275266563175169652071110331714540304086599916910286099933265532813185138938515702035244009619290262555816845389575063668023619553744355836396931832253129237013885363 5476998516135651325330590787627222953762858751745518392471298071297540880083682059148862631476055655461923567400917491122484990793479694180453430964024288737563480416635381940952893953237323691150665740630348187951927401164314426999259848677216759632055072685377883883165111960698090038433915080852455019023256566936728627061338737305905112921995917266054753057408196968524161550311519833378459278074098461508506454012848087958131368533250621698038715414599448146602800452534429276671753502434901176304706765037766054351325543240659611426733927756402509028074159206449504037997940318331951409174428596543816540372824302422731380268996968174472430844162744338716211725807403222496978994664039259058502285239359371341046610758391978813700921921719862851471485658512322739599991184789229756409868288113122421652973541603061697514421548355961621119096350033633458038678 9385926097667929488505161628794922189959225243314740846640382869470219995807610630489007526402864325814849444890005446809518282593725034257958738007477325093170318742410525968388492279183426937253067675842816873965099482489541201957084694854301867231360897115951506902510995468732884111703211914819561210994666088621023839169120201451774528215780124192888214736780458146547420623681147945893228712715226523069183656610613665326289682529901001869299105675928659583539045264345677004517660534919481198173089898102253621072594356905666474835159776465118341082687895160055202277828138403692231659877138455159349380729807945242841598521215092836581368238983132719438393887434759111754981519034147234176068949509124214095218195083385898484963656541335842818306533395911889395611953743503677425988586614289912557971063017581190956887904101133612402526529855241077747162575 0175911889198004494884350181120044934207528466350834141437606361937051613172338064872261881746360217862710885432186555460503952994831527946070440154892142889759440324912164544025846087769350411706151486390738920159775088621099650157980759824389518151487754622343610617727568376127992727940140934086922226433558386572117924026814466065455866437058504844319520134869321747972279095442628332267420975290598083648723070307356818181193367029359013617974068749068383217181133331083906630881009438783669831486112344897091191245622913373298037036639569416444230709404856980923086603262287005358982663277024725609059589022629033931397384150992761250164946207341097984188389585743823190012850962801317639688653580003552314241416744307198387715569953719786161829061821579912697438936307592447091388828740007770855978296723968612295905956427963444999030858927556307691660628849 4959957073682759695548667682890196721579744265434694951585319578104717497279138181467596458834314486214170587621462684443282979033967230508136436332733611334078894690163161052830017644256703308530454413494171649539296495546578077766706050956755356115965399937776066639985785638918687039074315976173532544891866016749554044634186071800325691472474502438377510994922658277314514972012310860167458329413369837724949963752020628731996598655802565990269465184698160920958009750123561789855536969843110869628304879499117008011687399961127088641108739629884240440452184446594931442121380915107581867848280505459437262929311951735104405928620200152109561124723676063072072627572899675812506690995705315104274273065087228232587562407929716247373014570819112239651618302155416189319437692457709656355505729136980747017101284325531778488479208307437734570209807703780139191501 6151021301853193474985751247029311740919034667859392221610279318035788998946803892183375507002622686474523389656806924888037247342980149097004271021174772500734757642154723949735717797933014459964530064722373872486374373916549128970084613638608049863568560164040517859926956936605890127213006466483165434838756706767318814807435620887647425195971354520749000728572193295755990218196846454069881021429586169411389801493306810467477909615239461988308024378676726361175542123752538216430541342057891225577727974743427333906478181496242785568879248815883499075539382574470967782755358309909141055723468168069945697323023018663772689545173049311367946304044435940153170673621349423721792995337797985992154299098831636642885116954267823791092763914187013785459000575652470186296549863010303297038500068278234294151256432911739416430210282998711558076085318646946432226860 6281580188965392531473930919262211618444566706505653445151512335678698845203684993807783696932968751928689677587621955419494143428465872614750603407400614539258017016322128917918719969818170751619038270460685334545847720453801472805862334959869811237203655088512689427632085017515010030291181626271194587492506516349317117582078215366281469871985875482243457510227993383010513024696820374506759822438576504414514849836031993482130981244508177487720812414459820803220097438241467902879886116061691627296470153685597525595029750821265483764445681735567217513892295271386803186746148194639749105176220509184663166261174324835442487674450020537178014917761125518421579663649134850051850440249712992333890248253818295609596156240527012232849471092890143670598236077958334020206153830527805722179114575839896094193118754396989004238100778946005498040973194906667174815228 2782586431525948178740165032168376928486295513405716262018075624397589106845964208612557836126356996953992601166212501744943394731514319333457756075134386790341660604705256776306883438957805769664638658476812497699202332973863541980602603281142645670711337328905123350454215238192647031175388236939914530463283614527309305699673081892124063990397271648612706612323562027182894666094276081077926422927031217971494281437485326398162682953710910765059918912408188593069203428850853391366614075304504736193029977167665708825113517149632397152360714882803762954753930367224683980533921802882292745617705472106693233359292303345139364153884192383143156711672945242109248182026431814869028064680000550655360940546183703357716102949774284704838979195437461323748465053099152239421179393379346478222792596691035094857777049909123758147028662380401734915649340394039134259543 4787562822943312945309856995329472133645597631338412772863467465159567709265742038578086887587449452538786204842549983469528218797654408451393650200831870460561667370431782151603840911070010031466204947267409971991814581429658820953663874439374231375155696655579316899646260673100079404336905041802284320228545462444695188428599366304464102410004916874926873420002159583213354002641031602822385945657573813480616199857642308350613788370332507083501260662493008183693358100848722450687207201712368476915582467105422710618918973372031993735380639419096647776074124921131830203088736061029767568479331295019056804047023532382196058543092896176062881835962331834559555906595036207439155183381928034305749695419592126011826720325761197372633505440830386956734249336845699920808749904840582496590690194752570813682426677561549347365571074257503937120800552771292824649393 8232822927011582824223215651294335285946050217941722920590970267619564527520661244275461777774473398472616256956628962493455571052772271559756497411071302408009196855547871821966187126881396434985239224990586422221043445601407401488550553409851969446268221180077556667450117831525941221927921057273612484805705308991092151064740958292894743282739646384167381739724038729633835342304193489500630751924208137769307711113297357873436424500384864351312810137212833954197215448228650737725474325078095920732561427757362213224620084940329148464041298244659653005267091263407350849443697220583720928403704104106635242035117603108482804648623921558343941601861075121203673073819892125608278982846032994030858737066655699827372008995552755987029735793466378844984525431761685976548745782557560272396771792085931259513479768768587601314959364458889791107919051810081406584113 6137866046321900737313379185878324661657312639296710161791093665257788764933060863081248406194722513155263163885386205008495598613502091859442204441121912884949909225596418335973585273480165594253896467066748182820234098578515566228110936982266068337219523518734008288820819293006280919555244286686048743995056832238724762463587351762152700561144763475693740926140132241864358122486274632391869795455295950585031248035975462902595794892335037623862306795993769853463068573645945583047309949637829649878331927667629320392168071118543456631578395237710524817013546328429101190099210149160000020265404814052781189565935645833108001944018213309347979148808994457285973707644736143123575325320707938625532153692032114547294586949224423938859666594224894339713912352299184599131325663671333300298723525960033767703654017245897473268442283870423228706020965254035125316028 9251360145136804877064084697921520446837443196176216680581236492039350940376793558775417832223071733080183727025493465269459373179347198722657760469172365922344768522217636511004141655833025271970345506327693335728586573668744044036602231455791667371325102954913609710093501596308404255840600040410569836432015185633177529334034872797478121475585261531967593412858324272460553427585144048739495862065055683811961106936994140939501264870156947884422159412763295792217885092627350362625146258773884176410107561219271347978778903556755377073707877768318063181849445387235650809585516917094256389229431449048189461604601079550023570713570067535284227235893838292820105321180300766374852647874546381787540756190293324566707774861531933062146647955768326367778895307693223628211809426207476373624715077556710309455172126190514732319409233121918402270692884363492837558982 0149952142404555385786775695719619774244884030949174951351513667732638268853745511392682423231225427991689910332563658064892836967265291356138464957572949509560323703719878072761303506621582939904610963459876550153636251369732105563239919108638185489906183973419507187720380488757811897482237206074098544909201298199402083653274660851559454541035792138762813271824293625963791971781529377242562239170408492490766501691990001484499650919063274327992859333521781652322753007444394449938205028889820284575728645217791896344010960034836988313681000438318858362549066761351756134997347434499893025077700741608023940530448819190625163153079876319957800436183245680252151104432420004376062300497272389416672617830669000325585068693470106149828824953599464265012932935479045023564791221566344858153164785798901191327316079696710112905453235502975518372566659320386977690575 9355825394989144411948629573487481077599533766707610888913527641592523682019840997711844707141298394267139205673293791588962782345005327119636976770289737713357769947097299023903436803429724311129240681815700417959323165911295361917318116642258995921700678862994609311816271530593654285730519735553676445028680184336485111495518776993342232965506409290451035282718995390977742009290896275109270880891018988287026728574449077419920161214102736515865743738539031478706721921124805694243685191327746462055784033873552743104784077484750190894835735150866185273224099320855608054576545703941460254673442783640419517505385409868166763493358044043189653156484040298091487717951394739420160934399775997659944978502449637917511365529161168538732985559061806004519659001353357658787869462950966778906182023421131831882608307561263128956443340932453535008192662495985532006644 6573152918374916498290378807084924580010945265303709881472766471475705766848993096600824608431796593192218822516525971556964635582360134559058716762131002006342956245821149593728302314145178588919322177642291109464811561561897251888784406009902216509456672173469343147092868980548271247551158716639285272184634211881413610385381349709282567150599622645485792239754400730445700168514451485279814570300019501001300511873414266616911245727005506045658299257715468056470005018823445919432066101217412594482544274604645871238224181482504331723671767444723781848383255660850969863626137806859826006809951916585179425705997164672458101328773910957957613873789721525368291915081594050865307834157102140656652311213748900271691054068643009596920956830248964866890299025546020279442269579235418086379322887835555623393977310277123865271796862745579465424080835243142388412262 1306324497040137309891245245577370208137072218002293424251180230008232099738274350844032844640320915771992361201152518986354654380152655034488326603184222651903581347178332467101328288560206923695043425487121074066153391482688773053427763347370855771727407160617212782460462383664346516394466605386028567986746244338677402213483572088948436910603203312799230394595412560010052987005381460747749731343201743326070449726066716587071910897075314159348512806847989942348340109462811166568001170051589844089849000622484810858531753756843190720486818429170791422698502324801284161984226984647770757241616582965861270554421946374599082808434543811708209805104280855366598360650123944035070041202989160186906622387085294546699288609700894814806949027411849951454849605782627684909547548676695812277208730756390841625040619735412557919161702114086957418216568786752434637164 2394708197989419245225716951944195105326633881770623832077909336766491215420712604124179088314656429815605219120469277275231460167522454809160003902924927654628179963751142758464175897100747417131698366648432495008493155970726528677508427554461862377128616993210736976776855455841061927199164989127171369758035392584533460080430085899780928403845836846345690723791185651239922385021309484696343870158394343906602017290653722202639570249690208753048885893601115783446121738107636973839548444113542892843782145229751750083127852519779171937081817823415641107981250190329116763935762889780727318515387592924480886178989601250330175067261221913079878295588847564546206376283644287047661466648053345384169395280731767214858464828679947925367323559813599914166090888848239628573879741498975617573608198977661505151576613659103778235519353470339978720524227227933136029589 8245320746212382842516936680343500510389920330844553686595307252640623122384342887326038071003181228134506946081896161854710958880214158951118250686762949223567302408174800016748612301792522360049923319138514112244384316511389031726064037244235861061336834917753240737483775397806067851034098668299751140281399282696012826442337298564703679435045111642099845626809734619550147552230427517156402375350754603872215162303692929571378379201421181859579252440639121771864724171578577429847072684973074916347150006654142711213044344289008569949061358871701401196811205161267554480281453459751357387189469662265567943880325548838741700889457148168456887794925971888925278472391933142930603834695372723470073677415377944052032642861755296918854433789351493143327505184877120423288784842999818799802836513420867386783933541454639397092556953890526631650151757014448307716010 1482417809765032697519517297466662967465233302346863796774827357549203018581147533193842829067968032318724839393705797374958727050283716457329917494175641167012344282810395570863599298576527140204569733893630578617628927698940320073439798517989314946761603655576077204953893063849324563831237666374090893342499799444396166339266088604673550003551484686505713123222125154086665303196012209494880112499040937431639218629242799871703280864666292117432196310024586272023915669560456969111572303231793283524808318863527252504611777087933585956106770272509284560710324433139583242897800469061582408735622186277852848158713029802038686967096164220494447104408575180867694723815269410779044189656661129644697259252010160620248158304104802982811724177212967011241546044329324284177905625668691708425983467877303281111864420336464270156755389058397718048114935409885274241186 2953913706537324704872186814942294372422332300756250259191182861332112880252749744713713100139926458525729728623159116959031370122003299938549125731880723487091333598197977498508821115216202240890625504686553501773127319601301705654217769806631062052765745462681162192173883787805970161555792365028354448145633982984794887259868498817203347868763324638059790778807565546771432002099694176567460700469607040864619571547485153100999833392939455002359431103330236340310396653389397700325164840382079372350661664215553288127651649298380425237730762319023439764030673570889076043406871449190066943112807690939915207790835930371396752082961042525326287090812148972253692896876781766603956624988470503268797002931515367917277165768493026616967072894375464781823672919954860551206369928137167320322620240873327652271637706135771627444880978129847751581625073484332984552657 7029258731615122121496172091420447899554314709614838412775170768189130727716498443273416814220038360830376649819671629503125362535316098624349222429672519504820520624656410084887058777788084801255838542322128730287035386902842960982360563534713043889546421267839630400321419139567260691885137677415945761864840376007933538942384793936051365689993437671399436599002436244096739132020852127164167101800420478009794112308791186744169681121751036041540463970189973222204003536181938827349284123136363413352019802306020549656918085371610572585912671903298867532122502337083274707683390600467270744193509772940662799536915853551738371759420664905445651921767380792022943842808358516345850566856995408144670805889945120085688806687917939503603932077795663186437110733587915244643031670902297238686146804303922998994717429647604045621893057846978545103793837042814161479977 9586480814025436302155303507060166319914465752596422125945616374302039533050682384921177200134284271910249413062774910273265796745084089421484769129874772300440561566672107867807563395471318988871466239023004431037024840616365325113049907192057891638397070163362419849561891073587047307113341655145990943655272199393350698906505607839626504154804516761072258206999296848839371606243076808765423996253143259721330577562717229860419047385642122295551353646078628586632257636714418034377809223334049257216043880427906624877806918184996322425449581777512043471228704265133138199900200158191488457914226666083412267391854492304045312953040576255610624461384971168623994749779764842316167859493116762081686489018473056800207881910298609337485182281172975584448500914897658729948964813944924830393730271724936527332651983516207684713615240757568781626071277136401421090958 0768797219724309654260814069099315373460974626297508060700600784125207083341925765620444828939647387768776073433913326714720644251561260081537874201851221215040178178163891336916683398493239383716042622258116357549372924902797625516843201601843793535481046941922833525753621663298333441353600362953415310291178476558262870594318007761192186515286567030218516888949644326078503726092126390272970745459153083268648867511460315003873189249114302945291069063897261890124637135348191907343531544948865620362693767975853009728282379462701485677454079109460563611477703960399550941838374792286711545896738037299316946703185633681326479099056402405640178387688409232695772096241899743707609636623043812213665460682883968878899603078506350255130388604432228308647174930788233092744079238527876880073878696718215042730480302470316093439821324217139819315237894463125928870416 8499376706213317156456926480559996558305620877194513069120167893431363817027094094357042758036357454219083478051569341580751725039765740268914730633262524188042149199437267127521130402790745606464704890367439898808616404316098497024154777007602413435918551457170028842653122980409898402836587810067757178566859429367723720754011216718738180943614751618742156900779372042347489808862227699601731331190445849219553994851809037395143096720126053807794625372590649117012864099939254323562540154743351603685195130584542045747509721294096070516290851457583449518306326380089991534178128837351908691525585325735880921376116668791561589320064956383790297946251029906696018943958597425548009611643309371466791173490550992240913951402723420860046386089309787531850538986454640075177681069502941717962552435631736917095705645959185073584950430539058791992481917428948727444650 0430780419232091469922705685127419661444149236740274004747935680669445233357668549220327030005724878046177161952137421285557158648290809504521121980778597714185522450924907424788167742578197767079752897882705688907345491860022193053117943127487935641276447518927255183178944204042568183529024124729136620405161424909290506696299389165441570634201922094131734475544410299808512198091148206367097277079867850031186421144222376412703817054536470539831245666101287661700801120599379277464934188789726280571504112400384209407971286564521814714003717949251013551493835533977302772402771234330926376572698789068032255062695025114192289450873410807823948310851291205421840931113716788861160747227212093744453809070467389834300260760311215871817755166698558848452737761901375019083024146271471769838005358831909976291833787130966671041487454418759648019555127365617746835394 0696444599329244505596934076685840587166018242310410273994722456528566723966344234309434128765573801327228751120850983346113507051331514030758421170861717719291906804931688592138325928212083270191713750871328963654476025314627549668988822658557287585607932942521561598021924670216895282399582113294169775457812854032703698261579152591887883570449189123918847964870514955035025081560137162939622407813994656210222411653240425844770610090867486545580445120836563212707141943419468256309169645932683479650897404045581520841191944187367424334290567372369128555410875732265516785121936435478388158614439213080579599346464873926731871047740280433533149060480441987238487536372335007879679030171453864945092892136170810506962700749356304733929783528937853948803963189173993680128975631009084447665711472552953031072921811834716202742482280853712165658607432553264110105830 7836531362585692111024105846626605384994402816879330148130965882855733368645628885879724366992026966100443123044147747302893800071031186361062587761532468984032525080106886872831629158704414316138948070769581237417338481863356857197969117385655022518854731110269010436551029866925961044914692113783495910458958270911217886312452313273261081201373522454477105407254945081453467049060976559986729725503658152113268221642250205009937143091554915749015232340844031848687414453502528532686668460847799018113476142667842719735621710754473799316049558231535759869117986187405554725355954754970075220657533974128052162364191100717369936999933299593520899478896736616144665818377257214801456248624892558978107740926877671630102523471125576130269542975382722288423391872248873135486820127222521201530395785274935595878646758364472173070886667855202746954364803412486047557846 2648629867663957888050453621715780297789607894028763243519227148591303172989409016963752848528238002676394831631280975118495350517340107279878581656707551587253351496212691342687012264141643460290115994356735934894172097319782749266013208550523447433353431001784491873024723190345490110491428770354500705847982385974225559381103896305413078197063167189285838494777808399624799197839793117204142345214565765213014801478582800016972142602587408215927681423898033337076942421525684674718720622612270408339762464866002507289263473396839718591820203949104077472205586950170147755762013338206714284714932494835486101913777198962904523630656547520946095730303157082215351593099823804385408985340874453989218873863732378226422778991086254971463156802329234826131501368006365080657326945327242336144643843051679018160929419602702464861559645061520208244717007534924090900090 0967161807830119889487850648936485216541269725649727287333566170794915433619722641539005612290410599109306112093818642630364958992324318161737685471650895714354291795061728738654222701382673499517843474806725581460635955788681352666428362887166932682024017888896401058955253298692993123453249445776843024587040966779513253372928705488150144349134962674208876669919481435854103720037942388619161073415694741232464714826304722313090052431398252157873227860955656073651809219558872249834875383074435413733943318819144780903683491985076162740290602375193583712480946885603116330137932535070320101356754404930417929920096896180721125551545297037482970219368242272702106514247104028653820827391697781421130371329564591490977223646345485579262254820054975904530292925633255376597052593008649771047622634507192634865323062609314643670678536248300857247199532664321617232987 1426843283886527549116408102221072020811708668277982982231400346685688998681548352479576696680968502953072703501587975610923780016301458035877960822226781074735820967564758204516324595119982752406535066117527276906264503849327211182533345653510705067927169036459797138618573061970541864994871359012509547046368934494903616920616745888230431480069321353729624052200223614166021744616569238996483009409165808963793723629016447512067092218929221081184647585780947395030909764789604313400927347776393821434460299976900825867029964953079263490968380064754833399945346150982931206877162641166888652476501595074072040337439403517322357155344361241522226843066541007227496719588638017088082653871204334231522902414788109863305077006147742768897102855073152220100370595804499168187207555079822113339604607809855479433288062352262436093334461832827709462226505690101413149953 2833887806223144070307085857537092311735231468260737838372689479641402795817414872350963494595173465948452178579541153763269463206713470729683021488932613510956539630381939433390903637065941627617384526775258583072327773617591193746742984805520630238346181102915906866448112384057839390473867742464240956514890777979282516734631268496593553809331207765275518865551232037423750540469012142404848252259448989574132174277016227320836654959992754661221944732461585004206843788875183891511702107011232574849210921122305095744620927629383174331984664727804851954070693463307410507218844529861999359669355212513982232036797803367570779544113367268087171005405048193308443023420008588158269825472537003543388820559774801329242881613769532952961829352885725318256883724616355106792085727458536443903925256579835375030832766071482245400123239348685247539097661139887524214468 9239314319461776068943237414579585628240489536995757136324298561929436494491157211960511141681054167096465586532999105268065006276533610422921817246309495819055997928998642649991439178847185628695573356422940765610192090601601731747469091670176949982275908879153744570374329478968469360354203463557138364189251982341274819974662226631876081734876551697961916265777446688551705621282455760546197166886298367833002304447155561157845697547456466345167846915944058503454828772725456710616075033576918282954080456490475027989790281105007677519553141158352663087920109614582353312343272811639913059862149748840106428897530013399444019880299898656338985570695253190419684327089559539074566900931158384512580120088763985644468817724200373519365615299392845482147147443642334459710583024853474536180405631382508327681054154646290850672314219366061652767397479952152622911759 1839476788163888591722534704146682907136473708063367143494174901219624352777930515071591601485498494415582974611486312422149337982347770820784561695252163670102871786228634128378334402658010863946383110849534103609328606926702489807543871235568106003150454287374385427216008147598745540287327957760273688501244615893721986420722482540853765731425673469967293384261843465070886926293905073546825704503509489537062027379018093198891067644524775387775564910487058884186318319013120509547692167741028022209735204223986065949228048845625069290127081312038553711957635430074222868973140069953471293309809967628005099262799964618197267707953530940917871621798745002923304444694774397799265759593180186005943401910658503796786997302597171263337590020831899229979789403795953484922713563985170756623488317887843571880194378657498658377417772092775833190392606713241436422862 4135931693622361675342805419321446141679394493859163422948238232295323485997327238897033083539573348861868324219431298444878509260828856664585500918333292648423184277343358810084077878349016194937199435375558682542500951857332428113673481919230739636024158474361967506376513908950022607794235197636289920755453077974068967319091346701207815363520223864333557431574221670924257538095513769959873828175001790100433179084565333611769069329970461013389236317803510494767070258701229108039534564454903334090871662997337256931591423222555055906392029509298907470431022790198505660179377016671026161149637003638716438981862890152442148878540845378569889803321371272329956561090307953025656796457081333824474855242216119498133812076536956273853216251358645992409331272180623468508219499144523081501135893465185673959231129260323730260085159148098722608926026883181494535212 0028829614870414547158765605952906913222061051922147239114577979858841105543847146142939052166170616106027657680432414339066512438103970025138454701669891087877762361528110665174750779601322103509203712521247272531867414098589989314235868762847376744484403607573633699648592106949185538561097247920698547571020374471506268644523208976152878001700174277789785307876171804034855005782391725558984319823744256663985209111925656983710504352956772189234526345673886376864566250720935837607805768238270913843942970260609827597295630331065926720494525014491324611036319848724192429531525772177633205547596968979987749173845842335210163064138646522349557013528798070662894378502038660611633634150625400095360248332932310661300271336233805970647893597724352843661193664160268505549113496661586214110049474407825782290662571272213789590807884588867527770023123017457130240552 2206260112611188014450983860036170610236382637198128804042952203279581380767205905477824504816757676147853333066177687161126968928256442777736268252630188906499250064233167427503648420723171702886236450154583145781109727137015167780531991640427069347006931589202929675756427766505824753103681508261109089126224394096365504580956487970191277168511150437620555620977301433160533410689694873625457598645178623371180655908215385829453869894335315076585565240136608522668894550397042180250495390507739807443713801547710945242427815490606839471177500866552746634698209782532054920055917060062349227739921884721319709463350048673220254850719721608516892119523765839642022046265199237562630575999411255081369417246915784072918697367362251508226305636203941344917765144137104906580421017506079845621199121283631562431205597445951425937181829997337658369827648263962936798815 3636475141565649569591616003113131954834789676437516587263607668446839700553453310154539648822520769774404670251072531596682218564883398353922721256738682120122625654084043474295373337990742446189083237145848998676868813337565341492373967792870527267123204503404317708997256740039688683613243670101038943081845527763087948099438885338201927431525904446368427766318140193279379096636125015280297496705366035091586784853635846233567954166741705524964121341898695784793343336505401349397744272577916922422816639902221856671877987177216824424118198235497050754157688546930192263835050798533398050760654995580478210528840537634023778176931067400317928590688108171596270131989497521436309790009571408770198341832895830969671436168907974631692464120140189295354928448823133127831920764611469482351168163150890104953190800548787274772844282519971199547833624019383017401105 9057473955622276609263534008242305821822494549974745246189261910913893581174792013584780071694511262973595393712165765424844419592957227277217865288078274200697790699839762857660280253993048518327234149527510332606918438170948430406753230410608127144660169272567798348181419977491691032504311382600908913090186270080413664154596015427611010641440831359825604153944996809082754110202281582643869030796406799319569005045148211391234076894066991210875297076117514664963982448879445356072397231497512778313996873558111856880835764041865949541581166145738186166780238024730268414143267015698094000147359627955356739866581149677927486976308271857454532101415303776749349050291260819509564222501536798052252383947739852239634471330310338694525666092440766531689422396781865222795065872179267672583323883528608330505619904705334494447784255158174071865428958084063076902195 4734410658670332097537649320957666072746828765949448510173428671425074363825620267825213128712019301569019840268235505981738591986002194650279971403647074838873291175691623870693327423218267314989427525945568300074311852416083543681082103418102319803446080924422864664737603751835820141987946791920735843978297066976638871763819935375697326427538982935397189836232765405801856211029632258227943596642596923668640071469408887402258246089688850581236644455201218547993327873481471406759667125259430190193813522398527731485404192426935436134919498225907320224767339687677635028604241063821707955611660780859214942395995782219044533643416339233138163774130247801426773052692319610474177356208904231378751702187193920727181227600662910920012074694329911159606391522788265270662317703208414648117977699834981997739158447457542638459246800344180794954088814926761551774236 3638389493164315099321181606381104203883016945311748554791607508112389352498884024099121954117786754095321909711912433134585958157100233166611293662657145184875468991743063903037765069010791732891799186784302964483695688315141221857079275809201531196455421051605460849012428990303399187246912847374041576097313186878792751884513436522032592054119940818130139162032439489431115075683071668426146209573269253742896908825425761816438062483628820551000700241981553704085138552242346617121520517700747515280324486124435848456477952559921969761482185182193895621448374721610124642152617828786188333822710477112021557232019965169100310838035838772637788893475117778270130391239560379422658481644480435547671341778944350900244636558674886513702850618883385943172384046542355755033358347228793770803187510636896064091505266798705913638156507524695774572401889705555750919378 5049447465677986334394735806205756695518675584957892697800591612850976618399249780012541008763428579270743438070252489292916574446606339884600703460385205068478921095977375178135145066951387234204616007173306293424158234410304568809239136638116126511774948241645565355237037066433137637899597193077025885621925661625794750904276451499433841754886981300729020561213396815797722140883208978943799339535433168794552744479513969389371202401234632639112501855025052203615906778687270659381361797398151882422383405543041391514550972710085882463573099086855756320634709879380304415983141804024065073597121998201778198629750345072782785249730363731050941323806879108799014190475556321120092048462077858439338700897507459727368831759934919040033868849247246325856289958987278349002047323589015951055191090354113099131090896494035478447461623055580640491180226547656580980830 4765632911103284138681288199891548741153576352457447807322300301482810072677987371417390080202622820454324626022272690833979743575061565671582237152042268288604892002617586535052326702264106126203840524878702539728425651661950323944267874874872766792931830346518631615451030764451832174785696696862406744654751917035607327354291133635331249623338824996922878858133394088330147822643915695393124550391490031031302317639857689203575270501295320541608955864210955064285129990094502713800700330429708292673872396250477146681510766811556834735169979775019506023189265525536735459306913700916984022855471812468277598738130312061770397948966785881147869940699521563533496033370265505950774789904556309321918138580583271480952945839321844875968211241272286839635085198367299837336611986412307807684809376692689243368962627089305073902441245291953845477951016823015818357786J (all 258,176 digits) 2606029069342871084260073695862620471049276616681033945865380849171190830086991466076764700249664068900182524787548378249884726506242569588571756832917637687633649348898763401143810584786030748403178989707474171645063720586276151520771138471297324416245409088239365246466097331656570383920988074645346657780958176890045470901461244544312393907778077864739546390302149138208420304414624473991160665107617891602600345086786391341191646650073268558072627799059173473555034012970763840408483294001584911166161107141970181218588399155607729458368656181376515285948268777834290598936641616334770457533522016022833143830572110869813849818133235959246445613682630364207964452624604119531351806862094759414942786966361988605181885260257038380189594757717041325287935113280364222569815365016408490350641865656674065308910247945988748500837213687520651813549786890130188766072, 7258759944984556714934046779339946465668929969332995433066935086229161148770040953627093573068114150800819002706856004726933281957294081802062845753640029236741765562853532084568278545076551380685316580696073614266190960181224795091698244295631749876726225021402990095802059176273162433400870808328072350029483866620089361666324415739027844644402272694095269555422961720379154674938737149984557523335047190226354591462951305939275547881907305276815462424550597466625879297232631196175978732244336967804759294095260678671777759998976882017977269459920529465682516833567745353511958286824087880771525268784328200934355445702870578192189669478446867863406813545037226754313086235981165796256113923923201933784941143851066303948778505269317927576736119069598026130046317511796643028501730450312308182468872499370416165489060042814474043760363154801052406035394387752865857 637 8000190329684224119567913043356774098047201750205116526924971611482206240556406244313516421003131738289777613659105982537354220607053528634397600449444071852619167126660398917117876715891701325270030729361691642043209358998413877555898033888179247365312264067597073061491625814774570286746565936049146341473436760759338536978265813858665734702015471461071083121933231696595048735061240001104920057148541167992666143952614393393890198795266016932781237993171803160247421161454460354401242048284649440565759847421997686135818669254550554944611732143370835401012247731397153864059575052371184059910060973073479040814075095806894565230241320511836644579785447278672781018368215642615604178674526595924880229853977881155453750029202315670746706426373517511832167328791012516931574126163255607547555288512186866394490450216061988419223944872864192605362125693702743386745 8084085158405651959694185442422439136924258779237546615345833853408953739898233428386083398389359313535987146376320065062839682466766072337916892093160437188433579109166090959311688817528509904176938466562252705865274186166311679626401879606989399312234405429165544239213166040728464141655548339294345743325128680251528549636385188696917429127481475942678355895013415770642642312248620752693475511369887931493470815691949974252207652127360677047395017647406255136441159932321076159895945723630087059369981680644266130397961836363314305305409837944672206809197971209036964374706973126678132748207503179901382280756193116584896056465204107602423304268398018892697777165021647587341648745149720100497542602740598124391862277402263179383478608720381505607857725545313711349958412371123414047807980489385656860452677178257739724237086471727226114600741583191734134377766 3521543551355089279417254977724345911685080330471177872995128712766598981842042118340720805054909188722533048928891263062286127244967830670891207810993880039154296273277108593296474829000777175926681418958231860028358725740401298719820409061725763841560930413708325581438358050094379229074940844260701824517286959086656007361652100467140082330674729626059522969705400227180398149417048741242403176795392348129917665572979541586606519755272769277515795909265091804671419931253040326908817168735597363796370677511765896116231319207265816788429587545433634953550926578459274388297865081074750060477507699502131750039192690516598303628645886937587234881718199311094765758585849264580166726757846768319633494164271009584590742407783353488569937674110010736587473046923846850642254544703820111816367118767306376969734227330984745538748263830929183898063596126552565297098 4504952732925638999437426487548019026569107243884340239281298866587630119487167879041707103729367742168736291667609844048591436205003257468886940383272881377028036378929482374599373968407782755259605814633748103949897756274479942127688293431222590841131132410842481537902090146160238656569922849802225696706623278112440450339542899952839708270966155977055340782690069663149536798687244032684970163420671950022735187456531055747377225808020793938912687650339184106910802803826119968035048210635224643411299962414336163470601413064021028587709680057023934055197157962966198907005101434212819989945433936427520194241507091149357155767614137650021156136365029519710757627338558391123260404157682093386809386837061370746593416369184166068676389372049484483139886797070727292045430014906566226124005464165070320017451674041233696763308403647020283628587878748309065106865 8540523701227603673173137682690834676706829626465314017152711554436151307883086631516027612759268780791456184538209254524357930763415361529664974667074865975311466226309742192934508168842364783731854775166443911116161984927116295802232584021555151803018544409554205976816501166399417330245428242715263528375659699567004448464733501997925983933978877096691555790276894545250727211931450659124328919644605506894772300848625930220315577602620626482564144649526986441056731542764376900486049157098337856973113022682517244884953510078652435423149250676601881126997335154735166900261970600211810823308963534686865728340895921379098168190864316841531954677151357790512475449931963936872027785480406680681668531168166623222769556935123340504691604291465258091513502495340200198427043276588814485093877695509514457944960225320065346254679987165648384108833199202456515532457 3018995219447071941053698707635092565529282497690886400286061626084758399023653713989958266388500118636067204468465060505334896379378667739703681299691490976025224990417358899751676606097852924441753007026956162947219342750110724986031088935704814214021548670913377879673933101228565996176541435209163156473612884611123706214858245103595160234893756492830749100860958840012864589087224521347761589762890506806060727577765059754441606894906204740296597911956645197008892417103474586946513224765080837221143775334206791734439085480352083032154822850000942119140922637247026443539563708930095047171168601363559312224376819731190333427035624113557060406694016463485780753016483272015549437474600574574099608177475661462117406422189375172881851542767563129658701513411070637560136225343303080896092833852112124880447445068729983972963825553163591256737300974002711822134 1695071635624601442400989823697000261593350655435563170629296346660856525341910209546238244790881688034295555260529326126673178962600766920912574509821559599307761174374627769867516964528959848105732708274034909392367788551956190968785870840422543508738277533239091837890837147399552295846677619108295073769397236132047364712072027763288725650712067571650290539470588742770651128466894795468368805332673593169433521334490313765454370702764018661487295899687136871237080953519134452797215635696400405720858267142734805807804170833084425746611935832723867777166491419904210759420482083476565463829010017954669078002694497153971148286018366599385548403604636016734821304798542259600243761638664503975773025278033970300953870880599090774071906883608072404573556984447159418189552449565411406869547335328387447325721510010441843821398594288370049172708183700577485494963 9725189485275413933483375905077500887583931939500659311324565270429221255333266589659934032157677555009825681214676275021006148901441337462738715467156538055596369291157504532345177047237749198353958955099383125542850253200807678631228379708680416926044225804195736591783620178291024853611622926430725112102519490009686953343796674755666291240728840346799446156775649720709045608094470260539321340106158381976543858477761008796550950988810780276304711870933552120591503343003660095196031153546181212523820193449264271260106541768947763464388208209989547132791168478990972062623449737858031259359562502157089768968958866247983214794164245256250689284672326916078721671434296167475758609613419122190419578066403694624485862121405508030947285514819426593629507289128999784184450034679467087432152782324555971349483823004456644634225706872855032977382152008216756984771 8224327967359160579228006214248123638151378524486265165587916427030418688811631818326518349965359520243383908785110227303858786960099856825649591211662515658311148034398723409671824001496076992721742660524333098914817549472333127644017611568460433886363798267493092201724061019256498254418809050684073950088444088910393347806619893245265380804870575749682099508067019669963064299116616089351209615040901356475036173615562847558718399465533560281675111662151616716834777384172468586464337974957004897059035249348980339335127363354011861970321167060583140488023786638956760093735434099152455151415959048776876416684455820981528477582408499490261295943661089111615185476416338403386249444627846634090171569390069169727191725175377921609555201483905116959468729920079495718114516842600023416932309607090908962540457928126812220493713369271212292095761102373963681522228 0741467153993300367917738518426095683381527782585405307307235230685648044595361669098206008240558589543945993448564739077104598941150238034855510797403743211842254739281120593159065354005876302482636674510925183509400166001019911700062509929026048730171602178742487156549963909405218086694471205731827740449130795648590268131466805927336167163869687505855029103337335942517769874761655297603127848298829409362975686285404465400062077998121686982972865303464829948081359846473599759398709308156594859384190190252889948704532103060296672472429684866485164281647679123074485387690917183106336754614261147583026403003766875051439980895499713082732139499730105496624704378307253502109666480125884905474346949277390512028724725621202497184355568767360559364878549274579175822762129262849645789088439498569402520260687279599671872028442601176162059687694704084662742505931 0112650276702989120609164976816790820506555078379210181550462846934713524696869605233998284462525842668395896264740784003191241253181528767636740877973156670558943392122981559331866442947242344664613329751199754031774998295596651538898889431699803141461812786574348618709691970283026063895364220244699713729301281389512452199466036565780529907012624901155450613090659249590683818014811633290556733187932543915732885007239901210187221617869153380984880482898086096519178718214657739428593259167936328294522200589911494335026621243233893743875046509570612854584553888813018027442929860391608699118056198621214034652679887910578389696123724883596449038648124687615407947093873999282122247126639105665228917919870253782392194694753998775454875256086169074974455407353144425420696339085191405724454283772510545930109075176391583016744336257682885068676255324996686681514 8282467805152226801605242151576097815636341723689989342273515468088089401197001727096071309284204952837146672219780542226743914783384704938419745121229968425550444429954765150308679916654519368762628589962893483613398389580139920070758730073427230093011718408414559636271847673390444286194274593364852841149158353583116100039534082253541825686512284423715072040848134828534363018653898837393695281772510635608852124447442488661889922001258567589301611013301190403962208726250953873467680096513217648114679773467890740416184110597658725663013212608594723630471045578418736675598396860283574815283478690578371523856166634573993927223047129265282768987595372677900650765412491110293129375756296983963471525875991188373683448746837349743001278687180523443172805234246817488081161202362140567595299957210822717513252663338697785200163936937065985187817300051606371955492 2309525404334580451394749811533443269944757982930233766083220631317771350979772737336677171553293826446188308221442543467674141775105834202953124304644569552523238336754169895137947299226698428543441324543377870471578642159619343616111134080547636350480057281420535941312080602911148013515901236016835105985960974668676979562874087250691652282458579204820359417120907246769919306531312435671897920343256606746420143976611439075638885670258648999757777701067640176042121648639882222628047346007822806190537385701450341298934797633499408824104774250020051987509840404842674705649470868979411664761709958835766882934222364772252836722405832033912136045957752156605607601274449315958723186972756026861404889207742306900670773607049865322568582930406041320475764899143511880523047246487245419529296159655819367705509385595609301313970026543246158545830031320117034461122 4847519780620410252889354307819618970392367243296338985357543092124732621177622571744856461251876293612596657656343576062356779724682937663824898653906976537200994748409311031094953270239070225305248692708859224642426830269015380209086216518380864553672350477405645810445012188904891901846982822942191930061899665114449925239060811060823659824326863240129010669256351889560201035725310652483143521842622266414483822862943970159597654610200338313219652791479499731949577296319480479379548622597463120477193587896706032672857378735457925184428997995261265900190669023912813414839001016551107693695599258333177074986356537079189685303247392929293392899983188932876005161040906748177483088885554330265735208126926370470030602671920998928548371723337170474053848038900466119939080888166863896487415467987671640673640306342808696030223689235218967962634196217183725724933 1515686566177558415683217090529619829292683492240965788484279834060139126116958084950860710583692770421171198063912829726283076332732433889663677670235779322838933680874220628051372722064201004787920318617340753374120415692274845551505333984655933234185846195646622213992655508781042892734203680027331348292253120839798033657307546830854070022065635627115459619915467485566789396191603178216870062597339920089314903446690278637176622790487472197205876566307096819707988722449388305438032007009113751449554180155498951597122475363334431401398445421780374649703419447297785914733595153270005655396126323083480013558698197673451463816018742417143263783111234464325897449814581739794698649388608970178950196215510214772482564736789329640115936251462637180578845464817580155662948239117354532149763573626236307257832829388168102320217265424933349017970730088672968977188 3263812810301418668226008044818952807221388459110240404458296404115938745078827610872825350246463903261432895678450600812912435603806251065991843703412380742501573989584197995188391173304455692178770883427424490609577818769966065056434177671323713250689945473574557026018416771399812105070272917241731484793421563561382227166919115638414049782650471067837133587701319719665082611487589962476652947563835245874021361698966178919274850594620481733369735585971728030060248310242755123350646752020122642654855161521603503823770326580441503578482493447447188614232046309982485359492278890824392118463501657412612118218110323052838195931542828970149311401630644239552236753330320668275572171406672863931700479805162584093699987442602248025911885764153143538827441898484304012397434479057104629869606815232223581522290895241671685963099931488868525346463481115803152354022 2938508798304770526573486640888398935453308119988586217737880024469128999205198086823211074786741969972770331554243148394956770589978299647314405137221293072490335793964223636749590547335175269309221106161031871387760072860629406202454735738508639535158664877605940904877500778925539215473775576950081526182049502087623113985445445387023931538728904115888972952752855453707706321169264952139749451697404486467072130979310042152854493808695687470283470266037510004221315441673315195387708537141059633190008853493959494476043330257575655289645285504827062587990927179108788270370659134533414416579101668221356223034792871334537626643448907570491635697143910990127352065200858500227127566307094547843182193107046327473457164616462327490958322129676058493978450221089152096263253308753390595261101224325293088503700545822463878812157327598464183106538461629888427625136 0510033729593378118554901185063674832571045167690193688766050850971265060598938116782785872559274150914118042261483435318230451772471531660790576250058938499433223992095568287163055145838218499969283794306380585471957890140680257922558909159633858173666187565836701541950073448971563745157768255176057706952760509377725278217801188088990252695319843589498865166777326578858491828482168736154465818906221316002401155229607830396250893812188788590153633339644294217984494430487635828087711023311060291052938503001982101887730515020190071459395915970744132339600260189539522811646242843127561044846507388358142989961591502623304909996047332348447972797060849817167798052853281745404221181787470051747533927023735647311749546498222244322409392999203546411422418964439777847589478898337184580118104853038857311482912527921297267660766474857639503447309721884624407113122 7371828522292247548151988918542411322595926916325009167248788611542514855471709928347525352568348737459743885017912165782678048817044931106544033789873239867953177592002436115191140726176561718861446103095050488788009682520363576997162388400060547385053135363752001929401983822715430689865635890107860201325634912323649833644998026697506375375720030567379628762570813055342417780850573968568623304443626405132030368533038124161016117256001806475687845713143246751332115364768575823356084177360782545321893536146669024739073379424590347968160321988007449535132803419684128605206440476630715324266322140906017727574251959194211449267798490424306586471640299737637054265625395486319244792496034178582402952423719908947134964273523233014130620329445672345323829168484128769042409469435627997841005757950823472266598889519339930456007776039995901756966992349075075335801 8126434218287500325155360634297045376013908472179499126035954130539331652052271552696448220176829404935109765140780148974917589754013201099749176565212302260707701953567748809500196575229494227635930707550713241138147491278381368660282907795420825114258771820659025462002940121884930326823516454277115901759887614301217113748221081996101636308654016007229663168574921870882002539038212580061050760189947557593457636365199345560758502904317232491735700944140646266859690049249568129205984757928088639116822049188152087929913666961395153544889788390647111757577253448915865607673462970563997864859063926283967841104227163185263373754167296956352118280475019597291628328806947551323471430182539436424459285618022197365128275492436000938642305828142520649444428916989034687253578951634574526313950508034875198651084022253627423856880834371063608087605675852658108046867 4886556157237955163388984414589902360274508185411262902041885964442254588083497179707133645418280213189316804146638211798674799452213663314109206491959083231536994297520177811592817707447013942268760556682144771141221251332566180741458464737650955726934641313664478284828608897778245375451978017438978747684747731223550244679023595258481936736458826461051126750350747750994408742206723205453049285282812662363516399906420064976025978219710788595866154295733338627558398242751661875085632608521991975849458018226019387726686492498002174459272166828674032707602820736870570673722191202511275240674570427929883436249096350535265845831893380020394247841464978816822195270380725643629208137724334261307089397051693199121942804862192949551490828763177044662595098537983326849595646189574946277251500095356879389578405591720120725657918317281253614323821065889555212968103 9590660169738692472308926780187512203702660692026776127628173974415679972208354450242839318260277990831677964529176986017020987362528618485819702683729612148924254500211775313946104557613424745717943517925669216996113187733172185593956758725446141554823322617772078809241607463211689123770969994814844958697201550970944344002603895481504103551082834561997605749990273416600780210153633118577699599602498528656281798986946430366327943448402534255778475691097985445130974215064517677926639828381428922165036281527759122167881484654717437362748229577990878937760603410633712421945787444599801456706467092067382879267507450936238022381844484846015001055305590224364701596309373738674957773504027996042447720335603882355847565858615849061059262632381137357196386965433178666113801086046763619394059693382484342665930378466905752453015459476141142393832283694859127023404 2582374007634615241354729185068861471364088225719951880298655518426107424838883601261924114037717598461023082061426622552191397198828211530326613902686228042015053095907739680056207279402276803781715575676387459882799117337783788568613275005405415802843568108546968478210462426826069261189187650656168996684007664605476081073698830054350459254918576715715630828230584737831877349827140941792946133836292387733698550065040034839093980969055618091100951888060374840947692562427842695940165143574912308884261897792940027421093295485837159917227133484783150339899332971411981936334702583511619422840983365491929748214218403617039101439497622358421248483493720024680270325867730034713288493169919104707976113872938487547103615096706865373494546531126470597309228202364199256068603504479460500811132533641315415530100068820186023815217744226895378669874392522369510434306 8990818453255425903078265574151581372697123715142924794201425244938650234335649829909410248273776333301408887099793846371564549195815549664471373521171804190880651368452399092246967011833202301947453076479528005977046193989268713471793535274750307336180081304469631577582124120991125159853233401765133221719221013530950345056809497944951091343741960439539292802046014877948362415404662137466861954389918468446581478177602826721468812314909630256839100064434027906994217593375109232149972358210679020026747691456590475937954647068406491310067818927815528938986101260610570410086808228890714770705227698338805157008568443097498052815380449896821431903024628490589858209799964095134507777848944952114118119039580646297863376230369743017519486151489120017697710338977245693240718426443359577322272735586280346065299235709586038004168966430726319387379612428819676808812 2503643222713008375557403247184920996630406313757563804250736759992412804572233455533351814315585842704506167062297589387441642474358953679327690148973331055739046911470638464960646998034443555125610460473630249016897563894426338769380918640877793389048075677602142400817939204320990162081381727259018322879985719926774068591578990774827280717178182708023028429849391795450985128221675039606885101527356929835665845894566061889230312338193743218265943121246701230454104915488421967565565519278987958966994614495634808464003220841801585549634692808318264184675731249404739115629443297289167623771596640641481085201728317031034996547856754209385327550512887951116702685676183311977424608583926346770317245958060133145496109739004455031325384036758710835407914328520381921947033965058079303941135062755575844109857183721114259670138412815111348402354147460903692526289 3478276707079837397777098479420587713495703831495703159452576162543766461199104627180972574790350836502738213202965686504752773098126703392767752990818877578844860918049867555543293187652453220384787363810111415418923528097718279838429828322176695769676811216758837812558342214898076276614831090906169376951717484065607594842414775449847071513081101021360625256050833788968327992314112940981365354351381780485175699094119347476314965931571021687434449263661199116157552036334013461311784633706136179756092190039359242525305262618327145643542995544241872760720350812278492252718196321726232565459983055281453517653831831705172932658604975785738085079407230420500779424822244861201117857894160292915403263755665266531772347534813783397310547118039113131902337552399192033706897913640175396803828131971759137985087483847286258732131096322346552016944147275371795821445 6619799097629412476002203330339999467999488000440180621502092882833202435949273782705353042930664215437153534748528485794427451654071046442195748578911159232186558343971968151387505360772570800101096867187348701186731771243185888591473779768957836968975717525385741397927131690679880043854078427070480239484851720262406693544446120577815136610888563783048050282074636064410806419274493865098757032402240147648355994913676817585320784632592012355792593945756079178534829354679705631252115397240946169794818438670480652354198867406436722100645408411745765466766164780045258704715521447941111001174163215740632474514280444684170291942973192123588570653796115874915553917535346631749971795091549825082210698787113370567393027028458263849064473429081560500649136857943914996543622244986282657903760520911796702864179091396462740773133047916220132043837767503394959697922 2833473746258849909030797543486270838548581919576020549017316329433250581813510435638185871072632729288994753107666843210208471229482792886724642882824991150471967441272911279015063630077681246786638892174559474908722864536142502890499900206964597004112015496127055605597097704667065227209603222891644042766315112577779360065348009092252174326743129699139377394792175701372816154482564241522192979908833514796799817435174961223543221840423316412332024778172595032902085058002516245838338900045999979529142521703112097521953942991355036084029221920853368164322266837243160190232586426776779089041042926856846686792696318909378043890104056912613277937303205018052459956703112990347155664633708479063494171365404538358462420160765896641302832488771135544705626221291767169900725715360346677439929806356739893264557617981761401704983829493521492702255002729355224708310 1089621320885473071468700133821007910615515105025811630836322412781531505486858589690406453780910598695264199082509982126021295481176435667909030508241712509907700069157532383903161149638437334014746517808756238032080700952522899851710657208477219441764961205947072788214036159204318411011801611215019515521147307734153442881555611552346256929146194074984249439796346423008533709732937986807442503656801012665738304664883383255239430814333014664205223988289538438827249272310411488582629373083389471389583970490339068931667550290923536244131966296157265654186362882255155745988478066847274250094225247106198136430540169267397346955665138084095214343079145014878516735753640114357555405602345452808608395757336119811195981770271926247152553759647928569710242403718269906534937453685546001345833083482625925216770762781342462477792136877393336137141059272980731890479 0456651225405663496219457998231126917801507150208041045884222567478482083804655880901583937829474535710680846490718892518034774667857895793652930753089611529851294615360662146518135152831850801197171130870192044652924654833597782320128319267383190822776096356517811729371435538569536800700698196807902985109557193453331960272285202838824704673440595233274487007319173596143206551454139229826025883128822797377867522125720628265231683883589044296364183613185989943434114426476309386333239726695577489489224288409303000872114489803975979762438123411871131954269522187724657620052651753024752968479786074182378516413327398258476743147507448344290915842863958874429702468731553497669430686631559206598603251730304057709630216903719151942120682993966989497179773862040267087888695053488909160502704572643400074909764353995383048714734213977931794981428193984760311334959 4417278025398367298063463179134158571557501993476278771900142236384760323819535968111990579540131029116425578058655551003175183701817549058455475006578823814537447576258386905894967232997467028155324119569805366358871110663498019177487256004712945931596727175611254564690574487540226821675904717077132943469245918969596613667430461539009039894753428604373859081120699776714401912380265603702479506342795635013206850557482969264155830929151433410028578411104227759094102196129604403968894429844556593291711203673287089111631292757556355867558129506855980429988828840034904445265782277644854767616017340554842552290882664479316834144086345950369936378915690955824049666552112561203570152826419486998086426346789533636992869994545059103069420662104361316437476024968287084940774396251967064933527645050935358226294223675218791342016404250669071920816296645624139428429 9938418825437111170752074121449287589453568815173131687943558328102292847623323182507829046670646330359910807504653034595073156055599649974617186131905912957562519751417834068348055970936852679604557267032115102392622328260099515221716652549563139562165493995400725049917576200245991332776429367845098213275904058618393928279165155011397511071576707529831427468655362068239468669863582646776671476040066543340491670925822806169800303178267016417721509113211078992940789355271426548688408646920864189284353607268222145707795366769773763966672139156030203465049705003899088898014060551289767126171407215568592742848657537312587541131238514693648136421302836985266209489851631065184996832938624897697644168089377301865019569028534679420965193673601767955692006320687822639291810681064946237718848160285484602050860213840983937778558065008626000555780802763773891863626 7515610038854552067894408930825447502524809643084118003921423295128920366716366711643506969607579745200779206156702211591305529597466646828284970869303771371846106425499775951465876763045378401580611344015810830982136741728564547248570295734243852274379577928954945951729109289408380378854531380987983386535190608980684773230538345185252278780512657652975509308768057033731707963276856620238647108989042107727163542940113065594848106180763925009023060676422499983312485673352086629885260732487369383156693814014928171097629061335586443992010135289005849222903023648545144455918501597319659998695367069846116523298554109102265043134146784235621733535046562601309375527458718020329307122134027698540838267457991693043230148508663670917389869444497088262835738350528512570372544570346107064927883257813745960235012344890148678677472165738187340423150130416011768871112 8369727234371257722119571564311087125149281300546645754695499549379519926500497660581980294505520885743403177963789289931353315754039681775446914081880137129021533488690531181641646945328638452118271012422987676193118226453630860884106702424510155527789220769784309914931557721206328871422250037148763694041040862244155878412206414383689065537268046480125116080291323610231695890322100903857677202461221960986750249223192374127497002956350481267424214515813139311724459476141852916404106109599167991624276687283175810245215139578528344017237754055317510112381094146323112675961184839571172709715437193772962326988765528983587279913794010292200226064280118527793498507650656326938036926012780892544982834290694615304425669514166688250632854437859431535888565570367168568264407629848934278994270884709806402243377106888223211623161492135832010246059365942591359654949 3941483906207257402979618883821084768031712879109986404916202486617636668010197618990794976489478296149973953623781403488117352641121359282761694392112582899145765211406283632459196705373261078260955712698347949319284921516305161724694324037897959957205345627587720606263046374821696199384929244624805108367405039091043246760357179356195418430018275885068557056958564941756690520091576786460730572653786662831260432517223865716869586965113466119821384612003083498309690555453701707655030475514273420566692410435767500015614808896793949931354608453509292448653183343492633422310198548426257485906636580958175285946414905329833221448700564875488266628340029109128530621924461241185782433742425566499206502000887375365140846533442933176886272658121386932314130145353334355189005945210911627200696389947891408055725542706714794573404507859732052823989619343003260328761 5413337535320971396025335168066044795461334018451020502919102722365260429732933081090828733182854939776641140370028676877207208167065220275339688409391280458893138890939097956971834053689562844260793853578646158506830724456506054283748310993126432189736986126607055755146048400193318620422181032404888488274051382380449414350504170698735225834593111210754922679577760348477748690070614792901042302401779065174779944895403758308267731206730607863259670370123344458351819744672925493138164655458758994918340615697688667727766240796051727374165270405981217808585010568344462567330692015904255657989423942115960701218044819775107082593012027025418530297589231333275202658534449159530862065425919466040304797084514379856982954015977160271923499812226999987499339462786906690569577692533816428704572674287875681328626530869077867651803420101240345307418673465821465859012 0229330566318696524384025545540289724435969347212114179706400467402753294475991772039375837459841630932148245974394358653745317332772149949009749008626303996393417955102918911204997855823544744062772259783635608339454065111001000778345187523494383226165375544131897213616559524455172457201073887047121942093660694276835372940287828916048537051158882384493812671735346959064905192549953976721267237212969573936581380938132146545712681375390990112252731571761475504100786534013603013369291598962810334009042530062720761257630775127417614108485187335092735137100255648534070525099051551249564304039467831354034705485991891442319332860483300152896317568428759030677852779154601210565447401381030521498117707950738648813048129053796677772329434456184462702044565800533082202571523216810556164699161368324722426610747756738233452751802019799282608006396257566192717678533 5932482412857617819014068082298798973271254370586494020554384777866719276801349586229827348740420553886326422615474509347235645245309293416712229591048853266841349152294023170110387207885979436362348954422870659043638524475483606677976150529675215308580109041832617857530035308840305652495162038691267315900996842839329839360518354153529120123976211379956702366846570448239785289431613656885465935572778921474509171129304808103412685042246506550032770102532548193489428713830906683317238847608039772039504561248498128898205723183890767613764367578547294750146820434899872587861656819737514802482233747555397506420267572022583163951630493323237349395388233375123908522607278815104653492084904828327410159623455499245498526652831630037264399523265070721518846754157862069542207027634413200020644002998246330890534742064053916765918119075871541922098749990881606535741 1668823982254700437324867278519450596296696234735613515660004429786078185842847384083681476599129707541108303683501663441929249823854578345964566988830866805373233719208959851384820233288470972360160001856710678111646503358939197284099874127207171500414825307457274723048869446417468553262458456913947795988792523735996487945581968713901506743798615122179817869309465193559594948140103037963422553028519785481797246330918177706226177965041606424965845084497851703321624353996581836348712023509021057703804795862723758679811103281769677629015931920659773222172262730834812483939932301879958468507237675319830639025401215825909475976495826694069522897033702922955524916666472404920807132543789510099120609241902000462496991505141472903546968496403834893821230072632648445929626524472574234835779616722947844596369437619877745554508071850155629255261903955984178567392 0786076245261789218217467485898418582385581174247712306380967911888112690693563337497470065456465821978429460721601147413810471488551306155037404577546814537521920310757649895349494173885783832430698325042661662427050690566487985636142136668077719555954214759638895028760182601648345649330171193208068555514989996130907755393794702487969244365185711508474761020163049997262518243836631614087228784202454785305043075221982720379179057302781140590555609596681123824970426845597988356230058092664385635219664358088066026860392226209684532350522165263130863033247865130818134234986524322066878256368011744046902107821140335101238577197987282793913412816697481101890977135151065580851678452106468607646668206024203852303099993507799428036048930451356353260448744410194009563142146146317634141871076566471163918356225060143924489989721932218942128275916398167645638713869 0618024868638639822720674531960330946943670969292642200457589569856562472558386752571003111824599822992445507570989946239025212563944358909515619210481270764163169209635066900621894579090091501667781492652406566468125407021152214888571791731213305010342844578147023916554518137955315846703200964541442971066677564105794949836814878763958344547243202644325044448641874567256274552233872118691324613161365644576464522628913858228838761316035433368243486568885518721465617293513640284253537723952771108295889154186506753832835909881610555252145055148591927563876189315394102603211211732917921967089730752157079132560103819035881951746070426680324025536405802643492010351354007217905704934314869978192068689571841622663057831733933928316452912245608114160374053364744456000705748788354521576516980233435829619129300608786326977201685086364017642457772742269954030888655 8575632076634571600201552292629729112493826592522841871817494048317090061157938798099785420910308005591338441834023527751333704790905291455310129885957001823807438061390353494031546902834095789251976267771707750608647197749662639892851337292235844829298934404038263804858312574562559129563300118949378396364309291643184505864093391941035188733796509177670217128994656895356279107284093093607649707529238137483236887957550715601904986674061644368209738396399650017652665157022080558166731701678150758858956115215608578036508290426776212120709417543139857329908671335000509931474098738235330062953028415901293692193217191118005795414736550145992008783100547253879811493895334323409854162081850363053779719428697732748163247134187953027865589286425413989906593884771881085506555733797761335623298593444470113374023854934412266381744253736509489332441636434929665350344 4282677819034442106165638237885337677410719579726685956639106415121495926335041194844176906350438373986302561209384716905952405891013565803500888108758911670167356637230598987112417927565699816950787650462431845030518573185816346976904803327597732110010764959619642483056681147357028104125366762319564588426271396593270898231299549701118291498624928669602758182375347684737923144672941375730370515404413663783131616009955840338857108258008661229791229291377705751111402371982645138749960262480954061311225797712270691223671241456436281384923517822481081879368627651213282164595284242052650268963386583837064709753702028195438623543460674243196944868282384939733380248212919176909772478295755643147819134066879390379060653522787583171474350593522633535049644144601674830894338622424830953809035127282420618519645615642022066820545170437874030330410807187298297568653 9930340915859290404455277694428199092340378155464303672767985006522647024259210837084722814357031763288511300707923453510318147154988762887385216096593844169779218054086576134261333391875853935946286430313527427878012485607675463521991469635305359728675656695959667772507504701900135722116822857894146696519031945610539071358542615933269456947883952775381893803806105342605247944751876651157469269628509527780747528418338973291051445973595823792166155618985971456815444867455136934422350236361134181511364031945358274506207806946748396149433400133313475002611446885922806700902404032627460625230306021091102642960378556055756297696552708967242275560950117608885414136269998157899716051865200062421082062243746413051863566617074524347217593126508716729477810403468958787209235886060637245135284598023550598744294355844658607226640430631191741931456417694850925708028 8006414997690246260115178459952969142760845726939861175823513157418200111782751437583176438635611234912667137512551425673512122211240245547490780838504550448757076622918959086835781924729473920244273035217001752843909920233802072558455528457730222063842195528355284267936232626372272637685767346253574659253121250876115024339700543364862463328238075102177436089811246662326409892049856130211845211451741893459176450719576008740414540188178745265831682941307187420800735642762435487709017161512342767775926159046786407154640066591419120595284799640590678853967323059958615482467048402011030080988422956717344861409267783006924516923503055649672399882455345572139522537905014642656578497142705995546513729514748607568969170913717322882163759009166899075204731409355370241328417602653039310543083675537635691786155929493240635785360495728523393148914082402124073732236 0292763743636179563963797759037956601040077665985102100801214775557498401595690077550962688878707985967156498579996140332101914670620881569243271158862256390991831617760377685230661377303518204718504196924190376288089295037272063306626012029799153295978141755826532960851481369453542612540299263371412695061337698519799883626876417978538672651341137539515891741365059868318063100379393952229085962227564804987423018436275903183429270798826949599824245174484539755822633524454842043040813846812623444396607074002903049222463136452479552676799141326429634879987229382575058866087051497704400770585802288930411054533601915015198601067145211359017179474711727213407578494414723623116248464588514465896108712455225164772025520373611264801589374244947394364896267458083032313114865689408424629751796470069261022115651120278110870170266043938214780051604891215772619450890 0290875236485237926825944504012655825785203595431929154211750994862198358188565913406498816273101012829829239850204517866427559557748769080369039483731674438959952989303144853709054162159025979042252465164098788353145085095279303527386074509157470424669503458671538272475096382781011735748806883738388378619891343938779378781529001013827920122299377969664680700421773299146956535204304697244267064643399307397267785553234311312898271267707785077307394513274510751494726057780701978128536217332694941606180760292803372632267452339235043664461034145200778673573148779034278580186835563704947693429667700831636285096859729277994981183730718347866525900461507285222687122301600950124412811238864992911093208154215414617488352669707164609901168836702273772145872242453448623152731127235119234468327994484361203013552662799373329288699276897997874725338712537288941473458 2627273819638623083430873128133898316848938711341964799086688371073520843438907129704677119559462863450396537197175547561748840994309283738791025834589085451012960538700112661223238781039755661896340119491259705220871111593774538937507113807119376367809551576788672356495826351745920869820181430106496533769343162763174523384800734223760804124567669276371347803076422787086245923469271802768169504975321118319182868541004862182944359964517027985542472539445724008411416718834621178589072299935754783865417831458689081139220499506912800615190248694608599949884020153086728368327513839753379788775600642953735772810910004551771927923748401383220976985264250752788814276509099665794107310426546102020188966057349564479898838430039326700473274352237606709393829055847322189011878793707351010577802993267084609204112573292008781787713557674161810385168932341310358979862 0965664574374622144424800668788428626808525671954420044653508264571265297122912705483983695742885729037524325862506241449852094215517873581726376231003573020522848948564702065031523954834711000256946457773093992222378362730188402393994841898108891029606709563414013601075129680565271925153462445401694415478464931506662073555674573744150010597072665774537368164039674446768423852157206916345121884883540514552456885648603205060773835993099874098425571683418983651097834415424231556680540812557481235919464407825951852687707586827396156208929127086824127770279774231946969232312100273112380597514350294806986689144434166737583750119346174826527378025560165395432141022205370186800123954447019070912110230511286025204538936655200689399575863147706257548689900872799932263739828631615591405191082367582371174755945963100070525576992539276298783755378239162789958457262 0152674405584149442996346211602044948286055066528708957973523246585568083737140596579029512933825224453515924274513900336716384288654779585372096297604923882282400431656991287687466122367672472502474760291299253227811998364942966281196433211513864696394238918368040196000139605544447238614957178778831179750064249262566739671953245156813746988883100961441824374290055006502771068598812434036222431269891027912585110903770875772366082250399449891134560030711138894003292791978109320406734598199487266413219758467221726503505387447253729720658970144960677099940514507518777159714756251967123963580024019530872478994150348237302485120389187880074807344986124511057589906742172684297279329343245222000850405675220760115762574885667786188103668775087066394257230901847677999664926919520707837004471762019884004891048015491521749244676306655148735623922080590359161384709 6722977618852576151146747423376360401753286713049197636524426237053123587054546017253487494221243855316234531724487425363689625221512393382019471608156052287093395344406840060983249207943525975857958451926085593424814716425323635895053919049154671488337821247977011572862235948781199293503148381614158672478900946173851544385246521542912660767222621889511546323358380054160620930269250537316157278990600431171350781571248815397054182291590710605186918164567222658129761981490920264447139286473781696045773196711853566052253254520290158271768821091808684353962007984103271184299063973925047395229457506628673007418934189669655364281965990905184080329433233537658065822163827820005732447898199612417329861445770343316636112355787175023566861122075832728236614604799997768723156556620213712889021623735127130358234820639807174217944479658652184168875836392242678457931 1539824693610274304837253782329810055164214218772293106518171022815726070736538324114011815809271893416752048873624813185180251170830085767697125104079165539520284041990741206278153938040677773607563514592552307269590055958451817793799959970922305752581192390459411998209136317267782506669959829592406930236758613375087242379961434713289749239983757583941035688557268697463769582455496510569779435508770613003296315488717012604370401457744563452833173384532549423313548463886719016935068250244888369731485168543546627272177597321331078042206500510307388477499714356816437625899470095436493067734784977339219080237465863198435066197377693124279595022743298653072456356198503830261965376076904053191361291715967509222737730194274559510093002971966537396651161540936438594814890941870221144361563620433170487443385868244247336313983956716135497359191221045526795165332 6013453244179677664899000610619207273502795362796140044604134916204402892657422196668776629252216904511063179266065009562187178655291257279693658419572090083430597860690703953154354345709388427063436691203397323577991899609352997758414781684820562448553473997602531307030421007665863541503428686918573846659087370219887101840955850181690561391085020676433855606432604163246008299015626814230370401159653559678385616714100964836863187918374322507848737392261029167190699652848041109629687411211127256274956124697605609225023307489500640752985826224937132368106427223322552379405198553904065922505508531429456596885649072668562073322927403675491474460867581152268433885034495552159470641139344910127159720520185224497722857862189727294132401751164999298818540036381022175347212973202568516487285146393826479095279284635152085041720497280507109222868092220626624035923 5964959903388204021192417613492373300798689733382497496288700153052399917414122406253083712844519651574111658086472539673505554884124219818763944828046951548866050054559891675730501840382959080436399795611830950246757788415481275908988238479589982326029066647409144048251773040804251207438437342811579642980182199352578891750890192548113513489282826325339227865517200467145690297496116984399136711272432364329884871487622343084661639755735902946080558855249871109392096148557944166546111613302924821166086573802844335424244723701677624917970589183007595696005543620772237284869425415892664702586709795799990679810195899326594907520528302996750030308483059747491455989991023003984328412100338777301934434740827507314605194207997344514549717270961162518489698164340575458993540492521064235153184807794167081149336798524347527408222780212945513122262511799054050436175 0859376714332978624567202580858531263600919529461814439145318304084382119047028825702183363949276252550513487455069567338035440828222446375828655371028474360932198287260972727447178674289911026702259350285300046105126091123855569214952573802558661745450432158282062316315875308565024267393075323115557235889231680020603019000373845144984389859531279194475928089394927102627106406736385485408939481816930157773612521206745561242387906811388200858489935196216154043248235458570946864932212236951002897596582346053158561831156223328300910015779131385426766713589394840743302641170282069368782429656034710108512484666436886017464575012252548174964025849804205658148900716458829465050548417506711668547573639156528935049701643269449483021624955701521687584791355444476187137783059504806106785160414736353112146946142002918040379964987793825522572310284437575550683338458 7347126550460302146225877800298703442412561375977724473286577095634168067282178992197290286647133765688219890273836946513174789205421395928855130145161899374571834187310878502058770694915952004631966163983918793371012123518852371329292740660556650179296894319148787070730296872985892696496351986706934952767329706526745754312083003681925481337351389190078287657882277636024799751400740724410220373195264754919935562032137594614422819559729735560363978324342258667757276779189810145872193405347577738405397191325612955373135569124917957762600119401449019372482501870616439155364535022703596694844593698232604232266051445370864553093117177691270552815790606645981561342190946339187054063738658201122325353192802641480862532880872770237547744206723953098769674748736049186925948020578884161999727692559053322055378544840293071917779604018296641587730150087606919244604 5036984577434962710669504419189888805828380682913581168578670375649670529776735252084431661887722485848402832537451233288487793583510060689927095928936385046952600054107847902366414952314197584057795086532271721714892120301643627470187573786116362237657630392312584627382368990765161455215372348269181097944376053118331408604070895842717254948890878988866801494243479857640702592086081310119574974032005422806064840359772786771306503717624449236700242705630733253190995340321346946480653054192232898925188819265747084314957981997779874327346236862194631016247824181132559882031465504441989727159612889434288716525778236168146461610913000839140699540258791381985962506480100496012303742940758370005768345709005870768212703621621669657829076007698771907347831133274613118779921084429823822895608337881136686604058678367380225738655646340575505641205472299414450548495 8038293758737710804016448643872221996400024524111190728430936219039024418175970390777169994599333593418672980074559263674419775179059175471461080142538357897523258740129693043479290383538077816681876068567694587914468013148487534827705589653111707747840374607402414993344481921257513647112945614095592085417257067947301486712690236017721386971143236852314705597252075345014069054195586144104548327054222938428146441919392064619655121775296472619430157574102096275299903437992086368405042650961069717160762001808159627997239809432943923484622415644211181198229727866162091366918037600827763036736835017278465772831809673535497119198922160524410597002699743608701948547108637142480404522296423878534914250047181737318346104847840892322793242183879742197047783623077303645535659184943165195607116125128431475136073511809456617688221848512236678115062701948204340484131 8194388047187736006910645129356800229329913981504043254061831218278010971939221222342890857724367909462446737767803306152150291667353746421336843883663157286268808044390786673785065178119720914813362613076317221358603363305993330394989200909653086101087497012919927166461718147624628032002580922600834223121938075170592046311076746877294207869700875884825342036591156142546571819595986200454264769475348327963259322805662832152730454810694330184288120369838634507602204785692751785714321892788598062144399184415052011197691484769001817223813993948279285602045188227843304568929373195544461261120014098089967893199672310244303463907147299376596562371805970586776933175806467633479706420217735147971022808775148304003121856384561387240154824013681118473635621880260337498472475587835434794295109012392188266972603182129815051300898750284757457339392725110359233951603 6468538800934595862448177044840060671830922772981490779054189568939619824579382530666046666212004078744991108170370892409367693209051350243832881243743281835086830107006545350794197719348821255263729442443222425502741510266439490567534503571654194544978037986580740625036205911067253565769724413615492528341769849218992723609271990114160977363316029044631781594557567515037532212009325206601681315051661020613784426729513934020199441032524486942533277528389844209203409870468782908637765997551410454771571835055131442035918707294961927569320982345438532824160457799626284883329578460269840066425586118147045114904361205289077518934368489011895476967660475218315229645563698492267394361315570687294629136333277485641556630243160867619198867068902282676415761693816174498865844904697366382597874588340954283520146488596421279970592945302419751082162877208192803160693 6987097494489001928113179744791325669274645196685677131477975670289481894159694126256077481281448044447793259835697493291791177648173781682125684293052318753046905328230071165339025696359251780817605681077341278389622720154435033416274427556806846457304469715454396302720687295848201160027323042461553685139055898423888350280805672797063030910965300265192768136762704265716528961356534516546937066759703223214610185168597793963810569330800210753692288933253827262747253344123491008945821867905173938102627283128131935054260541448432851674135387759405784451766099516242081093493753351916893740167840610218991121636295239666514119880548459528584616938618782803446600937070998636439492275255743540876931794024715387224788578777026283665467189514520583076316071184026872819524431988648033896101982076307795901846451225113210341679491927791199858452631676237943169139551 4595199832130277846422948689952300242020281269181719670696928833436467837276450336283976625328618543081450499539031051510514134916478869625296907290920791011061443157760423328638332279355912101248956668085270656878861827619848633909395577714685659783933897036406454166481553034002226491917767923814726182734322716230646371941663831757315409696824670322440684578519269716253630961193644355132358556332517386794533726087672946988973425403350419723692150081573176385571577098076613000614293200455736719144156946104280041898472683033567581887527681470585404836123781371972127141686524179685422167921636386128664575597064570422472507786997983652060806149917331742644847335456947007096562388476206702062283472007364117000672849118549261764116524288328431598733192644472516813113128403730511001840536141158565279252330244039189289467514359975854976284350713088786055057388 1746766091089412892252593276758458902712273103728200734118050523980951282753606138225133613839727215129286861105736104773973934893992976696789829813512875782766633715552062419116861477463908106316835692822566928349058021956686882271605063641068031945014421456702439522075417403463782562402188569193143873545385946695192317342492063439448053535352977013351625784887096667444341724767997075455557049051047911668486091001489049922414209408564289292012600019163254067902361620606798353342331738178311242103445890408190454165631002910519498057393461243846022438026773049106657320265810139534754181010096567660525686092913905005042098054343574643056931745074802174736886249887052345039564442755169287119303389574110326265837748394265606146688086348373940372987914086839689328318798672473470886482205524455098763706222175823689990259140595790190118809969404979971782027892 6613903012674156364824544998652277988060033096311189971535293671174531258515256738189305267850156589941218669133075127865662476482264059845533141909402983820368605284742508219963012353529846245453779839379515242722467742333216221199259782653098894022290723546088250764418856846756320371880336553384045811030927536206052392523253329422713580598472721810340972468162676334559895833820080065129591068763325698747953995023061333879598059818905911314168890430260953442555910179401984597313740312471536258610685798801463715948430332242982744708094302127582289131567237197508902374239295167651177649003500947729105358980983418076913499944396559605660484732043753662926397214126520240525808743224618990764776394279185609324037346898746330937530087737056299084026068967959670959343028330106472085703045186442059258319410014483765332163127090415254421270397922847086455032257 7293713850353360468419460105953800784903414955731555562495150694220920749724352303486309503228407069481105198382332049902578667411060383849455672825439794745582455585133326081174449620104134925530134147823594133660546020549098664638669007580463641487252934544783675274530201944858539830572693126675881271999116444072926043973871360420330340455310839012575182933704324959901896461740009458869672973352649011391182412655106860042159718378234838329949983023926817619385334508857918129388120866412540221279001826502688035089306121251810659310105025177538188291213318574905086152223648092872168083620480667594686065580975941045679358443162173052831880523775322108427212307909100673597073041907311338254149808221378010441063099293967624498997105726810875685041534470330250051199894867149978646566027489486288036059318101954228610930249095846536594418406400973756596807272 8592062577923980866898239969139880051075665001097788069733412174760176508401571528629709341686738502692747656502406692756563500327706001108369831904469921406599903684598746319746362372699285706055349443919934757400946591417185675470332802004492147550446157773300465344550529060943015494988431217439871886245732222406649753901032464935532008044822975392193247781891434092858814064640515200421374161651354252272694549745802122464092039878665184538615532649982585369247445574702955875642005023585864358242347346827738172881392616066601951366746284742912937889627059446929216638127506365286609828262779578642944598862957294874629916122293191195001554636453882755413052067991442524020476911910848213029624423251859817102711169035032948455323474399564106599180483541373951022600530905317129478323160361654018645142412787827856432797521532435737389394058957830445075487837 6738386218542861258919914599785473443195959830354114398476092566930561482692822102894768574677913378114983700711427487209828012985556404385913130657573063356763443290100788748281299055418247687478136138599299396751077391626528978894774359613244421129666816007060494251270877096683360911212825492455757052011372101102188926635877158172426965015913159286201982568840865570512158120776395001002870045039034549502239941410930202313240527227862930640393475015344453946199638533147643693746828548891033230136771407624397372898260175655397925505095269587455656856908992324784455536071651260366875710326363510714170715675794476698100600979338270988116501356590347628713550473927741557912246447335341951290964498913020694276293726594361770387398233409422206402046323623049204024362026416317738404318405847927105261784069100640905621417649094886325779392758519062535833050853 7630990485573109437776901642658860537251096512984419679865638150413014845012185968202124928606165244501196363013900272036610151503784913914313738981935998932854726135242770442418158978466577574254105354191534487300692709877079649093754137430376189717276874993846394630134593610978425763739222511765798085362815680870258482702911639277338617667483631785186072632556978661040261625429588056178289384400177482111178793183100845294582463478083910929956153702850720386912794207381842730919567734148902339576951539686453056536583033390078023427925601343488510353723016175001547006766195082275126464207687062984590458299953763271576371104681915739714114376103948023182231477367530615367046884708249954166761985453266153124048029711473005748194720938573066500981264528473878187899584488593388367705437515783410036015888794949479794868631759766315353421479949045839269746428 4543276215521308601663335233883215300244962318046261576759277649899827349828278004260154390171117685113764531860183892638865354710799169796787269800016648138438096419192209296062282863795527033932719902473969109392864674634252977524632334783502839504593009579998276531282863747269095302619228987158810196069576055320238795737178136545857982413433978892981536276943109173049515708790529771210542254877736071613392853257823763694247414892495847984041415098590968294918247084634596821073669771819064407628887129822046404903006416423451942761200603354861750305354485290570125059802616006064101159475557774542730950480367316112499469823009439144041060407921883101238273015482399811749401284201248749571550690906078500129272085520928834976700096858450121081707176029950842908392706211783684877322204576150377895861512834813838080385696341588558458331785425505774882039884 3824985523685833726592182668098392570988769419954269242248824222960594635430177365336221883109440199568164386565491415266498728405201892411107549164874480239080601312634905583370278885230066056242192637068728094659783185917136729621551114503660633608637373622297638550358454387684183420646763472158155037233799024958240432312836405087222368446603399325312550388593280290125735453524723655752596157299190819832162870345604040439848660436633421273513120022192458630063961131604822472041699370169217686157409665603588803323426275222533989900789414257662030948641528012684207175728219162696671425916283352055769113463395113816599912002249186098665245294482834196011477777065313735658766248691657954484753706820657902375029011603802614492460830592924456945511623015448562980805856897025182761174937461591332990501252784159787322030285308523088852794954990735794784568146 4107245502134698022385623467436110446949102364434083109390014355333979332124570402127507577197377326826247647125460156759116545999814786679208663492352155285115582088220567334198433805869999873469314709480886283326455980928108661141154928278835886774366769346863059838072177924766007523130967123861982142980421780021620849292391110480863876933102171948235405528658026633805248758777726860389103469915044437189159520780561097171951882651081395173349798969628398877231058721517990342081153009450305486730345891476488603706968282646427594349231107828329553862681319612302101422297959893345424229971171440912061647022375427853571394500767770804516069294004210376129633211986615488949841870100553851331523763097566145105899214284197275127082808268590518835837303972224031464694896178604193168740691205444670867368842304796803483875004724926298607716219524870388451280098 0770888344477683170992486953840844183791733215403188673599702222179449679141913128989939872472771524511518652551399696791202818678488402448313373834913460594275564822928835376847980261390373531588015522173297671476350356282431946110893890783277644323202393985147981357642190206792300716483004509783984202871901134009378081266366654387641287880908503474615400418691920147414273141529242208731548470491727985316401594829027455136880251128771837500592375045099806860188311476654833991519317765747558227433212596206517730525853139630052510465873775103233728208983087153992154318615574520732029524925636386757260396686538702485044333176697973500794976416071041807886228869350864789790949023011746671996296304574937326812914012174040889281555140841681076941467489719471696133181894642783358151499378272582248501336897383301113695021084522962562307249992236358279680610553 8503892319466656196568377272600588524811929164380806300702171569310430447637024750546213274756919777898100412350346190019817166837966623980956378126920262363004229088851080338282022794188180666827136963921340125256246201791420640302484042879167030853960056353042506318696862113165875155462498946622168323238487883999756140990365136836681196006860302288025529855882882343499522670199556609391317174370146879122505520852702037022301534971460428171200878792501910369817357752837948132103460363191712047761047784926139606459182505477565671167372034663302828320411381078084445980801541404947696390443950630725730290522190871154770404735090315349522340912866203830529857783907207663997227993036679118982739152044996138447615334277947633666956836495078224061542063743118286080230891530178877943818358256209047983772874357030082936425195439042375588004627769988945302625455 5088305855849055485272796103152592035613140169505500325061096521022678319549880639398815162453185138424748607313474517391750085283800112382635992670024727063577050685186177332926799139391518189037731854426328794076622952198446019493401488566265545877097724885821882430227614727920719348725361080952233302036013287225661826936376271418176101383076511510964198714951987153649091439790820873851415918230728800536263153463018540014866566573302763648958422019889699412437417808019504031221129501151675853017892626244488096373910308258931686202502679240886860618796079933924777972489986918678286221446057900324378618643843877649504162559624425316739285307274421724890872121722977238988221295600905432418230116964014540344896175800782195064542906782492391916622236549232486134591916568278484967716963980834148085578829620461461158807568632096249944664637299528673480151580 5735508405279033055570907979793139236317869425251342009729948108186834248013318797608760428047229934847834576379013175949181502093819433571593917983983359062882788585571729938977478883064830830738767415587010944737317230433463046094504453081960157976652305120712935000602618988905721157734635928714291904241616870817751266961141777663399487130841952454115935658009187316055060249760559722370045823077673015287926996636645279332637621822327552415433320919647686523113349741151504129014172264030240538355034599898267651652976220077267214464211365838643981944951766646238739815488891656559627500523549294416537047668341347933819166216510480974883331124606062028345664363095042927473508523623848970040077353209412155627140393111169009273300141278523963279281695779391935972359891235709149294172298329997035226156058416870808923517260540304826976629289865208240315477986 5409817497942366560574140100593826646738925313697984150337629179018957089885624498138828825934474804080384160638354484852143968318228940115210009679347699340464808691015382195913686011960415610555593036691528737345610780859438400384261543120197273542177969089632867277118947415489959480844818705085879177342967360214559162212816572031251391918816334079763896327837415051371243330021708029588656178043301383170224400033093742652262260224604374745327625041496384981650160641113190129750470957982223230786509882338447469071922672882312365453290938211655960526170170958642844318825599543794924329092487342201876285908004343084639534506587353168390171236828317733754695123684074941577209682053966704287051006359003394554778069306033165537568402374162887056889973679662777330893563397033414872684581031936513875196863255326995659416956940440717549922785540515559020466890 0727469561931629330574730836504681756313697218326540124928990807835112662187165102351718695273465255557623966798224013556898755368724728741833963213770800204092914600271813485005897301693686763197447918718764479120555764112758242347754682931854573067248824045565919083401040995655429678365782231356339714923169812495840679185536793558004706646982091981501691233735076493969851250580624673282780546182543483081421870125766168106604792528502032118149514068336283885524684794991562628374436319238136417030236051944719310753139435889637768676594715607468817170746392719914413203909602978306563628638111225944840389317827995889382649566771678404434526967716931778451759476738728718807445908528426861660409339660628397855253129678263130585679172915027365433592477726625876133798166534406602750625242994317975115921538081159565092379516545217353559837149389056724492785731 1511369769542953354789719390797201855810621616677461087932713627983479540404963532600727431243480084193311305677916038604023233487798310734636955631398823381293788228654818754870445976085249164279004464838891604462066002336221385351379244400619744605027915214562427118988125275399578187803074791059051757097437964463652366100047920523191967401763943632174636899085874004302497765711149213654824349993024686029653477511089930133238709915817631637529648927874482651762154545511915241045218393644873840699483810256897463443125139240752963320641153907077739603224797945928272204991378319807646647091178905945028631096221185410239428376116412784172138240760231573396486635163821834145910819629041108048396594772091043864137483971161853542866429134415923330771271177309931872811381177113678895355258830805493940370213808936108585814965732198080056319956537659827357374662 9211052142608069866404958975214581533240527712689064137786748818891124855845902643363994888207241947067108486252126961583391390725060259112614474047973570169447443058745560243341133694733215477751378602856066183159336544708875036894126426199724989643304366483406756211247947686094238505556446803398532394710364678748212503410242020865535305449066948866240422758063556451768747478715129210703287798835788116375870871525591445232452808693066764568657384301732958217164701442566524626895610138918331923609090377479443092467764626060119967409741402475374754518972299569843524923446115155606428823027951737519508397993664185720107566452879433855941087810695676492327953162665899064508222686992421612846211512297705462984095227745220085516173018846232419868501897207477747075857180007583604387302147172314518282271635234118425200248657505424427352473657357635258728600197 2820209690554827106586481387077979181167457572204150608505147240768428825417827745645583109053331131636384291508352520484576718058701528367863123146564558257675930413732180713321957634491575263294254340244967200694767430648082016140032859518750029573367327796933898051253467971608948259974142576562984904871673112051995503548069195022990859126315058243729554364696636654881799747100093476815948072270578879822575270565435068841000184728036743148829425702272739910090375977643046735259984787533102632965211300585401418174688140481612119039069610044060091918274993087057797192838378449322919619522395863978138707618716501492664166397349511783880972542676297545419031993186250397131356225800802734796002131405076211205053510540371488930215211468794940672699273447476530210351062852773243546687192753281488547552957055093576162100704408520999605462287664879507825286988 7096183640661543848285254044599567887658223655266140668165887829475106897729146812609906114653670678586174951156079034284955114943831701563142105981098616633424154449199652189094556173377876169344259375984512244372467697797026752391790468110862348336819457126315336498181325881009761239916967567870350809711067116911072570703263177106897784644305479625851696598700863447507688244684034914828516947921121541974581202928659596505454487914683833998848718768709215581453192418904878981378625041149340339590950312062812025090690567807871694476304179872772862596550244064914681137088719041960966507035513345599033224560449226691276537330535617778624895044373767067332618671738105998964089345275888997243533763132736098656436361854469466000895338543760562148336654228932120945917674971907466879508748337706596342192022566687697675018457739720253939315404230917474721457644 7398269959514442718180199240626846953731834147727649980071587664422735084075028689119368414092162343519176845129890739203863181277108544234537274059049500967888444254059852207119545911614629264263970919389138964699227292647372456224688584382257190065920744266957070727511006279089485769575306306682769014815781823451852504952666804216825197290800848922733902659649829232516513339613732446858459438730644548590044271808379671046466990040572838631614585356262784385772840034359081827313214429260075437617814327692550368590196140775573246577762914428075335008299348129642452150981273553923246461870506661915905801590875477371101609364318521568480279593432003880390166144064813901633447723632427337026749579252366563254307736257688257395666356240375506025107075387442735743665799116154293243105192565789690552689511636271669101636999547703658773750983995457010645324571 1438064912643546590420669105595127246028359033444945575180615863958747828507612401111003246332744868701106223622847976862437795883382512603951517553484127254782951948884643893671449083428429312845321802651602909215724495805008973027845259551502454760371007429615095137370720304242678797844825147053790959953534119973654504956315827091697350943840281387299253288284130822900279037872910628270048224729255124700389693253697530789780398708649272327531214788842618133195386216254839358600163976826513763803833713036560752633633305373779556909156236537044803812696031329186963956245528551235742844202066076772193592721793174233853317159453511820412860470025669867636857510801361690484276261676127365034249400584351137278442626659287818340762464284872106010316607636549829390151649584306670340893965749966305728072793894904369599854061651295153988257673127004566853396947 5653147049824193484647088992629741034445569980461897775813722028134870480446850675988735012213216057872257748703744339609620545284178796612689469120128349115324540198641288256671459208079938446660267939258280034323050740005913920768681493317502088114750306558652130014768600089640632666683973790284509498815428225245989031515233961759835358974951046631285128572571832190931459118928218953359590942108294595301035825827753385434132861413931886549841649765597249035887935343417376603935572491621359580967675382263964413770589334885378441642232169386501787007794280085371365209181067972553560547984977516831196261859283437285393368855939333880596248924354849898858403926311587594890413329258341098192088862849570975151648798885626756087183247997056188403510202929758484995762209613683778973930323152745802511513604292082418981328150602450975792301296102639047112169905 6533204692407715168144934437817722427420452567191066884960069777538631285286621801934107734981174500508276151279694319144427558931411001753651977621763988594797465460201778055516258349155828143105935584147763881160311346110905704445806589848914276130132155429934793655839595693878556438486233978810611735289694574476757826061603048495586671959177851915258856917496701782998238579727850906203864080235198612799046722938413882138426111569314892014898752486419950042000343935807837573635135130716861339835149117277995104288899923647587073002350843653506274761487898154116646795036117463216862140055633871299327264310243244286599749269000508591021567889927440774134444799031373933171762190636622929410754242669889250231774584687865933095692273076383830262105398943463755592175562605764712741503747028335478787272896174448830928551322882347818550113670139933932394111303 1582606633542647920534502473280589862680996690012327843656716955561349911251378179872003196421231752780271308511813800016351381075329664855603745279940910289749912025517013215705006381165511742926524740123598878768630776860002353298420793572234911876379956617308773784178416028860895731390961560824106418270825199489432782553152805401841732896553061824099327909526578342298701933015214957471332197884055224121405128188368663294810138349413268700311614889580454476346933530959612737312226577535095086459192662752782136128045789365940920557112172623821880933606784972364808676409792723790136524428531746982244858864506049508132555920286429115911175361502672457304275952014730448346157798873075588867296420438428851203475575139090171797358341461955457491324969635730571779021426374812874696264755218311599443441154037650868276570072529776722799940032123057096288029697 7805181648707621801634427610898652374155512396623838094722903593172491883159712998468227931035595763113358613479511592096740595251757777568471010624357775137742044199690145376591959764500451610104232328650591192085107597318146430147964976500970668713223556488468343271036684593801498402175010190247888462024984461530360641992336351647225770638486468735740801494641683766253582776112671043053186360508748136926206748174790462352561803700526733512409778029343718035229530535898617681742885307245900360483978656058808539710388023907907944472386269908954647035164205076614461945961439715216149679270643391801181282237432095960170888505786586293996067022063274718402803433298289902540762239152881532254899410094015917450011919571919864521454191647575298716863965092357312723928237595101606028983581799727816922938576321937941238619206120307448695332111244941232280579748 5760884315817164865371059849436103502556177724233412899696031512420111604854732587423071288643511137745471082940615699097234103493398133303231554359367389983198547269376830518549833211697363561462163298747065287111126773954267604214708321017055345818534884365368818190882394807800953375162207490794664834409999806748993509684609405816904240420274922889752389537555699747342498643561038501658366695181032619246777491144330541172741986202499052057661861526267835060645357593262112709129303100105816095276875780113230872642552350012725185180024934757043481255222512436292095431064444115199880554334637442750040248134574721130427675002042645638931719291063520328951974226742508042208848093402128986973831759129619792574775216274515108128446391097783284110579373590718830790575503980791126307278966154450554577310288020069909408542637491837415597998436105151131125863821 1261424012215181725232060544339255659486116307687200962760655124693961082123112977983933873952245039536774918241227249577103946499237117737359811272031314987737431392306115261946652928159829168552569086171789132791598178349854878032233643567956565051464555391377066077866460290874114898117576367046552745330629784744006116297910709530881285512873429528959174239312781871712449365475506729402916157581499748550416025658316051173565320439188238584861741428651145685103713428162156207902777537046345760402178295580384651745854574690523135558767611675257969499723923202747605064739085033825824910496060034213641391701092745637578818994934717524628904544758890856108752523281192261754936330505045521390458176819702328191997986675284638503839849510400063287285599769208892373462921270911695985542479862900020397051765929000795631005737343716897630069316922038453564371465 5531674037259256026693980393388345669711777563256393348797466789763397135098033239182419769648609025860623451861877001036924863373675376687557719556014375460281316766085278217663766842419323284833469456090635363967756331764330066474671148473032901549428393671046539064692841016565740379220058547389979211128017245905021028128136165931507360490487096011885033348969897964509396560212310644215463009781670614230095352326710748299934412975415893522785383409360074563943424411697172033542444591410162382854998305320317505645295926560399981796840112545911399482179247767228339852693801426769810746566720694575435912551863262903957264224756465085263340460462401153174017405572677242393378851231725819062367507797382544568778843616218823696593193622952325981307381788723354023450416175731843241639295256771802720316308118597629923589017835905651224162269630885535190252833 2127212177589154174096385362784620904944207934383483224175191048961348835681276735746535959645807595491552671687153936545375461960485447407756769775105296325026685870501724761927468017650662755459874408898552369471487075808058155881466982533375062433927662027310098746435508265151849317321622871969778111959805255722804438897886973207216026133680806961550896891871363579550894464152631070676540946904357268384045079579611435016147879158464344941879483597836627879701226121907660042992836179110829041522412096128973846179332251128565471978408852758578333104518680823382811724821925933728452453082748551824635100089202565023189218008367418226163358693008107841653947260198588362592480167128736591592640287061500328144513435027632354809605592885090320997249534416716427646031499468454690258796670061723143243574286406735453333072682106583075163363597020270916411651601 6783217711938550777857101301228904547275566006345954132123700691707348978844290861546064076697036402153706452616632836905644288909858129632462097309143664456258443093393023653581568280953554623194862122324524569946094769619381662385703111398747097887615795223722028641748306692376894747671047130997279897258717059403802030483771910283772439357940888084068470231284877977930923372286194886416202183403918324482091392808309247184468491272733975114851979643852023846398776817830552140257662116839940956803764673093594879759569057198928870920640116568365638979435643601270023666505693231226264300013478114460573160263341856472385951603696169386232045092369054701236405498902667002557133491281960707110070254595152037961019363294202526186364569430985410520684003091720768022465132777992591306898499839613841009915316171801106709674048278117236203355222037034301621870064 4664697941054379773526530186572753668645951494202491372719266575965303165974396190526995701606311721470509499895603820842297443715791302446129644505277877176300755396647976391972746080440270080930036066078065707793137744323098616671451651201757248571286936138247804825488743851229081972063197746232526439236341460001772788640048934325400836067182507300040162126979777657812808068319326584569323196463960700478542001209280921045700230487080389431650212855644937033183232142122765248063555887227615213237317391855454541030895487833832391100334841958117092308059159348097392905529379176255969036194125583290589166507934916189953771789243750028539822990638105310602529201510806007063411156646386446973692421775667122234894821052820602145472269822803094052624130154842885694744866357017844490294512501310123128294087055886327687513668384289085913376982692010275020101804 1391336584426466894914870068264960395794349967380665328757570750268409319299402524939977885539643283121376447046922725164424745316002970778305841395233232690899846443485881673130122914278010467220333606628950310120053376928825848694489626390760874251616393193912966430983794852203782938599191897990981309678428311294082479338503261826196204589239867027494870916664083977741485450181778722731306788212343886013815505348764923373722902732035407422972886421603155570539362808714201004120104695236100436487972976930688506863691533837244400713778958970854640511494583224656522155381243972159794828599415014390771472171664663987655852020933016495421179412191124851297885341440213188089864826101173671551502844896294754964414495134478401063166702177177779874926155457346195765374726547604857187918022962587846640082830092930762550535108876531034812669210031152775424404133 3115233692837610782436911280505378428698873150927827776122477242167354969677190983468233692655636140671749909938845766370208159184242669880249429193410482612693477854133558763541564344812264522679469660343403777210799255859264836116268344019252950874216703148210233905065194827769498832277844280124311672663658025526456657576116117212699852810634704766321250813581312014611231076483011965036164247398079679970251083188194948632715720685054155804067794992248904474866106892069524885449851384753613334682971473902237194957056365619874964198778453115623840467017611706566684512926354057125213193233921440401904571182064778351790248019406697760258454362764514937200199582684782383953795362375580224431145973739796748619747322924100269594214606621442541237031913251241695461710818014692451890937905856982116202243454096651820204790687130735116142232295336879740376301096 8558562910378608948599252479344818090396848535362271581830782533724107166769275465727043761490461091048384211736217495663366115798038390100763157642741793136909019469434053044075465539854381551839233819979920483644526496044183441272638407727544857018296420023631794191807364663444523864843994191815982992064903048051955920964302875715342241191051976123985020774342697250058332650723294903558669965630109370690635442814352267599795302176015019870204699120109612647863356330206621242792424114474817026446639700425889041218902139770973561806769691866637100927724690969015511921352720257017174184863793547479965331005222034458631776495811781572639664821511803079598591370623361036976767710812766189732746364953469953480038148108133164370384330671588280124730736074033866294664266575041774660264971508406947183324858492967281395559283627489748140050491189469169795655009 5929068098250282141473654956434975553438714920319150349838043418488029374794680583157576577721059715652187629479575479040456548958581012871729701790469829644140674189690970890838394793201615017602236016667055974931691149166535464093209847176070260270538980436990421051709602813426649715989807580135207232003074615930689478570928750375032430460351170365153912766266381891848647097936476373200569727659881387417226919171373595264861349582909078199446909062192366088729821179801944533755357804578595069079869746938116595426328521925909726012571854935244938036313823875613379911035805564650859518155149005652740063325416509478061397060115515871999369848184724982283448367793749517298910765017675698339893563021091709267951612896512910803606283543589233390360742649649794892602618782387223631389199124238026361758458743005168804091390995174967766185542967294875704764478 7672705319946707276259720246817901608237486434749684840226651359441899240165116015103723931548758099638725612195887537257835128568195215932764967074864165896783621434226758021770266275986829834968003629611074059275610000658702335443800428469897445091720579860681583392013901297707241547017956330808427936518531442823090381093105301546848321460281382089892118871964945891618850278388598880870188294530132195912571196304894228460997273096197879993828760915706008508916560720764253908676563286236952833303533571159164758559925201778545640775662132399053756570673261109273244930084881307607885334396352391698529072227411130009521389408670932853454997993435293821550261059734817623188706609213101941145471965468275718793037669585372240113510171854172556872868179457390492209237610196578055413953715535563348548126642113529612542620545138008869663542564116911402653083133 3894842467073322378188509713898657300183059953796131721290756631925784332512789056832254346158728153899439876523913745508400138792467976889256996395501855720076699217474276399294567182392095848426067475955162697047878669429795530419744776072273329285508350131561219340298550394728751380420684225446561955732061265041187817445540778285398158993163632083702425797711131195141865950235477131576791990914113718373003759959449413441591293752054680252163678290908871941952274489661780772606731319204708573693148356376788470774995025784316700608558804360741378961955186750266351182924244528382940049563837840628490234021015327077713494152713918975516115941944877937960955771852974452115211115212977867290356778212572858494407249155791690396084806378672694929249106426979806908814450424472749535444471360841558942836774696472042757962095282972532774509167207572083302214714 1262331386404096247352964864400663713865231563260454926978217901973093629035253340680620312342243065410116444375861625078250436487671464130659128357884957360953585821586020199634894590576129015367852716363046083617728229866962731123045863292628706367937316202995150685826162653144112160595298354215473912475726409705023720904921400266609146030834184363526140685823828385471346281664799765551403085599581995917789817545015411894050762167520447714570504858377488720977115782834697670560170707249117408879861294968354915763489275369734906459919072601127196502772823689489266690217801986822144207154098993287959207150273075478543215870681523475478041047830208996977392612301739339177297512522766532855365379162094229599638872395598854186426834743080587865374502239908658540489344058840515488240554348598803766858840898846858433608810210167540996254059423719632013296710 3027409997680854902978520982620666036600575382449720096228297476807084724157299954637548866123146568298034410230742868070352319649682758476853754156518565153031121835903857721897613497033534517162959974318009376671204731841669748077133451362759073236291224488124242311600848779057912913612672735000376446411541116202289267368784316358795373529904232756025315899174156290545018816375287520419897474380815949501015955469406363013091154929197494068849568756214099071068827405540766779278971483660052999255778119670212350985967063651625423146652370165494004121066588933779072152565887730991120919400206780748381808610953556309888338054035447829073203019226643196098971047813973321146768288809251346778386734503151330967450921555109524822263213166204687114753302251863308327098792155003315029178878153039068059950300269603901342935132006666197900179996300353320027083122 0843000024283141557438075672857091361349858895321319401454766383869523281536394666880192081532961905447944416639737258372063787950629508140005437873350342494177256237793934332877385526358764124700329351035498651122786250160043281811889601713698789722513111912034809987073551714322315520507831276023470425335822030669398389414252689719366241395885229316396537723981209670839252612669811603608852146962713778142028501949170371931451619322774196158996250522763548669118486552221748599771888016779028298916201326513769990242642275160611682239108839305447769203614271197696227468802228250691224389252533593938323355881925061991663641245182605810187250344417567731372613844795794282025893391782816718746624192931678060704745992156224363306860878889644019632995508145287308030827579878911018715836709110987723556196946269654543257513204287461052905664886125838013511863611 5287580715281889314585818477115077712726302415743178493033382195904866903006364885658919797434039637556460542552596688118104399748989565970721691318268702311327819969298290777675986537720304867103836957308525705383960935793230175894987665312607457097277571792718514485305346507968723130536199416017968677951568566071048804396958151126241658632165843417528288085431088912513584006920841254599121808448698998659654943170177539666760286176944479878748295892955730545381958509237657258493151355862721407735565344089561975245069767376420943698528733949878973950218757431389993136925423875414486223550101520073494660035627421493952852636948013155976144890480935315620909969644853153729538140483423371308794734900318414246092204635486031767807207903798001599277141989250656888637753225025961188657980639071696498522128225990956774538878869412387525998196306408738329361708 5763872242289934705190694961099858832852851555403482992634544651129022338061488325179753650016106933710154050527800295921710278549261506683565780692705085080671536218062007623807290308775830857589134037028998978883733702539328265726280598200166744809039297500484900138967141133844648200676211612153428835617075444107843032409642800968214403634577246105887745445515229263303276035680481381084965572042127145358871519454439903774009436952139657701422419268248769883607761329286091697599879931450055450576082411595397952481641336677856756363038860882210503822080305992361666647361982585811240739713503080852842165229516160982590117267238219671122533547951347950393638186157900320205195272720794393867256919075597788236705078040698460210092508017351960356624763433256207824680443134784663406872890051982885894383516908813689426514540782364779052630941705369788204720279 6620169151934938959780830908864754070202797568906044156986062324030282599910929107280082626948953154482561238938084497227395851314731666807791314878638879363915707214119876115779589592972372721068642870247245817316991591521034181186135223002417620076497867325834179567590469098696719025156227789105054381152958955991511785386812624115089902459245079673864775641462999409704297565306760935146168462982414614912804451813959465257000180975617689869017516653841894108252396635310312655706025101450357096627026814160448316942432592989849762846386548318027027805658438919070224157910976728646637610225296172465158263870225233954924683572045125303494046010949048296214887184981870815496508427625307180697967883966021461334093787673330120008946697862743204269583239858343413314558264145380314352526171515123890685524491270510754375559023255549911448966342949944016915724864 5498156560173863474768018845084573069548395607659770246347911366857935656224389114630483763205244533230001453641051950107846927648767067208825073186418232039271196771569839442806744667633345043129989115391438385263746184110160507549646940050823611051936654158932053720032621022600854793074322193519984441631325484318760259151761904814008243391355792885362440830389821547803467035822208451690483925947752231821961652238890204016373925778524162626975742704594551163224653517146099619026022202245973640372399960795252373664401226720008111796030694287073951686655904359401765340268360888504622424832658042519584324876902505694002345286080996730786422500392572757847971150755775586088191924453822884394358965693751087698162843908080912188262879908583740197578696933736173134582359269169793907698010139966866199804078184304175942061325099901155852167459186612203232465506 9247085247679816086031918871928077486583306395567938397404614949754340711058658681967727899596405547663435816593537038307713966141601831649992705909581442575939317625258832705781071388990906815978565289687961125432891101764353953622379443027762484788297479361121606329851256854302095349064454850240354689861462473444870301186629817492294380999396423750189350549984572024352864991179811324895840653232890676434146859464613278581252993778610818648649831189934397671585688245659713238743455943528833411176584403247737440303703339495167322006865928888010962259597044620060084839133639211076554435121581465592279398658022678196516050275593024272979013203718278293909090133601811894993775909748648770799307590715656839983555580263345219589746673958439891326193310820941416367764926214212316565305486399833039002563830172845574723339859898941690367794345168512262743708006 4018491471547029565200852919493687259596754060461449351337463762105981742395180638688466056049082050682940060762118458769701361441423512995160672740573201009305445782083838638480173526779345028935640538039115654694687708726557195213408119298448569787899114986614363999449879914556140736425432218620281690610474497062863628233672856539504449749491932214423266233381625276756909171411133250169942046825602745725925747368619638648845944390903761908840683920038721324767466617442132257913440397426543730248242161980598097622845158900747150876550651816968799594707990701527604526622720480571438127010941192452642063365659135534915763448749960937797632351135255166802031929217169397896267267709120666322218776253877421797999252875793663391014002381683850201054873115818457438819777684068546420500792693996693494258105005149373014181909365836022768344515974290915626605461 3276964603316518357161438148884512484741752223355448922257027404197483563624623776723152845335303414832342890191108481932643600434553814574452549447172319261054976028042457895500256847201977143239240847541501730708194331545778930258231690286894596741404543395658151920076969065933047184289558212723319335008958402965479583702780990996284002258842840264931436481539821243959999508107863831119235507273192061486292780055976377972811125056042460595103629598653105876430313751651168741196187739762746836255057277942851801112810192781435730211362135395642607189671684525409028202099805891219621878953771497635834488011756925081454676493515466050373273151450942378542394528600275824707881585650810529250946299641118326653771029259245066252083173983364321227142176784845207655944641379291103327520395925498026687621016021977089549389210846290372193256869509682165001713781 0810941897123023426805726210351373324180382152718014823123203172898638260954589305305076555925815190522433498220074139121863467659629063974608456705794375294932476660327096310430621563678141721640288063172724673464678342734820426565629703044939377779787502574802724739472778556139863840978807204639845217274736254837455904616080485890513059393714054750535545619004221536714813403483526752419100605556983533198475548126605846834553589736577125389091539365832600603535668533178060486995492405468793777590275322696819786282447111937898205090355458713704641690483452963162991268363174741287264356868737918822771304653329237906118390076392527312752418121157525887196301927369103334350854181942006269798973142701248959422926347441267174843619113654600825667419436012042956997605584848514770301091546561115792589992405119203939197448170774823131779545362263010898086901519 8152883808816397848440746217151487261217633759231921620073403072920919143114031835487461288196943908038099541508657935801764826961700699454885830836551302927988914352039560333092081087512574640828745902360188727557068327915112254404643705040766018198324932494215967889612653754483676168102183017424064146977134524325971996102008991399605286038525594590570782026975287327840284187143662828830773144405257232378899074646727514390599025737489947042805185324290083748832782742712670004783298599226451593468975673354143548852042938352303325983117399954180204084608185486409321005154151090894515164748111686199844799509231597576404310123458962286220171494873192832780469163644347805580217570828977923747996761725899824298611496125298419407598477109230255505608562160651615906008130332720553126415933159837455197639374984658917761125189124952468483051347925162946875475780 6507649307121605471264599593637738000110524932814751917105552127517255068022474436752147743899860741923403567245335030130552285954993440230538661156880735149566715140693965595675701964504806878085469159082875419123311853011051962207173684039904491221521809260876176127970117514423868360654860210719236044416326652579214013998799037399983793099756273133323133438945453536385645181804304528785828036918123325151042534904702971998110714259946641474098356403348181404184861369919908940967042904562042681156294720067544940398579533440282544864101359206960745269971233718082669295298338022516042979116601293159142438405458581089190292552932904600377614826740017212426748076550055966213670085210114423245948881679942076088767275957903649191346228613689948159873265374860815390964996939111008273824433965007506400147649238904322019255021290169431987188527476424876318498442 6834405608456828132027533245983702510198528116706935409757498090942587496023551731728243886771444645294480823823250975749053745440897406131161954404456700409570268173166689633505181202468413946144405019039704989750028163786629170698956241065580179253226037383552525436457748481236154763868126891601292501856754177503934372306058739463201606139552315760369979671498245262085432796354262591742078342498781943682253286947243478151623973979642165800227591448555560294660671315574465795134409902304483162266390421878200728768662864928094248859192634457177342099758516381645557500156526231124344749249089637107644214861386164471205063621719606728646535239777123051529126535651586630505517922018622093043494160569292439335624759689840153669407364637104013350637344822149169708172715377012198147561320877419711465558141061998606348341865427609903044154763789381003815147964 6500438199909671477876760349644788696857970875042976404251607391086275350658768307839377148965932934250347453865882537193514466148971790456829844470354451839495845439857677874491536110406416625840335917982803913368782516848744909378616792812204544007298857942786704956069299354247223029737396366215764715434202068283444414118727610529649436082579304017495920887435088939111987945815238748770629263500390297024154050478528010221331692541885341732992900210576083808117472791134350552240721890610100162825549865740275994202395685129518919361183932932690203782734316511215568034990835380433875662585019325857382188258333901091915538398437202800075264012337248146573152538421598693915059282451211180090889720891489607225179696549088988483018909869806937081114930704689630597195503166271126163775205213634707520810601202962426938219098880341880810631533123344432072973731 8036866380148351361816624881293886548517005742608343006753442144420228480709059452207477324002348695361776923576818027871332860934734817235165879552262263323848299438361440763469423458100253562944049893469051031527577921928297464632090068832877920713840852700072412614253482323538731796228791618531552741254619309998540302797481839980195859307851841758155709019342529149771093861546023099009772654650293926648035394107117212747879257028633554165814110773933773286857715776947369677543004802398243086297210218800676013082323624711406330574236314122356105341416095782426661596341853568032766301239224617696103013566163513552389750469116313959837738962260126356032637791220269414299269091954604655059657993435739782066642184679542074632649604679515307739535756526771813856202155225470358354600291096343000719125037039553131186002792277121414576563287097501759380087378 4177445391521690941607808112607529748937185707814384356790998475202379757075587843634133802956164529115658222436859569834698983920548086937507112075930942154889908084590098703381107739931740726468253569353784787866924665543480470328899014734102730742625346479335507457073871276015249633776288397034279156432919628135206713653156473895262384185707202906965206743558951424693507812035901038323409939140931271207309698547408864045499956883027588782699677179639974643240470285712905628734241150190998642374059585728398697764873692222543420767276786551899490825517066245806319820678187692762356532543026211606335945129733534827633311452404329137466590066483991971493548942165641839032525730223259037228819021075080465657486336856548633463090681363949132511845507922339410039332859731995258684144206286564489239330939163554506614918896332939535812114504188643456434825762 1873617973095521366632322490869840108142927354057287406544748165275290406277678826848743496191143333884373417275267962973830950585254926174590647171379150773896790969848564278728700367578554678890891216297859074176957988969982240562972805200099005049895661128715524429490510823072085904827926863852573361869097880161164679766371908254690823137921001970760118168022012882282376098906067664147951683270399764108277367729809592554577353203674372732766411743406727373646771782011408106450654480349397578290391828249931372668278412247004932165583549223221389006421754914338931680728297387632117513457360416921499575156297728092738669680231320954743128324350642887795837641758340711516001663350242651532125658454022299524305226543571311803276018017873904746480553824270331418641232653551668180684576477653451928884901141882115642309998625126653583766278979729353339151337 3487076273775544163917285715754994877328791098077941394655453568687235539786635929977881266607202014024903969324847752640102762671145515395243829817068402624776022369509568460073207080467592067607290711056912112152177971892014280274386867286441127361596828093409053513372759256432744745171591789786990769658901439035134370700043671192226033607550291778793735637698918443136929066246033932192977375794788151522921972080076464989189526252281383463542912985543408599667522717317737652261461288804377098070388991988650065387319502583618838491169818002904251197171588223848950224643119611661553582387320001307308440539749934248999660396257130482423519874444182827172651894520526952488627042840620447137510706832084924618532014911137786871288199474437153966739060090180781569760336978852719766321193193158425154936391500671404596145764321321193093344109454732479289195639 1760902741689632192225801560108400129939979768134489149293036248762361917701089097180647110432769795470776521095916120834771395357711982104467062938992501075987176588376546993574545856865770577790203637173594043121841084062818986672637254480775461466792381820162796122583785608220793757634720597317448092637605898441137951431691532603528147388093578729725051505565039588368159060948710105620197264155080158698046817132819416290799728083428533237297435433817097082560176877936208253743075407050199098883504109764833806239050034968939058007106068022992802756555180751861842510005949516685534137205761515678418767184683795276710426455139742455907814407821183833654990589360255994810475527898256376180611917234494207070510355637947667293715703731323905622652280382066678696348531665401713490027204920258088827389564919813371508764081579920707438209064336744966501223963 5427084484291688259146173499901893755693081454555657097401039541909962034561218999456729950405180016872261496204754095076263637127823077868784316728195425090812403462833887688789131493207379170914258145120361309400796073366532770128809961978732366605620049476032852862141178638881722039333735661624690029812482255035009720692341103343004101295684311858654860195653361305052293373415580384286260174217174934180655303994786975937131170640974799235810867136454673757868894399898022826192506212265094907648355087511589426502447709937708319422391489823074830108235983307405363046964253601411803753858406675813566119251151485146451991781574517562379624140280788153557668913108434823309293515770096037107834116126809887675718478184501781299636874051293923346962459031703709261699313952549789411959920912319838981971962892763491659060165382086368102579589025427202964175123 0380006166346232197825778399608394488444568502271697465214590506599476626823989331766898138247557726527934048380313426164215950081070751638990470439919493853106124235703524789482599155200819080058649538623547770410097765672569671167379152809626754067863853569119549269812353483777263606531293703045349721303818981534414687542479889615622811177403710045775436003526914728280883691136984021376255752258740585532049808059853954179095321473816598612100516266881211565332305118233065136277738235766021315150023363450635646215494797380882335644755220547357159142545267424982074384633981440526712756728268173205286264204906990754976045742402588188203693144999870851234256378163454277724018251828422372617747160295234242916879533841797398532511371411205577936953871062843481404159779173118103674985850133941419195963737913089293558995605887383781268401534421844781478168601 8312978442090151221056385000941014299340121754436817301417938678417504226204026662670716558641967551793687545064139408740472787463774168097889133614571227057332741607590904514294477538950000687841666520619114590088174198030964386551214756321016796025675900585120951432609640391582319391010765889219196713469347840361250824910029879618822045056868711046167624032237554144949969909447567366875711978855330140161600180700470721948074637937304352525811697028712818340527472709621418541083687858194101418724840181142652195011619383654876667653369021040011358640146714869402308249679103264703664830360406329060060839279543836428931255254733742032853868519175126816494217304671897266639508722072404187227478295987226217255769418199462394524139323685821587132181308626153641016531986273884365946027939396854315623551208575162099137393517046323276323016984308580159956820281 5515370651682862055220835558098065380569817928814786677613570123597938817638651712208149658518251377469065956647564188310633670486537228948241081699515605955839681576471220084151771698141796297976231269182768184943328047957817257647609739932805292014129248094516056439223817745847271899500257127184187436757968759196054660956964441062072711975943376431564516211702080769573414333038090022654625435542480866500450702628243574397274416513776517171468575502151357453250420615376931069699568463644906050000813717634358477605489128201086814145070441197735048261804876530987377222139158154681535377434553940257371026772882262859831477763044524327414985894696239268747305696047952497061842239727447797143408987354315427604631047217519648138823069625500459669553817195384802043642664893856708910414047093126999092123836382835624108698665326982941459097246516881846687049683 9506876019552423488134963583057122599535112283839912087237634019247057814994773910147248718169939501280472281591248925182671494010641761420653986953229460132931505153667366208234356327308559682666940308635283884598151192074827728981945093696362989855410955716396944463225326755141491443069707845169094424069266932571165772328500802518544334884048757787255311091999469054154109912766630530319577143020329240268162272093347299851069893264270624157725098571043089218300577930404741593794299455140030041826412186147636766493803213000954654728626509339983488937328193913057957851791117052085416962511346408252779197050613142397974712758257402792190592394892525329987881916797263593366267462673928872799870047812884819002835981386847536765890995458916104508619768335604240221184327391739672343522174116349622885256749418089944087659269603862676202838923756445662000918741 8103572084983436670843951457108781238861258882613987358289955749460160922827434762162842190007296424463042821682564894496328353097956707853449221406879413622713407059238107111717195155180662162139529543337614061725516368904145947296962120596788700855021613968180029725632308198874687304934679494057566139102382034657247066800824620797798165394368737525143244431307234011269799690004201425132876874796343248146814161272324782203843875872849073561414598476486901171744695537481096346281047976026905114704562256295217875034833136733185652293919492831590696631191808848804209093861316623157946200720509896832216311743997943145020456795998236231542642698527290129676213704996805633407002306065794461854918203377719794019932555033177805611259600329910827763262318386405980402972498434227191398351279229275710113062859278326088366206252076643505538740512884391182550225237 5378928914375704378039968280563832313684484582137119698227129201239805974452325876391999117592106057236735675813106235612561701717402422439439037023869187240448532026480628714816022200059408908667532566133210656638433136208955963400505348815406004495815713306083865192272091534324672705597000859856807181196214434119741601191232675771932747692526521930890075829103972401553171748366711421406636252602751680692261907619411383171644114737288818245060226536106310405093270577454912140264677257782658791045797113986581907151651514376234057516051211362002067164694396997550350517189186410171233459816275560482096515750555615409024825950489624797620810026805273011350087609651534890229575495134878886506146761333194928574037805165583982342773333783104153664140474372065463650961604114301212950967756605956139470006477295298842684749393350606676799927032184928224605566412 6711444484439356234123550171449389169601965643188285878619785740247297035877693691789713627357467732450851173940624081256722392343144167276708041042901789310464967642703958720781887229463743656174728330848486601102946489008908976257933858170096085843115693931926123136434216369269507251709479987372077031253776083067505099345901790928104514433387086243947848288623698896327966438689581543820830687544416612273214897429571653052143795895676958098972770856378165547602772086751123390316298628852799178401363956372427841349721782883734207592307654908355475786459542094482569036069209649822756081988182500227901228911193195606132423384160156713344259510248898420661982257051121199796434058100291188220469078399423175684852245299846042401548619210643118834896928955556307379458388624020773735500183369461155936401938510842644210849714711682943997974777607073892519639516 6944581076997826250882390470496066330022811242598106080052395781736231917882980571207582319015007709672779252240277418551974952878992972676407189363362048612814908226874313865365689464348663075392291993423476355865683940563240618195758108625052361840236425161816769177141388614478880292443991727702609105654687770021862590130937131580716723933923469566016667649893855013292240363380389483547381059172832360558948779983624789018300493784960157562268975559611632406792595640987239114859008033546172843514504216779320679613337570098403730632633439978233921641876768430502778369727918192417629951860629935935329156806395476326987980761280036903711380696481202612742874617619348685634794395287742697616483492000742071704316282563037500421360636748261526962164327583081595686531364631034089389018551775684928664932057303921395018120599594665503156601209700442733657426387 6230481805995249404474400095233230973206029887978234201858469238034585121361222479514914106812156837802562502565115835341616045581803533039016766930052480565378607940693848452723261159175900528635264789982176169130712632815665128291509974170595117528485025356915171258038939141842937558407492233455748851171850500333698252294319297235793671898110345796464317671576205475202790955584479187618226574019993207032429454741041842304744723069333502184563149096497729269227840692428871408501971849410329676409134025676458793621570285684851175360353163649926711841536752329517389129677055597658213736332033718037064393358290405966860899918206981814928495156534996822257325342431532264548327557605889026698061356090821447015468219638460522701507316127861375585616753748438876217949139359753044268421417614922945488259298348740194941519989380603484682450206066958395882563615 9536356935895192176207781512227389147222512155932955851063889805418731215236148773887364355439711019396416349700654311724448880584499088181344528138229602705546758600619377602865567413975547304941327282032589122147988309477076016967324578265897802702718717776246811401361183664205712077307434268503260680512730339956550932941297381715219982397319189056703924853190008867731304055116229556395467754845857704993070404576222857048175514311536591540063890392755046427900357679889011349113748567069957220880895202504236524979966926942220206812744090026851296503085542248658794972436947528642439489419692441891156922886218307855187861735004578043138158104784213522360915203282236696613634413491778326721795499278346343576133597486520438908869074095978664420333756276637782066749487027202277069688914364635398865646869468823435287456621285613089761832759521828008901876350 4182338711427214699021900531940654262439359101189805225278038201547713654914880743434367084342933963765017062124728900863999606284465576555831555363648002780879000829064829899792992275848486867854757828137531355753293946629390951421683849238016542513517632894387386430031753444379978575773373314327726936089356920167083719461439343632792135568905080065523073310010643988646934408155253197037006163550642140161932295715047287059679300940756363780535638177400882884153804435489641922319338523023751405292659590517033686824586353447862718864766459931347918115870335934219730326359708753328521166660866139487182271653413426806931018214936686181802320196785586403343716608578440838410998694934364122362402820755209485408729415997544807858732624439070765142343876513737775213643982745057176521313033345965064133883358348759638134922501559394760836668637325203767308413700 3010760233351930493798533308216741162309549890383592403397182303702128861047345820671539665760893066282858414427746770348838466396554461898411293572969598520174932096019620474163863267579571233858987727497968978333549659110066822796100114241303133014791607372962766540164370989147656642630035864174609561039665352558033148067012344144283308808198917676261953569552112761082922860704621114456288332721569634932588529326935597911153781833214965495590854796626204428306099177602537663245502122796937802178675196854845596492820891759786681453762537186568770447572713322678217899320016401325353097611413502068021557446396170999866625031999988254166415246413983038343912175983769029100988835903628503488176323852894074379514112681292426370139498413930429066584969212477195157761616452128502636378127706862106873857629963248423858064237310686676627669640833838886121733781 9218620470797118251600806055860055464784735439089186036949930120488413764636980098163014488354348171403696381520988616224262857467379038465581704870087480771358352391095811341242030218887721889665714818564653613837625329540396605157364895033718308250997136329460762420046792318493203147642497296544738886795471335852284663411133252800525579120838719302025923564159773328019669249357415929578152898847641147038789739151503565227204564886322220674642966898683283964636741054945026826165160240742280929232169204726583259109825174248293620720198194413026609346294333000801978736736651416427473502228821411667214979803063109248777237028510119966422584520905990127846668040896691550361711404003684140020531442816272276341224586616628143021496563523726215393983317584874208406510837149613481634691144234937039679563952915471768686242885012859637337849125044092615927802218 2671615012241683181654312725212679038113663806866952101648452226442917334231488614904616507595140481775014410252504368320801245272816756037591718618566467603799109220574999938383442210656126845183406966700143385005463752360177234171596725250387590291411713731478166545965369086754988711678374567175668529906564125186089666047379255726388908648491597314981000378044619857120090176238868330740377292743247348779258122251484193005929447401137702150759401109600701917771358322219072506518076288450931256787670331248842934183965211606894479220681343763245125337169889556177241121460035275647527175615992557745424427286189181611027982325223139148503341107728822371924395484965965435726138945117672225455536561079820734566192358676981468982550077025592267818023792630970834900492613228478817902933813525849543955972744062814494868339375968744558119789804114759540221170812 4664073433979122210592719118201429898185391933553613759804136752741523416758473260422023274121610562616771306997488565021668842764579770720079164315176012897446323309661654524891020337962224185237567691198943933677178901883718932582293995273402658689060573241967273844975180544199811477935537340545246777972330618180393861592001369747419278161998417437718474557711107418647847071983143041434677344772476457728909869479398117726818006664065449908099221089361793727396187195684213718819947886038256567682885991667054887507814131769578592363488146594840234105410401325816880767492201347126613993458464019747926316160318816544488363487005806480952611704903770357698416033819813479313555970166719277780782873133428546805498040023684511864565261258989172278763311007966527164737797089587177303705468932852307061804136148799970870902845892626787383885384451445204561004193 5792805970000988134988361108880285350018199685142664828764933311800191453962704491109901157600898930928438070097091035189507610496600907263786952769064880565469912833130056803731005007743144868706523521990264304611625996410944203903688902921644171500412398667354623004331597277358519755920985781481707341288654499568855309851190546868232680045838838202529282683056726561248931906476740316895636388181972402270975172749853866208257028087524785788890099177125748618182696951989154644662347337513233882792317057040530582970789082548365021322104752866268021846683286868661531020616305925935108304332189128463629034492746577926504747777111284136828765620905354296595012510352621734902612469347469902317499894871956474712568919937224501534988258548386799059190419868336624361715042782451925227461052524105179838248938036620899605931331914362782531472880506871185639709390 2378524427068156909883268591351520807236416968979142681863011901076549813602972132318498023018945240720201729928539168625401422906918617398131582259623740909873183308528605304678851089464545766144587600757054703078453283368597965359284121016777786988004966833220748843414992572539933344776121612352790095208068690819964132965851777924000357581692222649341918160815176892993379322722259916368472266186846440928220270768497931547824051339296351204955811238592368037929972313311522039364151677602477986835917213561554843663405226476944423932292561453322445530278331435093124279797040351856338208654645792684016921886693307948333521804189642786978621013891664960181237779791143293035504152054519877101255296726477243864115153140629455483247673828788446807183897042104957699865974017548333888576401906418889676068623668009975069419739871990417303010391459386321083833164 4671196558164050689375845675638217174633516788937337777195488184717380734637608000202347563910404425146229193505192540986274071073992734007990508429186231406746328561715067385859938853906019206533395455250439832755938271506923302925106999205754853037652938498528655479389553538185291914269581226119446473019001640114284265778365973872042551275858709128945055006254395969339788597339548017112178291477840975743713135741840499460904152887818646064515716164603933867929728935058542293361444664147764415549240135187161888372844509084137863460622047584325272433952395774995289018382623279613124351026590712580878828143128222619613209521680670764889988706609810941138855911810374810357062693108531594710517579201553248748811788516011187394754011450701791423409827297889767516638027019836401544419705172717898824707448061177061025278915632555280868706792616167570358342426 3939415861002243856667837462265314797095844467060474273663284359570469193713795627460522941401491902605047714605527391506872525303375348285541258465845671701268336843375435401780167588317881877917241218360212682258092311904873298684334667531643706848429596701146799610423869714034243998449697382961579468165326337763288340694941770131508726904409904359323720486912053058079120548699152537859812934672345772849361822150005484466514824603483020761088221049580210104424309092337417879356647926009122524108281258444737049611306200680188305012564237538890842810096376083998153361083946731753922495576451782732297528121244515777747086931873862961363897444176528994941214576514180247016040088684741072960063691538001301891934497954031405464946007155677932456314823640168410178427529210844500528699849305269893891142624125004410857693250065632978914888672975156322815051731 6872844785563162808334883222198493109474816151492915582015676123799552953521255293509446879028536033746370482460162561260686488090230887991124273654751820719830375555742625934567745482613075210380133722619418618924624672967211798291575195708399432106908243923917137518707342927781141523186366649421921126595537228900765002934846658243392271749411233062611778083309100295869189142286658404211290526912193934117101955344955515137939185571500066781282306737090183999008182053441364642164195985786348373719963363735763009542341506739181223508171029278784058275348102578884325982832269525129517458611194809534991717159828034460413200903037559102218248836243509616054058660878177590601916028996122247051416290656507707359661792360879687886862596897371134116529164293326937024969595192442682715548053757094320560428998746996850686116043209594723597305154021957720527656482 9750339465565528803859706882976800382934436405372007544920979354295674209722250127406555221361408051019536019470522842734893727319691800702283206636538995481279198039382768730486529669325499698020849894347278624723038419241612542936379173562098272438083559464404269853478697207274489892592748715622419403718505760154155270481540233126791729890661154976994293408416970554606200376101766108862643832448023636989319035784272399891589869366344460128233704953850620403207202003136249584331096163290547897479648486817378378152398119090425621053543424753681401666643357325606240485400768634699153308631805302662135028808357204491849324378942462696277594803707857605522661308749250210288324296417515409946861501718053406102362783085260297908433468746906772016571974167310835900507112016801097346341015398165073546854328794966428883771927768179849003809204256176595062480332 9231338250074585524266449653622545272148449344334401760777862360395354501707491610704614902787867465275237321683230952521296236769742271605205275610303684216386128515795024577105950536538559679646753437882527803829898910209587855108728592441273485335049593026609826094766434994646335751776188367767261705139070088569665733586420801481703450471858745760235017003002846192767746319323385949797150591298252641011044633370803830379570881978017485972064547740958776991813026621930206476894882061896961265230349758058944933990961607550736845737989291572141999885008520205095299073100643708646646714257574874098066128595536238778996287907694051819194737006051161584682822879532191517970724073127954224271771529967767264429013045139851984485588173443683109333643310586746024902290430947489007672411118269394643050129437795637924914727594909687148464557863269709943765853844 8084452302550713148995699421537264403034633255851189709520940822786642533243552018146090088460023808988500905639774024997424948820202425777447341474220875212488374387009691527445907937775888543762155930660438087146213997926465028360968601435477878111247435486479975805458465842839716451670959228663362051406616837471351875264002257225198402487226869681416293103332130923874605675042415893468992544857438746472665506642438975415015290027188946501599669970963920993051969162450042153801794281242291853612318451933023182169217614074579911371040627227297326796658104599660391449497402727655078995361710932148554692620246757262637888497209751375798847399492441174652579243138084439088172473445107112675791733645928660416273205578982216542597617692282991744481759942867125634622995141991138144022473705057307995633554435455730331822017077680837345220739899498336271955537 7157603134806817211413369083513093977057904518890455282868452065355555946059922875401949113082591609875661390819010497933579510187122142781454586689572061535404267803418158424627641026964770786956027583717099754936588674081075286600867513619873010042635357174720056891848744999400049259936579397469745360967007804177405918743181520286955092502379497256456499757515694951719669750998934549130557683308928614388316030698301638017312026825095771233712009097288151588295268080524642305353856783863571596700974274332193197016814392733460733763108976480461068366851991493436022681031175172029128263439494349914182319074774747215210848470938003878479024489326701350045044224099640808947709653152251831877981237645504734698581253015259874235341167236542627626385282173644096331403255163137910135747185197127099485474362590466159419061003132795123666144598083497410770351305 5921796174031941889668908854917262659921228624787696868347977567647262187603247119409731890829628291468566613992700941327207632933581358775826967768187670359088988561090593227012700871737925203196164356618585528333399669743376555987378773927430019385273100271610021906429885147841902309581294415930946083393339015169629353296708080928262381089931603738125207795638483945787036646766259792633593486516978775520500923664856032470019386019875904536669762346014228135831884196768948771754018318283925842083046152405905945532383247991392742602952551159058200451224078492348287866159075500062272487968757625013127140455299327416881848931583585832650558576464968996628308342736018042335516361890972702235008334015569458624566957770489329069883388823902269146977903447813483796628416619362604892745982449743648376126530574589455560636462618751725975328036156296783117729218 9835495077027461336749316520107039010696304956977111867427049263897483674330474718822731604262107212846381150492350548681688137229271792133775197830064378539077223973827349015140378004306922134928157905330918884023506379610071777407777683867373993926223600793290069527533144581673125910845197230233400063353228958576967706075580292559693251059941891722552037998908840677776794094141822304438284256928296280759696668571017292553961415362026435843521065604882181606667905521596773852805433970361079058039791260919784657016521979164179940975974852399067786118158774084713199294993947897108812126133630314105159279331167792985341128461913607823090760294974022638237562338085821354705252586308618761154589981400161658785419282326951209685377987176958647932363048947872223477911641612313600433606662645706703452130190024378486335962761968063922804577825045305976984556569 4703709697297978868737524825999377615463255333365761263254034110571200833888953239714724715551324934769172922894730578787348828609466154364945113980024124849080892605152171884956891359197261131412162128160095389274605190891583700270438143105342428704561666594753152530179561957256038168034876818530719397791335432698746651912226861100667952350176996085171601913323740625518205577705981231969524006252056285873896867427657839084579781710219906968465617526363052320966384414263019427363859352905774105677148534812531482013630337172964217394775634508027296296227596966852114808203463733346920369694460939983823752172339727409379836010817082008184747051091962232341671365313433866459843732051435318961512203020939121783651202106448872597573129566978564773262043462913198095592775150194734588767709360833786113861505385241220502506121150398194047263027334436870840283269 2207721227365318121373329639218622059393877537580552270650132150478481107061753975227078033277528267610383448269701722667453653510247010977616474417644894747701289400119958794137703413110914749807271645311521793090600661233885027621000566679476398666950771458136405499822837155724789717851933693459389002338726164305970048263947423066840463750451920722588649091528753463659620761471374122033466493442495433849017726131988095110282490727483473117185399981625652902491655083473914658435510582918922642069512066387532299847718303340155111896221327049701183789630748100934234265869752856923408740526520716324554563636964881133268379034258136795450271361201950990162232166069395803800683643789427166148689661582647748852339101759954212787457315648632941514808820885343471107524339744127663851456300178927176377712256850909154027735037473296514989061903207486611550659489 3515918066730415304242073139128801865573719191923774336742099897692151777632637238561264084697169922482416520528528453313722425417207776359350556748754078518517527078368255270964561794828181674811306479329560738655596478456913374773756941712299372866110543314999645907250873759651766769892741230776233037339999754487823985939627849534018260623134265631667267894570532877928373458766990969332100556540667867973496226119319192471535029111633538481404811312939492277946414875769968589169289621768375274040100321985975421219335820194876216749001542091845399308506479253704474880295029781735370915508626668731249611636334196897193212149954176678390227304296462123128686870618506283983263149929368613873233966167895831114023982396776488924206675050143183096088456268437771007902479669508082777160129229700975134591080271038069717637198978602805734015072753420615652206653 9088137439605076071359218796476448938095695495046268304976142684189379665715659071886182993061886952469961836777022144289669264894347589432641562503531649174527852978310830099014088682190486918835825052594432086021498614991012238576355391217993529437157487651106513780674071084953617478504682697228045420859693809883610558068726573814874277706210171462817214570015167057428482708809556315943377628168458187478050227378264753628515858135864754619242247449275498104318125881357146706663120012184315825695521090930283814792573483829410150115399830104729782402477458949295814071568899733612148633329284293215512129036057644886385761358952447302606274434941790687355430571924847484866063392611773227429084631468725315080666930001134906723416152209988093616371575392636738699738423643555118174038362817188809198478471293521413025086923519739890038085702898240441206562268 3547802884607694854067405924896976416595942346667879951748732999631315212236326204193313404331071945784341465721987680484946121351612299471572698142029117117259680428285494548917068843631086951216119312623169804475669047915341787956244662507869477675430800164176309415725488248516064562076863717663205891485719196382972903852865203699197879005881450831860120924929378686536455202069293150194702432633365150942581887773683067287428927665004640980482836004917356675236684119711375920305634686558793770671740818167924003834702890919449255449711720596740161567754252266821005563921848416681200502491864965939455840681874207563627172541667142886594563510232337526890336173722845743495410824546934472009691291933588328239913385843044140398151074986217556997010959195632038330977437811241585552553606558517001010003022892982016228053467917648686764593512060797250043717604 7357954906075638183931771732817971997864327376314941230997157471714931810192232171881779046006145493005827831736682160945909598192088045821945022396690790207461997074163520291870184921211157463240463685293325748840740005282571107747699264687628970842722698673300955989528438575427344405696656786552222109346964200379487202836928524556516374140651509105405987688468959327935192126539704445165298842712068434884774455038411877154504172130225770551736429414430801211048035546894405610965220095834378832258641385489762139323231833068061958458416969821113476367696177224761077691533388954241430692391870371292552548531355995486570975817919290042360532914287490575915961590544459611695469225434150556743962975204050018804028820657800319312378569776416174896454313127177869606817611900333921757863520424132423257438576753820159376379864662479607499317499873281759203241750 4330499575754181947538761066262500311059384134324891234890515607551475543702979566029504286069899112016992262562022893725548090633082589494057695866223712886000791130355707280555194830686504720577735490905652563214252996977040340836816447340078849262112571112938115169164237527062699319288891764964947412114551712320639139216945496343014016098604601826297310471439991288476407626704572403762549735446581711020368266974485206243250328448392999303843742816626944837883895384015219958129582339990102931834057562897030171499369791841002463505397026241929000159287972739599811111853264454337552765888643323581530068802162363086667454860031937982565545082440461893304437751140108542846432991377627843865921164597129383738232406189664005681534360796591662387710081315974979491545361608474216905917686357898956330034170750549498830077140118021682746208979795268002651685982 7305568877678788676979236274731737448912482117904248497745760764417790414668920939874116034677128332459061770412072251930612038920150499627243090071490736724417699949795695180721085189179003760305821208142686900802384825798701724815569412729852643629955002067144965627837881141689342846979887388696067910917769292287256894225866964878158766549809555716327329206296471177571856531738843630987467557703339871692012437219346885822953329148793450942971551809329479210295491217977612942763686234531440086889409519303686381541004782712036364881778252752534573119511951013499632581456249623557001079351570246823615426961674198525163302508589261629347827059670781889145613626419954095111870051743415370754347792456297263796903399863773925556121735883848441158239950820786230985610862052120432023566939907550567452239277341883197166576857786542337231407384951066286051663236 6936600224503753959732749103164744029947071374292951794971672356195688969865995374001153681156570559943059055205618541793982490041228825437079763863367566937254661772379972579987026745118840217380334482636054943044007574318103226933182161170655229252159085914118673001030513675049987834273852485177110747817395379436781814234875065018690851076955628675397022268232588560049107622468016753317267488503141580098428962717042646766296109821014767147330578110258525212196388039656416710092885296948302911749321418730540443988210203529979362530194133597202045650934112758077052440744399879234587396092174725640744538027498073699117486277941691939233358379120290677083451052780628535472672703316705720995342551199159182853890727527385256283846104029810785416698571089004884282757082534464555163801524997879088577453032080707284280364635107848944407539450738760949055419430 0830835501712970979470031174591470851098922412474424781682895333974302964934434634308884096206008386023095141462565176259714421702036896550341659054380111768954442743306502381083489347690459267589288782063595016959941941504747989295814771313880420841017714815336901680548788944484958095840589968373826024835534172074874352066707853408312496218828497750655348471006575724951289532936108332928723276733717973909641210668583152908044525185067497727947646133515094413244707741892605206668985647197898796242745531382099478829679984775712125942717586944155417808953288258079925144396300903810302062767341385895008460008363668892438982816648349447162590975082103707841886947680451301579781451227948313445564732000844460011074865002700404979558102644409598465349420822612785570295401980491727600479458344762688277787409088710746099460454282242429820226806377195182178724686 7599760938055132448338557369547019204546530450750562703882391055521250207744861326920663691932892950923170055383515546676695268662247056788524338947131170866220201577751552707076738599747412909915797647992075960564291737245412382578906809874916596650942264902335666667396354973395129886623290990688123770074584334773784884226254138386525364702349817983486520981985581944584082403462154352319823909827759209779665395060068759913695733092764034257691864881661597736168752106087147779597295502802598398988514963769913121739834677259217131119040033636350836762607503487084361180776429119529197033067724623702866552775423399012700390685267326212323881939407455866108808665300999101743651034802092483857905857226715025265086036015587118648200295262863915813692756054653125234411821074845099420849038997379257170316053485486192350859086149673097151536054105148513215453611 1073696879699714397032863750678129476005142199956858661935254854844277705720820868564638193009474825521252211614575833693543484952358577928815747062671244716901204522919126108196827743781902152780322122394148208338413303970227626239414935170659755870261368135344608612321090322895490098993814444657441046652426337780178305627716468469382913622095805766046388361580420499809822952323696941539865289177884796874058515494219820298375834341457220895265649011608494856065603367350415595625884977513453090141593706627859628759664227976143504092002307240314034528491529796681079825454379145869580992165384729486358867167647004404631460101950123019531794272995746021184837875973687650367355497323341753206538233708176816458682544327389412817579548262091930655262538203209061457882466297518487794209353673579406473711681224109242104883527518446787058184081786543738721977477 8157597264366081011778642434454494233837927518807891339743730952794761435480436231597812781836184984041320100657227120894615733280451374719301844993063584980650008574179811824087066304496390470263658583977222619349679003723259991732346786887419260907286997829873306947667524255688318498249557145008001738511389325626980585638517165531293177862710299235818881976253060827141373414533492399403173299752866100904198381839751718643364468070740290030723050281140949784128588962922850353813384890933318360375972884970706917663648332027677490102576063045916203058932281698957003135466334428380303032011732958180035195749727724675131745728263703083638592700533399651299131025742097124856043601591670194750013862457397996234266425093256858855803648403314053518889153781184755118252981545204830883629147767874513161772596081486289067855758605759653991296463997603956362933573 6205134605043246620322575059989498832488520200247456523405917352657090715252129112444992591549238410520679615085897792971067284020473090609153087458627963207130063350772951026677538022700009896393664020157401389663367113729503529960424919414141031228413729448670542265161913586950415273745715935528998337978829018011675040120759842071689193719577991257213109045996463290288387284755812339444159133252055508942088697554223294836453397285843514250351932724231566468025170065606861784154253465307589736170160205396437760998463554854150467364791921034957073006095777875124816545665059131881069111009865754391954061585280494162439848256820140084808220594356252456376809610814905815570829613011035721061030066498473446098440910757320290061472922424020325130602588033476279922748825695806345964456835581396108853164715176347990446182493709379947183338310868720464914336877 4183344775165559523559545074077526741761818487967983647181935546074368347684551161118056064385894242282945108046308395928928887882971449418887397498468349694902814092726312441611283034497451509251557485071172249716106478323938204526584384985850282567496149792646246365416333830957855323467157676185774695593501530529655714633375742248153496928867691804303161940033094983147534383199114641851160546111796851406311585522572714865707621744947314865783044324075158555866353307559426466148871566816057541142774617825515553232700500881932543434666733714539672972348818853938682969184360141407319114035383622155951548587983535643808315706369456883401077879674456603139819814405544482716384979848738857382341432776369598587056392555551464261911109585139934713390276195216783790396066401137533022651170284773698492854353501548456343683455464268784416620199478782701832494669 7104705385238424055104138591562450814253042482667848506122871449515330133940218736323837043023837946188238749234798251920397641834419363603741394925316083711180342939964986633577761519430688470103543718234909873299499127757695334877505628480068049999324219135590492139674970315286594110233684413441357805458685745288837623463693169643574462646051750321510890452708338090946398875580481289865181037210546262127165640485565420224439415116478760716697363007960250068159263009625789606616808949868314023778402161584794881832212717810554310132147988029117217993584056100072595553351565334020310710451478080065362988496506589734297978057898547274944424803673678476206028022987548515336546541136266828676898814146862661662406154242165082587159408643000692154869973687483044974426225112507077857775450695701946304839586325905474775161093451341539658318695811508199504927213 0278055078800586191309379000240040110904124169712338372612942218283687496571027128335498467978091286105546128216444251214055615900172925123179090310376568829950713002426625102338314192383253395506833954345551808049385478341083996693775893496890572941260658516511540821502969117044320090800634436045940695616498209640112282339878747509866320829541224314831839080636114345152777446335888558585954685735227054968972845858170522601460775198710410845003861096492181428776384050545021611373884101714927634669867305162237313905897754951259115343188030060821644034900399029597929524633205807141000714597354322009468694554105772589148719445207290669029868498903099700664141761244268846871100178202024843843168812823242689439173670461927780668664842077371398196035225116557167682604450284933580828422778581743269980605567012676742204512850243996933065970640332424552348494713 6891615928174393078114093133259965079844780016867357968655071894091846686869884651439790951242651959980063564596770859719494075081239244957854951530025349486469487335294316213875162110154699388353837823411073620045000546264192977217261243794148986811302530768943680151598517898477164468407368556155308269173060936345136466882980568796435473267669179061938902627655743711893901472973486538155006573654454640814598946127027236170628559357399946728974787814990559880642738352881340457559585308843592082915422437655259848336708525967705626441305002791506856338328845809510237642844797587775021532769984260441761668745123434227128445274675322624037307532342779955716800448299308989515499951535028251028081235672021135146856389660062141932534053751955476162019076169734079840485660946395493895389587959210177190443199616248653860626205131260727395987715267255813966240168 6220754698653406587270872286985774379572617193071887224146535563031592960535341213247996683134471278431967310727243657187915780959117339046856320650484809883967857682840441145626564987731892082477220932144996099536660614755329772506498682208126145570469633944656186028323499044917539058162744447865400450703673097139563224472155255217210416684593243167017031016874920477941599055219777146966509440304990522595155952771296118806142245873550279713170397246305596462165406670604071585136322389341650480567562263529351005127536303765187887729976195426187275869938799227208249717743389113155350497846918778249710214920307902808628448304500627607044884627589178947983118438741558666833007165855998803305733939363601272604944167873027318723596572572322502374016322145840880134258288585270251780807624474290732329932542327170410392307752793494607639324831568792999622264727 1618786028726969554375007114014371250326024559510479567454936742402622428532585101558235828158538913187668578661085416277917096364601536775637956541901371226032769675162420959671924101346987327065002276359552330114205555780900134187655131053016998636055886109560553973303258486076506603655772935050889138290647302607708335649364940345541695520006893438496181994316979864485808151462091376348724593509627000840061608137325570542876993029624029656133755314521943852782202451394755163549069558466509270590759611912709897983333402761251912118490013852099002941090986400315850177780527418953518512433831567549968506400495164706998718163176314977336528087933348980021879508220341276578457496767848743305330507429085774921213690166149761786058637852820150087631543717826979930454132650250920502542538907008029541092984492179885293292569193050009216060778874478502750932985 0008264931959797832945224604824952372401949657102585243437102903171796576133822630250653871471296701898196961046773931107952175965242302687447376906959884027028368158274539489597673985397327762387203472109610523661935153156515927577587024006671534889055614154092878256718522285100870448268026932019481264273509215112098602605390483532463233334871901552027045879270448871270933821087124648342096711947701014797060886260304928079062746945649661851627554567091698661231065517240466079426053844822359772244305815978021546172444562890749490544455027876507186450720156488839741718367962483499118732351196027536686651799596084487188940000719359174884521397148853083991604306029394769345927699677785542973606911343471443875829542061770690191753390451593460639891199725594143911947756633774382178151960204744964145619376020139809401777632451436645485825799937861641831426313 0768320590323352050018140265342083300570189021416475045851647432117552881514086725358030224972840798236842636231145491880413646314241307739960038149248768991938737244911567091614578038264248116878712848875434257070668440405295649426319118625824917314844740432294751603578705471298373790767685994597148000966939284529321863256304765458179206592435308953421354065996082304388687477096728865732909507153852539835960594841176600026359864228164643634577673227554581386438908986077777460217274255075867258845839142368235361158744539246778124519768874973863377374653176305755467183255547025126698523559803129942100449452340741973112267731586440023099379196179020733354196585486182728611457077915416867109652065125985009111128749903192866713880836024098546642997782494697503696737263814457262454538238361943629077771618066470884359634465554462686031061229992410303741639333 4968197511946570609599125778274498375272077438684192122169603061193641833948328583812186813880988103463574866011150616373266319507972352712845611068160300796956069398757007309192230399833956368954029494583719975716739441969905717241781516436106060537401138706893295665432830895875917145788372111594361950990982257201635557796671274433444275073198501420887081705009753986508762035846615790553297505908774884937929353074754986510990645503318672743892442396393029758382167527333611362212289677297699137541069756405643281127264370304885999436169604721391501295128439375103562050601924029241334512806313118839453999369901148698886909319232126082383580320955849049267688218049753518097792445479705424551291580116548561722827370335235268005387202255954893347301136959841026120901588227195086141606912866493732865813309510022739131909904480717804561556755704410715830960300 8330187406949674176053412867131036065796951568232626021435020577806779436741774081672251039285526072887522463526468898617411949512064307149383348682949838003909165678553989717257452454303843136581126319617129878590744567570617921456394480306736800529926661886028006331789222768100153807033915425221630072052830357195705452569161003201880527583291240241078253095575619844225150848543747552875056828652674979711806015467731989820301251668985196938956343612111703693781570997239404806859359985152237458357422237216574555200235107412378840790713697093458058695789214946029088062981579427000286570487924919873536781267662550625385838780619284479863369206702065214109592722443013785206372020828576092105901931691240334968653351335070622938879548455649815409264517460865077255614687703975620197016833987767610717780461928823350580746651519069729017715180355826097526276368 5972933696496556966712754828684022876554110400968641889328007433193635125756446034358046057108111870258122864595461953314802797229022088360215497389775932546707981085559822448076075857239774946170905042799464537770206361481110288041688059713379200155322013859743902576482619665150129720242889756094422966738376661394641206683667563657660234245304899531019283092468768002284409725771909378943407172907871966065867848460151880596400742536269331206095312834769197602980139609813996298518198340643818783224207401386927321371249641585906328413934294067846532054321560227899878548400714373980102609142147804022726740334663796524590010429458149090626927074090847144185942601632029576652202469932016310680054009433104131567916251667412917762805598597175876555033092940058850072839382036885967099670749448496197971063588838716521421905815751508102418379487646253484996527571 0065992012401268800990675749684892643663284376293527116869742023617336093427552301171512320517187323746820416245847822804870029267810051479136542792152613258664697665026823407067230742054117184905502164177437460146172434078556115490641537527728034353637239387229604091639949269198069189005287471053464159097496524816139679910973218722782981181598423990898848597362218541625980254474509214279714673521251145601697704412080303772546780917321383852934674018921895313833083604304671661731020287291310080363430523217498815359917246125492659231855590903073326119821922383675490106592230195057584315675141425954172534418781057569090101028696789509507120597045639689682162487822640502469455324431651635219526372021463428370301196859874390568947744549112876042404176395046338067947229833693374743659325558274329233833374702988356015259161179004802503626387391546528234070414 7027079572040875967585767848607028177461264080019145423303003662836243295387730251609458343454750261460947481783987524325210434420954860416275242824747210222730740438198311151844885143463170661926635103149760963420732535255254399311285007724672697655360059575748420803424129573667764972959392574166452107864797515569383536266098207715057489466539110272464560993897818188495015058909114360833728480091573664905254389922985987664409124338432407824475205340685873769893942661950547198404415465545746780320889671120290954567989210755495544315691769966905263101391515864130756353492636891176679501636385416321105444376668600599088421153758436017437747206284011774972038256014114427014803834768883965422413471113621961861349538687653895633273033539073729197015620428353604586935205785106187851609849153027285827330739924322743382113472196263800841106500245572352732556383 1325885793248049984982529531678330330423589191496184435681272884822325323107713699920213349758942030714483185246459680230272428924627696704153779153909617703606430398324623377093496971893044930113379293808668315517908349827434018680095446032390928592893271561897251841190807992129420521069607439760982719257588188266240012978158712365208738337492359956701422481166437023890477637251896720390505103589143866057524314142033831739971119584583596834491367372705382357369756594627625819089258056577049240547121201201267646636628235497565887984372697811305720990647098378555613891718716842885978087071546371549721709212167815318404524989402945717217902031114795051298094433092241049604815449841690411985805419219848649768273635429829449331058022867318130413181012799323417610184312754693278179942791546515223291103533871671725616525554565774010989233673149062885782207633 6770344837536928991640054151460331179100505329610634874081477320493170356872599191949181616626078337314374805914053470862615527663172222148788054693769767136820485683639559086960925626948055706498345682206919715937957239026077394310598286658594756432818541494774617852850042133414550086176812546388968712630179026122150373843210878914856947934986094398731111068245862724541397089029938800574586616785806300101409686768788007814138804135265834674698924651414527849554852457362092066044341870785872505293251802601676015333702603048167198495921556269601460901916182829224458469469644263390299990993574623995784878119190772091447590760279180412004086987151646803327943976166899314815752623309588473075485895307085545658475307445286146816043796459153671753783021781534117530560954908923493126008170205439947988026242912665630663462568944749551160151117777482863827481342 0754283714973742969600797652285881102634025290348540737559550411051832977700602188906373318470058630885429068545296875280663647340277901924033745948022436744495783375430918847753347910436533513893611807418235435309016236253857915436983585766127297964520235648718686051742551843401387564401752390055783935132228431425136868582144822906910897427205080036307754923545072557607954400583025335786326185077104043420329597995584260273700402158529003255839239635789670404077647143854722542397259532535797880922147707107518059324192587122166757086689137743456860764648666634555053398949071087031124575687147067171274308795824054423321990308331232277938710463465789176380319802382049643228434965331989355814934435135418354716367342983672382688165321220855232050386456783849555397286244670725770194283489201481513278791690061641000542498706951078580743281085510763163951078666 8368135490235566674892690557287901058845683411353080905087350676845326697201405187546909146110852184385519050156119527196356623483123631324975620207671389145045702765821267928207199284620053953109458445039680725321646374672879162832701005339906708703895766558780569275915260578904795809310412065966611867811419481189372017297698232219966270580273788766804962070159083559481421385686245172084990552811172363981644899438365147029498123155455741152922832342925688922018652517680685010202423858076014881648613004679387377847449702878248137302412711486381552369540135044389527757561300929025939153869547563267878500616064846591065530660216572757051193208658242145589341676013180623331152833250233964785146823818308993126350749792838191901873866093477223374459217217593438638843136360889273340643567444615757003755537784020791926205383430042065977774443721930968456711559 5998229938852306141780883824974104961790821948250101586037302393515616179501174845928033108524091867410491986082356187730366778141280908420368578042316215760639444272052783667851250780747367521052287864173892662429716694193292577595056898171494281473396710493136362938589362310748852201252865928186422415495048129693581687470922633197393314982144793577366461607173465550997406330017639620738237996101998265666763744626428964420188172718055721936646416540170733241068623552755591634097598488793435975611830608585237495666075681159150790997228899476249533873222863992954401418461755550272905261150033579633960815737175382600584979989765550312788781613748027980363103074985219638350501250326848872427740544292068792977416412731662996893891971801173686282093375825643342305159419352190277516267419672992158932564256719944482668160343662400916767116918312955820321590992 2155842298624794334598977743498569139972569833402523735736955025549436993559247653274363971209612739469992247600813487400294253845853743252538526828348619172751404348743776960572167552950482769519312915595086728831376422717595847802239806263222107565266965742887742088155880680848145704688587891904410581942829335063607410535136716701736879640797053872686695198405564067785508622606873730862764031659774600974520683381610031063444406270126755557924290375558903020081069080236824097115969369039443999166859010027641329662907632562571515002353307460705431539104663448776193468760361713941743552009007675017574615656195252778107416682837630171773795624798187876455526666702127867183614948877165072245516666468120829595599508990347890846594256756867014911791570481976394445766059020077429628870782194701771780623138347483715489563924780714301749010157599018328900156964 3313375573445399125404756328695500528421489817778907578405741664098145079931652236339522162619963041589505138474994775802134587068294341360490935875753566121234952525240951328094042783796264291831194634292813622858779594823725020916598827022581862572702260408431057709818233084096211068016941029171204058029876582880536329448382802091946181249000125882141491279697152661132506558418554679685714988218964520046009359518068361865071721425308011059145266228502772412447391394814132627915769180745185128024719107940450806536246173454388275065369314198594466801828658481750156491060450996075766566862627714712453874873346778423881484350173245300921591754039628838166368806057609243032775669083543522754741084235145927385753151357454774448531543440779608871893641873682914379431642170943063962928235128493838968032585463331612662481367824826307026701609373791992701986788 2478896365201237104835237413625795239917559272905926218390886365574844348010430834722690501892602163638671833229046772401694068216760908305148539483879404279453106315078999206631290443457612782907457891884930703834808951843885499049755102185935890356316508701581689321788282809848560777987046372291958043397956468641226053872546555084779464693117475055467993341863543314167441169147847394499370734292575422786076463688639555434610772196482476734291898995608712274903823936270068694606529624421520549783206359226227338158256914520314802859503483125362854401976391432712344594287793258249464893047465456963085826815725391055555347057528296003161185534645515458905514455655958769565214859459820937089605899695603373800459371268554348067679907385957931456261435006460139894858478985197269527589708595339613905604975627863758648758283154410626421664400072196220219301215 6486324634283134698173440704959681567339249628447400187606976866640345692596090967421788887119266968894285324594162585803763734986539800231166805223980816912459703088483802559507884548582126229498208245809875198514754356778971412302591799989103065058365598438427807731202086793166473532723446885757570300485889194821661224126044135410811832102650645123904167348965655182727870321034207746726211055799436811765625312302305124351079037934270351708197172371619417020073705492127605375692733082368907260490908341847307947050523193903166034657005389161650375473844598331246020857369605207837921343258706265712190398064787840477371168752260367595894885046863466240369014053901709902984840834704479276782550087577390432669337201622775694213890892053889825215834389618521734057122334506172087773552506409462278850531276295869625129884750163448857203805880669576737744455886 7405684471448766083842249803342903520337947717935849125438258514780330664673473061971053491873736264390895459734606959841539373679977371259272756332744852594011027711075360998016751013804488548317582770541208172665976518886673943629561726766939577978935642708305983302473514432808211373607911672437988837636888809211649080240355532012648414741577316913043199823439673276434485094919913818423064378755970299544796914406236325159056111682100931677687319282886001990953310997870119168589582491378799957506596479005732955918342641411712009938186521627747088043822946791469887808741614765161474718453090210076777630441180156472485635811294944486119826861249007318767252040721121592271529788695419705575957572726167798150067031962552143258449634504965394824554801337665685027741356995637268175542706041964682137908355701057400663176688739836207481251126931262036785473615 6420797410772266624419058758224376789568743347208977135551289614071099479272922030922884383692793134790116053657529556624337139582074249056948407721851259933999125326974554324112306792437675131204105089634375347292920662204858367476036822193659547086194595266860755812505696042254927969232995212734273207571975670109957493318154244203473432933025537777885314117098729205650436355838355150837843451999725002271369462754302730904786830681334817761601406037743458375447861596150787391691086701444585304656224781377022727858708502859657284813380560608206201007741347366178052794573398100172206102777289187738938443344680945802438500009527515568903459606859446458362872435610343085024750192948189556353945094914196354967776324814319070564227350838108478300841836953648701694773253777566042022063422450538720963948060994975692016075328346250276854657931450451986188880877 5135146325781376494082425889703136376841256943428461700375523909900169020988121600959017281034378701599912151172866542820555358408752979547350036612888437760989309817187910053561144075603273253208646086389835391852337428569700185379720432814151382403455944554188037562458405884025325659290380167201415575818732809114395927125166396020816647200845083446532081281983670866863633836482113585582488818209972019052057137558217243980884053250036074820777768156095168277311191416697276341802883574161396770346558637796198046614113969546710438660239029008615548999433011126384163249340455303605445552371869930257126737385956540832502453105287459347660005922428086448678768765122047046649881538892050598913830045877169196748371015048586998027530431568931830157462240675186248471202691814607934104925243486040175098558858910844282081124305835321843735139067242661229023880968 9502392202849706459683654925806104212057576124965275847684006197716274266019564100499048861972590689056194107056503153895536432735671420361680405710094867831105654640514670118398697031799057918990322583438378967366917547657535593633611320957332928263835620161134206383111457527468761010391487873011390913572150832536545943408676003649034248550691626003027065994347414255255960928771639780734163665369603107955930808907569636841467825085100300671751954248013132633690950884168910095227233851520024639384803876343685574213675651793298652908784746903374915598207988275757311335635024840702222759754045529032070340759753205274018807389260016221422107916340839925932491420580517115026984383838145388583343826769274905945858207794950276836820790137800116277254965092674308630251147551176724344189462638836380655339677199813548714107805261874920909691858860640020448564563 0507756283228590362059244556493932078237461667652552227152157455665541733896533518766310148594329517874207681354054122914478721179281273562807772327008025146158715417604315509219548861483263475988001376670361171075099945805894670318411638346252630249928838225018080376696630775164840875419134757866326971527830929153845511112151772958017991565808871968304934838868413166360433718445213324307792842816550730073372202653699729537135400892453036771577363927018431928620195298255823337297776907247473125789723921498067876613873217863285248252227769050913351506200833422853188542411363490409166694920723100078960067359955362374606491090782192305518074939971555551132938124721661834792392461263961230812451036196602956558940882800811376102907005384798938746158173335810773602736614066219648654301488679563562373486492129229543693729986451646656183188532566991692689476231 5281760915866779500940265787343158544413356672225316813395332923165046549326381732760167634641720385257390716186886458643859776530258872471093453396118599922203727618505248771657104154136548975455653866126036929630969180409968802869228072262594122158225097991778384481950738194449561147238487545479671545504267845932161709015698898352401859996442753648573133019423082824358528843331932110204019610529113338399423441075638936815469767988006411801956079298581878274208149472656411969296763476188232813617294383989415641745577627677508319944055261078926258177995870508756798242319524111052559551101015534910216084767838448639668961646102052952263003775749466082704464450271105224340092241376001556662360296201317777689425401474924913208903532265312683477556567053141988891693195924304740162468322947923525907452192318068504265695014965978920378470970446232600290847436 0976558204341787425576109845470683381987134621600407623113791535061651022076371345723708097513758960148858976402631213066700972952270219558291607892344106306895425702430717845938816296355141140612084484469945892329385961219574381993187638139558289530188125024840586058087644429100187552582227736513316447761980931889243910752009805764360210112945532220732003587316690659627853436265847054792738327086488213107733268645286110269814510103120669515626098923443403692417698751480644321937246244382670549243079454767023483262209098606607076206109115100191742301182630092646659220670614168915877555708413330174124080303836067477285248406396986961982779360439689215088995047167803366070753811405650289380003442889030971873135158209810240231197122073545963584146193602965021606912682707346323427392228985049864951313805403199033176586788851639816161441706702386049060367603 0979818277122372288266138143285864111929412451619846891787000165635280706121852824192223616240707731967630860947420246702032572702814396182765725277817523032427775105059812321620062361937591288284601560341696596668781425477228825984017949954560785499355880912427315214746010238695875054677874682549585533692188086857329654651806538414475436691971190420127819104989075254404488510058540792853092146564212577962762865878044738199678537207690631009137172800034390698341744380935884307215457517191496402692056898785506432378062781702513017875341481790515149073505287460302746967427394535776171868407240658280490500057932688810468207085999262464846438630409882982748694394555486795105400750607587840927543514455153312023319071715302006836109059037498721725669276082262948709558162517330476838521765533235158203082174519338098999434743944043708748925956192116900052134466 1015398836036847605058404048189993303871545729493724075335694979964529017401104800510917832066414876165865873063938077494900751415648794583859751908320371591523371682770808493515733590405892768869577592551047438843913867660606620028700562402541421809317237266698033996123277175706616454794196880973428118345348605425450721584919576613110783189856376470351834531261774954215038011847764454605336920876550082173838036790638409034567912334409657264709105543079811199907479655294166626606352288799609048962626104577629700431851181629473146289582207253427236909452042360117022592334791546254485094720142587008589488817636471946733285635083435801677749374279080577629099149765644756168832338544942343943074391228399149278771466820698923564656679264065335522217421390360218098998710168467501532436143008146459737368501115407472007936299927603338343123523524308563472105166 1264971097273617323276905241063321344462040255138337605813018044425069837631318739103516236126398036331880657117220120216042544965482948720551571765593391964886636340440065299327815949254903436156506078396233853302526417330321290937850282175408032299487884398635982687656799632267399908224265714000295288013116573646684148447026270466803016889463545877320291807160714890465583470003615457378045744224557465752604106309001097470020218930916076393651223160133551288474712326083854365570164437710303762379205830680087629902303688170522271683494974092219996131548985360121794671201719389879649978318820628335522778613876814564066933604816860091777034604343303920523527983146340012566562577802798495596462333076128421386500304371477588621936915567438678655742395852135883733524411894393162119068137549315365417793564177435276273158018915964715889847272390544248024305937 8711364537038164076780037228032131748668619269734593891546453973389117226759134581033889415935009281263372220927404145924003715258196796970090680413191047259272980868312044113774418620408700266291591728193271935813135628885345928274358167117626577818815448824767671255019968205572201127331201459652362055838024330655533738059424554503700478309893029334236512844360176482761932529066158423011164786283948543755196177346219423729731604661273492153386900694622006599180892920802295547990778832795839431290184623248319339777661706352132493896339250404386329964412750764891509130285696372714539694361824708131677209089573268016828735458592050198443024201329936468099867309375767111301302113146317495353610270482770121136335552704928343115185216000640903387178807697304951356117031290684225557391245611450803978461866069170547629015836807816285655023728686773012710625829 7243547697075714617896109206522376773423919784925716823310389556057326012378376413542817299042097395497210104364797069286585195895511797978122115302601080464821558298767228997420983465688038147177621432275404819102390682367918518407018009904778081010219358291884655582967903214194762235944138664293624880154864789634899617637365913499538050706420847538177744809010553708620000845278359558701768432367351021691148102048907426689873747647129400940549055561182786394034328479549821815417391163340275304061019548401859163581574715030504337088701869498679886618297650995140888367307443354962879516389854337243398481781820517997058392361418822492674295988222511478476851931327942445541002344441365360595180748467812529486933610451660862192348041897339418370718620990343433998391715852770743890380501586906288899632884011487246832636743340676521279877624107714913819589981 1701858380968001119855853080092966729747214637875339664851694132967459705926375920845598769620099934926953499726356457412648003670830915166827214724744195599006095516540214564832594740673204661879179480744638376022602058218183693665318787601994966194769369737520830482566749811093110472022941582384211687888813162847842394448647942041171198759234093740222902280500297135648731459729989405909855430452479206282526789700756468234882868955995481762567088169503703084338892266129881118345904241717313705918912016339654369485474403007491524898081874062385763847908352628069693654606455668041618531197224627720416359110937382471617231689741542499928365043566712608779828246136713118575255068721204385288632026360048498352988383465129751970667968819491380561482397253692295872209835908084027210490788152511318124736331242445166594444258017077032340531531044137181105720745 8511868472418197314218295148910977254505539922967030901626841697417006722988539513080701948075225575932953275207124752727341835275702958819062544568595208013055257720778749868064947221187639686237647922074643167599074251348124368918955054847904566886912574835383597687431883453787258748577719350549862565399467967679378553336613651407695624085284064855660087727941853002354118111890582722400003379251031204861571713746339655488043415703393814908970638179470901820109197265095565717127476214475641929393326828106715330051485887671466295228915484638394013349221676714944263998471340757928817489878492254495583934031695806209824501529567291780025099242745589189488644739320941712011579662655580313392316415637350189249634832627829891061854065418724014719200146100655403593798780719685141536535157196549100501872272582952226516559047043189634838146138145935597073960993 1094030341413303528512453358788677731414555299091614659506743656891353895434062016380236469076314053962129502609586365861501507021595636385368775046569970576499683281921303817072682158483460483068915569520970510248984060615188889581344835824355492772667643843283209812120885634963919856251921101311283000636757353588513893089531363285176410855097443224496731700940268369117070190496372707562224258862062686420491811360325131259563278563072755121628774814901433306954962783158889003871483270636685511181277155654096605294282048441904474365354682848636721676274506668377700256587832828847674421546429375695181047584207471045787664782616134429476839983529778882198475053163841596477645553114327315600266108950628488609328303055157730704099505056823723481706820460779575168264700566698607196757966601770502765864198783871148346233356622097787605653734082727459177806544 1997615189277890834645116050875438674741923620530213089250119030917299379000572163451979085400395724389021904480977462263562641335517431873476435585889372873907404331557235956998255306727842372608310092914613281758097969414848963503074995049602211277910248843557977141575123349416617416680869206268808541932891557567369654211528460802844863563641853155226192277430547629402681852875963864491285365115287345690436855258507238538959126762111372960078708902080264652948868912502973175480492674091847567615263347534944168738680725031661590153817761704958451900414885477388449148006213213050506359193234897460875509626369695710677837476584658239099185023023538755247778509805768516006178431399373499853891235781406967069548486032303467204859215669914621354651914779338802331894136848751293620901946874943192086231510282330200930852207397198105579498618816165772630849318 4251233915376558793829385174773987544650670715301790046194424262631921640774626315705144327829144129690231780388153408616658868098633967493579127747213076321174262401220121722404125851727794670516249236273239902915034844677750372889205815550437479399072133299416591439745536444472973239558165207507364265599365871894231315651595219178811520799566326904630763504505911236969249591618673996579856138152641847193440967979814192183620659386376637083307357717269150620875171055248901607979451709738177425115702549150833638151203787955668638970382559691848649049082918952997300756271120456338000311154641261951030235860417346362965480835028472941731894980366119520317061497720983117307393875157307302782606175497730524195609809007666730797782165040151179731061939705102292510422695158356364074366527561102071217007236564660115389795839901300736782664659082302325331714327 4795644401596533090570885167379035381657597863909421956634103721198616544747991345006800866198344933563685596172558745487885662283976080180740030768346425752158438718932913694073897794585635058691993174810184486817664753944186057669113883232919325101902058543258731207198901116980759920349965899131253068856817843556931256509805558451031655936666141935413093538266099470042372375608775857230521633574780594566466945570831794520152413946221656348815959497378304826829162433518177532944332946356728680128454773294397083032193888000064485799572396210148607065962817268565840723135670706362988155399088159554446641962039918761148710479267855863991195720888663449895081639660827131571065085128002643520092440581345817191349998430106777169379173275202904123520091188507076124408405302160562367610200363015607678231335038476610993176976074632009138829322834473179374968477 6153829126318587175087357825523270066460523044377176392797503275774345072284984931704444819653148975543084170842330161881592549165445485421736960951652673785435329628854327138763393474686431309776396602787247881711800127580570863558478100609273963047794473792410016431115799388726263151920053524617361463412078253534025122543618416735748093252708468356275518836737412199646588856932474274364680056806759413833000850218608765152898238192545082470525256400674621182432991630579993522965863285790345404307492158838178947081833691957218137004390580955482935490853618443825635668543844416351019297865565428729733045643855728915181055215005165165769774126192200985280121773718973101045009850484118183409535574348336381595258750372063095286326683479435381676757235065985385269600096757845135466248592588221725634893737572735891056719855290006204981471453589844690490375540 7072044189087557048793216684656336983499774388051833979725318029632005184236237963146974544623734633640272333544778834058616575963806568894438497890637939002292030927545774123039347502171481947789465066345330312978562983800893729677781239443487597080280930790130680152171229426758341616190537679663922964389316700500179996065208360284553205753640760683089620915608076917129447970514567206629179960839250064562965187952461414825637992518465358858288827764052739147133287517486098945286612170190591973762618841619774638180471169229713785504173195433090027575280635541608350996034455877821444886347112191095169859674933098370462826776364804197302229054838408313773121391506341708640700146607957587127624334877245018507347142756925351209056027878951930017746499033035544869754749494308445528938689172810342040946512376682481327733425711209345891317131055299404753105478 1540054502991154678034633570896299188742088718126796211216798831653618935442530839128648819645824215755093343578434882887928543152633918544556272571062752732218994751580557103723062119882791127234272078378402669494234728034010789538303128862527089433549453471735392398871953268149844395851724202415238886591535563309582743402049529509773464303986592661385833269936891338451246124481137805217600527438755770401669075771163262990438043221159493314671077510170213254315943901694547166410016020145994885176529401295910447549923020750666241377376078091481142228998344440816988744104203434777745808021529094834373717600932877589095306765583752299144400989645973697941361495561430273705436225850283322811625584071723298503390452844160341361737999085874590302740420936991024842539504176183204742071954474998611193843563511157661920890297182556291024337732924929059041837658 5530739363483527221910994041606302177348054963096301982994036071724510535121989020151649345089722577784922444627240249439628071834238262421668774828359053796600659798933129166891329517967922182903778623211870160634311759698759578839846777565420432870981018730787205978646475759803680705179402171174411347847615768574559925779317414902943976374817381054404949418829769675004435566009007043345089591615157479096813280180992972600406999799425555615021190164909946294552524601312806197529579152025102470825865129724411966534571008301642081206182322957746596636076138108270208889771329840729308817381697302481301093947516675050360571291862986650010704570803642936854857132258137191161663614708804705401571293294242007403663531324597485808187240927909998445148375936995894762914533284203676394699477054969374364699641462038543531149728080998041382599798447815392419409282 7604537597068375352561413458223906832297688684357919481148305902678917132800407344063446194203810606360784163307115483510058030800725326012754282776172849900008491062009850095126314368642267764865137837572394730983434085976228444266300311726328558748812252848514257296660258372246416289376458027482220115686340001664693877520322169648917424084841391575793619186808890092886942042349914311043966166402245727422688558180208294164950554296430289231197000243737691379386899354207112829763507386789579348316101100698553768489230242389466428552895773633773223464042264346953604328826797685263419791996722160552902422053700536904580750372200914731572098090775971413855580289865066842845082715253866165299817443523357976064131794617881031079372544689234729471269418198274109360617916404751026332445045089969513835491379080477610804636160589781736826892995818016716325647932 7353492092177724300386209595879980259228435613584539759041154566482335669633710197405036831832662133053270524446581341817676713266373942937532359097442622077785603502636496182097422530228378244501076081917056554501574864145693772469526963674249406859056391184837800839041221317200543372393171241463754171512920217385747964708303288762033615683344080673379967347750932444630079144106316971204619617086927924132619718953727851699033054474557908162471566974976711108550132015013276337374483723410808059706061792485199328890539382976818152404094725077065397856839893493130441192318356653247819877749750285205663636547190056012418637836062789225846013191480851162931008364484727355882961704751704075531247474744441217946100170895412398818533849690578554979250174028101253345954488699379292570170064137961545677045686475018673905538473447185925631094625489723911978133670 8316919307193740686021489763574455837702280079275254894758944512382011239156577499396756362944042128001630920700965114317014323482069746296826858385303574653486941220942232963741319485006885713541511388084459653183496259678496276530478138991799372076288520994209244480679846803781069066537593543432554787327054880573094173408369224610494787540013295930126379023542404826823869774436823915275666268954984864620142594058574952259829661580924344765581566854974715720936644518973468108821676465310716948675126588521757893369150740775034500654094097491243435768280601692164478456252043790838098023526940779815534874145044352902964194463048522284783370603733591022065750175493298156121650188128893587157529980013930085478244636647621868614980233784999240558172531349193584498230122628011908816238096645252444784323692188199858690318854202636382730108992187240700596069758 1829710704867998256771099762365964811663500469561345312491882713577181455551431898789347920286457682651823867568109861209684469131051982226748305143055528720840808551314391628742932174359071227764249088712866471280396831299653789434690508026585858414778547132681739867495409392237768740467830702065845708164040842667239889944956212075669006225891955965088375259133576921568017851560008686201576835144216515257035224958954184243226836210606231394098214378776624512898575500606369679509469981274466359898494103489847380337650072166890537056230133566940018097301382133340688125982579781629405241100175260387500927274858657571828322052459746630308251644337904523801683415732237878472520282027419058653600663390209912353334064936114827982889549527592384177945323599262236618722732750743039515063513488930346002165873152998748811526279222019042954525785493518085613070938 8353388239565475934797689479842056060352390901834016823279296837884698385386159655039627256619770709510877380661938257860947842378681624246268893369650694911244364054168255527620149105795615799060567938138420569607659617096344521421131166746736711897950461536563266570537237078614135070045730318137579682716356181654673728180442503574820913929958552626008474430426037755905194165732063742860589364607327259170050833733210650040062336823457299063071444081599097429974251579197663259122376400353811260338517601174898999396768524102534159524150912785628604608057053543540520212358923108810397752166770835791728938060627329639803958651475725249598586030532760994584432996297937563295148142601860964950641977462679606358354636696199544747669195337652142915353810106573831987118582479298721197530986721763822534572374388102072952810105791542561100157117802537331714812716 0994140330150688477202539227777374986233406362277440325599767553765828914262001091210039784301327732960211406587074493314078858998216831084268161931241443628205921027209551129736211096708077930169873179829057927834520076821136635215990302546554726399177001001446549798941424009656182183765620756075280728685840666709080003909889413512534935744616427628760843845069299848393235354706278812471058253662792194905201652150068581535356231479628184850046599080165042951768653663237872126905423838159249325608483570441451603759879856952774138681712979569569347563698574665643064350173503187280839596982841346535864611512460236262427114576653073515040172803723320749517647487160854017890435840410468572328127662435872065941625282526716821666125603800456285945409947399958471282579824849126990199456271053391251083724846611404080646055238011363462796407321941221379978376572 6035972260253153063253650523519610740316989877111076380383687265607868078236576763544770875514684673318773909269999539086655522072493523544621018264736711600610386304886281461948534860022271376480682575953407721882461791776603359063145565411349974814825089645000921638331516643194851392155327710604999392551959608062318143599082930305516649092947680760012059105863717061708196500022075715100461268474789080404123235880097378611382914472813239511447713791931273108887219494967218683875989599185144671703434128678762187493409639988323346274341482712615616075299969395063074695120438491848726185459463404727228743405718021654664977883739485940399770607768160436617390194632716487144041754073198665263156882154255503672339859618615762216670608564577971354142004385616974402847426746295612158316490753752163219480277027106919433813451986941503464542531134719093800226436 5946124742123780156505520723230565456439800435509001490511790128690883378207457661850416335974696724690520225199014115642131625962622762953384239445641069448668195304150994047012053796039841011047715221761573081802420729512040246686044092550195345378387566780176293216586046441936521821169835201288576161984095050220490095683098193167645064318186587291500359897976501709255696912747016167507462589581165913394835891913005263912306608406248761800453410630127823384559456953734743742078840786281845961584598348932188880108509857518127442600144311101453064234842507813274786423586783803104550713867594689957292675059658631268679654013114194171422922884025885172143814780032853461275222856611692510969727806564789442744166937736689833350171502066191228246049352034712959949955807466186812213080574926618295008715695714145412825677347104669035359264957480173587702515216 8896065447066216804120390162765550703365784785112916014512304994765879332898215781540132747149283365134992913522192731398410865544778943265294382784316055468376635158423785958020431953272336023979674671922898253737320251658331992535444259360335101587004356324221079572715723026886031779350900487685296682072796772302796423250284273368119245810646220859644976654941077081361516547480933733411329346681711773304227813937817653983764810555377281708073987703425794124890455265370332945810781389779062534665529757841068982617333007440360456722327907579497762452483239596451420829205498898231744028397148810210414946074071265503343376451457525983699158695313248050455531473738278160318847061235301823039322029945397632852463193540739566923228608551940688934320719933085026358160259706210417113750033189099099243125999144631675430650204366852617826134893080134999574671507 5706301407263122878008023461440816941789276238473283467469493901525728656894764115496984963422383300227925459181757310187421961514464916477763291244979642632629223686402267563155594185655099045941352516040572697260941126214318520768030513959831988630586153197023906752395868613621204968134973485923567010884955754160757699622366260268244235820590391323504070535865801049377001551449725970264906813222651817076553946105836290199095535797102380842630187612738939367179284508854775116912003944763201084624004346609508272010934668179008540987117603916328484112509983405635878215459675232986153895447031323763205300555652387042318786059307923396421430732577807670730354767780700705323657945197934806039610174164589163270940610520609847784275915878263118441058445536449915388777491309861724042431600491659806851135125584567180523961551026334122132851270694208182889077169 0905786760503826292403059238855196425268274399876396877412631131039348062643911491403086984625856256779943169417746492819114299867146445878398125918887715713965063954253358086666215187626400638290957165066581362525148812130738381520657911776107723507986035970142403815214294820361705309103551210567302337516132430542855246726560302741890809661749228675050765805248497128395875546585988657287699412198896398137030498944548495056080851887219998667532502506419646377568665015489326114708905062236450316481446261484320003245069158034901356368905864944746375456831319328616101059588874844962794032374027809447527197995000814890771261301592349342333502583753562225264477568957935885480434507555385155980082905740251652738214110835031884433261181987426923525351845274567911305341498718625837733070061776982344829406260326588976597185148672539538103345290038106559078232363 6813309048239080928634020889712144062750019652248617842043580818714409148735265414448913995690078249928304208491266860312632588555823327625519102820290766153280140485380396339224932122293529727977886850730313565989837768004576749234495126432811896058174083978238227763307066555352071370120007438393516089666816216193079015052355584175290836381501902513477046330926098776953837121154142350775807991317181675472689759041205133152143635985164591849116232687034987590302904193080850444828547186682711168146334574384959901394760695191422526980876438386337774291123411110772959430909527769211456854396682368502553520934028216010356738047397455727762005112664366996979094794814847756588604841526562975064428073902812231034969450605373882667264560288890794053110766506725523986596955968417817083358342498140864062571958623848555835287606023748728925277702985766666026558789 4904346510457473532019790900894348172017204770264671215653120421733042376395092951711844682957962009418789903200204418880118067730868082300820111858059643753542726564645097203080494225552811207109046967248210689325031925798174131147349635329837167122099134595380447448259784066084269221658393505433846934854062216086521368859306588178827450256239432063187985056101401845590724667331938562308677331329717991727749953359053093909492683871164755473362676158140755726991672040204474036184023312000729492487277554443538701968722875500715564229387826450170538291099371244856341485634749454648324810166961166878994080081541998386280973566069425616098277544260069636207770714222404306535962051383254584942957058576342293050471412437184490265677503744036379981890553874206445447946364352320326139648228393022288238306936694982526366581968155861365625235913180825028025602647 2898111664364655422440099961456787916724431517266038629180226985626407185581530117894832499294703215950414492938422503911912295136833175113689478063126491920125570341825432899371637369660439246055964643973392804538856946085115257504686257120354113771737172693934561502786410504498733443883597430525105672214697210243716929863144521475327688041805190765995108397726240865243507352357252116177943745321417596861362613609625680662489489140374390349778018294538649624627001781386620372189579504060411551043716601583095877509512080217553311037072401903316302690939124947375141110320195912989965321869534629770372335826944538136701569278558133877897041642276533636895136527821652520916584478323173123978561595464705310636222732545095411970305349856735081027248129704902782928742797940415712549457981722056212493241114806593929502810961530103739641084229776097412008479883 1708481337355403481745931052453376921150802333966643555214746228027388039698931094221568625022665892569140675532518716410063549627937572265676806586798235755124571974558956876075332342351234019957000713758045342387878209935568340803294469788679329975899917906284314097842629958548654489187257739304408622405455016359844452939295272704252666323196760094137631336460600703651003557961390937441736273449904092006075244333503762885095878669390263324101759850326816798627056439296158721267432572207833286320328727623487524982673912256799722351064146189940636721245947907105724432748069697466938110818657032158407269715791796316968904977738922620159433666082284060845026736227063503539806687332072132322752225955688752213604992511777570051956769867726613377130613429431330811675926745677818556176715748832338835785074865532496722295908835489392220674428131690522849886293 8941332700734541248830128456190938476132217224659118965422228140838660493087247407961732514270172985434088337835380896321223750724135421863658653751087631308948866959406029098511329493021079287591633990909399599534691525412868560760135628726855096757875614982197134214275799336534731643389470086278306395538816784180289895759964744224243380643580955457745507286203853014094789803872266579198776112019914885366276024096004285952247759579095464558556011236041121476501087564473751217716935436563740341901939834485574992973334739595103845146290819102012771081853816792355978107461687312127444237855287327868413923876018296614352073295296969227576933307325447137377165857445194583595589766434221729554179534890695065380292529492940664687242134079200910435510968704663416179871417579956808722393078528345078205525118386591580396307843568119461748057980925661180301063518 7950968126936343481598337742238877929721026491647861412998879901668630446898033300502400108505932740327165847832509459858265448367916171539463660617532810008299925841356666991676153151842196469814811827490453082413126009627197374242038125252854330342053055242070947793075956865758012033159713084327656065660324484948702084773603334228983927313766232516572489002281075855875404003758483259755716484729122059641251067694322708170566106786961965506048348654967138104818553520491996906964281717312626947399441749577212681717469983680442548664284537692542135672083766439065473986576509294897126179190380292647669784031940492246761413490701456249969069984419370949429068858978657923157518006524086251269022315490916403711889090275685126989432257406520735002011043748869840901427105955807785820729761969981563346271697081414625348800365903905636055461207144674322652706132 2273880970761224901814803854862289174402216700205271357052431231630696714867677313458582317922094008997279190913812860058678485193756458869816438077362347356430767796148585715861699829459976612148261183607688768251212417243836381596278627380823867701665480261534990417610161506362513722810538791172307389615874678148541034921512281694589677229079015729061468333383702715351800586146621821858556381835441878947461883780144786879055888488927955816290884498446383301779177562853286981385240161759558536218068677590239935772457268139626998417773179448319542110887995784645812864047500911958633389250011513545708620222143602495710868814682719638650560160427668099279118961815732629666584563297632204390160536623742360412991555378806864431458400571055440289789795911653156804792059265956032700041037433939586722000907105640143855764019889644905211863689533973086592881300 9250257204200097616486732632906364592469518413169933347598645459948346215964022729012522735163247884070564721190908592801522861088633659471954969086445682341698678131586404894911830475279027043670433747799147737674780910267788365963666289232378196064988150522059049678459124165166353103030511560310411266775868469282729711547186024899030213924868274431389882340722841380610860289753865426292565473985073003136748253395277873791825738935466515819127835917705008891237286560443709012750659620438548430207909177067247822390399818730871883078172275323567896035044410691304376342726722721631511001093000617661724351256898555718095632772925128259598236786844277053886101835294939367405223843196384088361685931416160242254153190143952000963195359628297660175687649079008432319530412888287148855770199923109454430490080308771362049890735252979825927919832016799678574802484 8121633539781408359135158227976669070866241192592329030946782428566453317122682390501570901269532006225697417870626505202837828927846349968602995496582575558933235244654783547030139373998604249797370599109984417046171529819166802422690474783476064885288502958230148408439572180024147358582002007881466667758241537003259203432536895736624837895204775443107990760839242126401107864279084972755899077727551016825431045124986790019565308668752968416853981464456458778599784719770868833820158178400916682750735785823337390174249814454926963989293119529243643608280277080757460708940050803590606419709690716274355419594692204315841831536109536552826339660483380257463857588566908078595792280905667758407779648151944582806228602951746640837903298778979795123395029976101052106024045267250119431909126954291392106266671488592234754979969369407834368699726513978011383645794 0565991534677920733245924241437970842086571023712348879383907019825379074363486314024377376656023676060514728052042023989518557271620707607547590672849604441141093628312365892791737967802508082186116428722002626037189342733539764536294809012587029314410037306205150278789198511098476512167990484692906633275297425015120137423440772509204442829834543528088981668911392160928238790810775062705667486848175738643830223474053776049872226344271748736473843138666308181829223141284068390267516924223782929178847944450622894597303416342355328693783977985991678066641704678091002664010458232752331182250143857301481420172295307047357125269191343835874686648374191179631409401882923330361321627120359941008562796985423624890876543815644594786703491551629648408607899762079023795079590770330583386370200453319211462317557521985597794684965424146629026608896397312833184553824 9838876758409245663826251891711822595685486723525405733208319839937819493804264208532834739338433111864429752483150292797507426389374158855049253740721699058156248722715240215554993687447104058780366586799780822927690565629565779941571074624614146610078320163727037287718448882571120982144580051698339333790797843383415129321140702716628784965353059061183451725266446400282247623796102068876342616457393075607266752032628782161649521078082184480855456224095897160355517807986138973272148245060786187546263142411214032913295194538259018548919922523494504392848810609336293333303780605111025498201972015721971000124247272605701906199287721386059970788889332343625116283372231743638809424252037814428295802385003229514904064309414092485484926192792087084702164105184251357827792665802008576126988577715438243582178976734575374330068827400463524873800340590636952661531 0977291196768342655878075749332530727090314017258818102013863271494428397158062735365813553797093941792740713526560185711194131003112218024708598562132850322164329532583949076189554356267368206296922531791051290310583003198443874385862191498899419765019189883568254688518442222298835986524716626668023495719388273315002071804796463623422841367735423277124282967135066321465172583294211787641623250320124231762780426357402766814723520324276152018290552209439962594508314866712622262330146764383448807456360545266348528726971252706073380149659925578447988354643353545522351206677395578911352724465763949957995164583232876139768858938532464481763890381695290641264683297317761250905864056536569511192656379268992596425780847458287414059059514146279184277763441376937533810003735216196648950921947863405849002287850511274355171105723581798351551074004811993996620538116 0731112601691608765906987323361810113943122719791139774502363054997933994330393939589198059371178135699034794431675412661946560096128545823894088295722087679570164356818424677997863113758222486674212659865961863307038118215024731675351700176698117313463474621209577792493748894577566927789567736894625971583106797610553923065221662976859527680337477767760873027483762116405438936980779557192603138114042345703115146784300490239656181584727337721753392062357076034867073682975621647296125776935883987695693584642560617983855651917442071546661995923451035168586582333006474692083390525577953799847488618578165709653797680267916582642608637392014349361370621653518514045797589217847068686105459849801549277724617672817300760986956873728845766249544501583038454202305153639007793741558296045948331068694753818014575798156566115132817330740687666380989785797314224365028 0204739652837343261825716917461127686686066510813869942003784796139310623401264649661814753793462777485385772153834126977597941497081451138729285515836535266567928396644547484274712299450890137273290969817605450751609329029707109216701185803279615596439177288872926834720879993431529183669900715161440773233080109905753438201747016344618275383880010074723833793559067943720706108520322424955405849880529847246242158966424112584041535894794367609923501465671158562494038340031306592162220799890899941226059537181887118243377696055864209135910258909446758689260317309375854763568305711128252722847098344391335217702365891707342476159917187014215781513977558399797687925710620530423285745767858187379300872232023961605328449654074417431383601745809275860887286369626091800027982350784128663627851163629365553984642746007053072608652646388477296683432617207752287795698 8378609281846539384240698158338024374113833915303667572817104641174733232817491218541181586593584076212396552515028473757129032892195534983151674347650527108595391001436891374250072988249728007294673179977442585238333524027790777055430154914757316055103065714078116440236967682956008751536461736128236446516845533497100096748285177585026356075525367753629924324747570712249628783960614587793600066108100516974709967614298770361379350977792212505415405089710910666415583540534561239043513410415022891087862355577970960053654397835350977478566349421409727323912094496467272289231519627312086813488622897062126492468880686626134329703002400506217595063756614827666037066618288173889787167831975270142376622683506612131912598176440697120450769503441791089247655430505752010187019226418002266961278017181890481751619410341605450875015266531087628936199745959439712712005 9781851011691996407484499680870153575754543354990440897433940305884111620888774799671060395796770987141762636452695115434754361779088061448013911838708982583813459926082813063952803895013988195790357848390465596642023825307229631593053703029942793444231618806014488525066991948386099041583196235225750316694493027705977515044232709898853353583309966524226875948388018190323004557419730179303513381314813140833026070183977395657358852423985374658168978930409194780443193161090448338298821494482103985757613172514032741843488881675023914693338946561228251133347316194304224732766507063223872614721795086517089840749901444320990640287682725630127989967792144843251146315021013589733711895381889683673656823008203481907053097874750557103450058243558203549723188855952928924774786921364150052768613479301320348329996687427602669932860060251655503470245381047234271046060 1837393172622458995972639725233195768379089953027256798034451879699514045467426334350127326883057873641629029682534311498791400360851221505151026557381989809339819751742809071765931429817123396145188674875016903153652116571925873338429540956135587669083882928366793235437939758821295354020507686824672634487153930106933267325130630652033557425503567411803422259961261978394682561179189596575274597088561754216740216499912685480163418846669410983973156318797833263938936059450398945557441454038566999909498423652999442004314604242768000044850134151835567610047635573010384505636925133130512724615033410757082967406771283182267170077019773363309436209839977073412553936401298180109149013370913967718429421195119391989817072126946592042415688382234420506010521299448308191825404317865684995349524657247271486871228942064294994941495395193444448617556013564405067656913 5635008577357630361543088796216283193493952223518545444845343522393410351922346489751169915263011613151637919427872660809038302913426759738549362840302193486265939891515747707328680917307588811000338130724177971116339814620988028897748925543462458495932362819546091596063568338194318683437489006591382629572942256554346454442714216821970264194335060552623448259854375472709333564863310345037058571673076797643876648275797195089313993370843297451675145701451471230568234107405731009939151060356833217152653787706626037413206622255709856150293857068203638741696605682659143738602145833782248202035684594935090635115793347143774779177814226327370635483032601844748325758739611118511638406815109839496826466449824918408981229575339351256417013570707189619078339086864916218990565758411315033161127940115163024926974411730468272313706067200640195266362813084733540700325 6551166164949099735822429069785290915729433928270530653434495322398717590902542148627319531650349950656325106443235116722007128757216654007761098005201530738990902815808164084009072661622203523382692458034029181479676396351715385218435966772003198065720178272950959191985208270554341681722601244318326245242033412004436121929147390276194489563448557350388553246633614446575252548009611424562754239612686497881803659137894089273627828914848659761429508050960942761469311498805062687260144342500578855894510314568496547510703500145713068473710534707427305799760172973896897094441809288269612036406132120801554375525281234419992197951103936432694160263000404507870116543409013154024255170451279787039273380319681061602300456242286053572711288669822446088233267013484938748915011677301246621185849514485677571254776849256326571049382267929216030309809973753486535465629 1947743181455174578644484518829248664306271835678173147867928920449227307432935996140210559644449550840445660167502922846309304066891429648143982456028419867434613279897448717299314398838364524104948746063722518182771817208233430437749539583900646268049245802907583443287594744586524646880658982105807260948726933152978150437055827127710509502085042142882771986819927790744181953676646688591819224620331920944259965037740314012810713630286078483814459622856784406336747487642796684443763700880752900208059216468167284083691991948271029650000443539219956992328452872192326697298557657158882530145028133712143708241205363158990465763892417483697876825399067797760139551302031129170212840827852779587341532272404613265485507086291440998718416219385568192289611644549074615113553373835169177940329973648519890210945450482301186990429678754312488313574993580967991229155 9513562145763121831462942924818208983467711814480044582675165124549167077173946554945032050681475103447729830749282083844521597777850334589993516859449105019718553722007444634361516083204599237362733430959760414340982217712473052873314519335861664353954211884734483110567146030862569160519353118563382701942303488704432570256820494612247585186741787338148408266369787548639052889518446601065189404842400115174509648707384867265814599493105175214075830227947639878927554618691283278196629491731190501374971830294321456666357937752709726318847918964711532998600170034150297097591069210786640226638792778405322372312440329355930198383788764583211370614854843849260708958108620432252967597777713789465622736161853956684087614746824430690359234785264971975216497012032451874263392700442997176569060108075522565215421196835021388476261372502320564477258969370654656985491 2900812943429034563894509281522149656606874243296481418788756290533118954875191292590602345892527025235773109900265696814839191389249914236509599306580336273678351097637005341535612431360301604544938468605751023155109372716668381025535731549487882863394514183816126323186493677456677386656009561912123045885743227182853506634160074438100509864140134639180421236359980805790576650388338331530961441664093944769440379502224942765684685663103086639332106802665191890470458912209838920291463609870741034216159992878124573858047486644223621708971130301844949824144783311636193023488598333253427473734255952634167023556603624269378076819450482912793701883977594291586807548513656526115358099064794298445363750979429834909841393773634615948640215811903691069326683726916295221329852781067507134794518641214307431297675983579438382421092891639983847062145316055350675261551 9277695322686534399003548623276251748440551139389589709820680733443013019438113581320193414720954061675677700804945462426899946857215098706031275320872858364877270447504702144834577277570957644858948966787785532282455762871335764131057383666426383144322533396306295224843119307213027559390310993722845976412259530601036582878688455660074991501170974822004028955083489646856497446464710703527376948603734254625486889024200234269075480499628038525418589098127415048663545419118972687367198401513196445864656952447252298576247802549952097786094202603718049188008971933077778690573943702578151123735122222308703681379005140290243344758924707142055932904574800258344497864517128451349187642491299388810628536003866450454397124497164292928465124956339536953894471871902786491283392532527954676590603893354945854205659774794898312393794519990527686207290840380216349252219 1694600926669780782537239322884308531989103662484064896398263334043943667561403387431266322865719565979331141688325303171012778312721138154748889544164146816911337230930755352727497340662366944402198917879272955103380546039822338669619978878151870553440063129842354178344608111479133331806652260926070659137983217223237480050008837211556404357774906818391779540401377898940085463599749403700617504530865312843860879160620079210523586958440021948718193939247672876646866012965576054596512589109422211069834587876195670966427296726352605778495235880166492577527299932547372854760105641200686509262515214955737697338043639524124970564415796871030962915504562745080057031911240113460077360647097708629536860432268628258945358289832337137497907786788208645158053683270559974316853435783717435517139550604450354379157593478438127472368172936977832117874043924758489819963 8203349611654744061127667335229037967096933353230111773151747644344876934491001709304165466840426913192409735052372017708894039798680928786435137470092911531558229818252037529312828517846255479092723403246711452188767223889714516251294377134232266846574337467451257944320613974235112466710350518500897066972885059724434924242656546903237311900964534550806162096414144966021267978077163038722316923763528810008862070624794663579708463660729616096453178286520281527683932098828746598050692211951067166588370885743966863985780769181339984206686127927811644267584073454001658197403444757487581311970835913769908469556934796096739236691330058656622370949673792213747714483979995383091836495480072255990758627815116705552340202190116783754159632384419704773247886813945227336957374105235845312392253913783972385703675411177724527929564327031036783073516524697655287868054 5587129120001671612996454245266105323081549299046169685751386518453345006726092616799821415539559766973559546298543120297380286419861760835753385249656751867733158275730471123198510733718779524566404154983884831234961055576759436942473685716209179240793808860414493611014674375211439327438563396890032147137133081056780533253591862540055092478253594705846502231737266895323266883905912208997379262119603708767908597325103906850547503526456005001496869077620164729953023792788474243843623898576191224211142052196209524957851429840563487956724037255513715251925245268821022531224458624940529688970728780949331140230935084428184403912890201186016778060236514515541328397160310234402859358439906425420224697152620204473913412823553038604810161010158398803980064255124725531972741309229394758889680571655715000206312633499203722779026288574337614717840909849332891967024 2461631014166818165838038615639407100765637166542719133822361233784271184084040816184595629662579515608157111492176530316123603245159488409001325630331294265464779952350329398621350937917121117365046121584405484894200694315842079594143438838531916743966786887256314744344518065732047262205749934621937845437225043869951886689090618610233431960288379246183510685128112546258856488946693739960072387551378519

1 Other sequences

These methods also work for other sequences of the form

k1 ¯k2 NormK /Q(1 + γλ λ )

k1 ¯k2 k1+k2 = 1 + TraceK /Q(γλ λ ) + NormK /Q(γ)2 , √ √ 1+ −7 with K = Q( −7) and λ = 2 . Complexity

For numbers N, the algorithm runs in quasi-quadratic time: O˜ (log2 N).

For comparison, Goldwasser-Kilian has an expected runtime of O(log11 N), while Atkin-Morain has a heuristic runtime of O˜ (log4 N). Work in Progress

We are working on generalizations to: elliptic curves with complex multiplication by fields of class number > 1, abelian surfaces with complex multiplication. Deterministic elliptic curve primality proving for special sequences

Alice Silverberg

UC Irvine

Hawaii Conference in Algebraic Number Theory, Arithmetic Geometry and Modular Forms March 8, 2012