From fae4437d184996d432457f59c7f4b915249d3022 Mon Sep 17 00:00:00 2001 From: Shine wOng <1551885@tongji.edu.cn> Date: Wed, 8 May 2019 09:49:12 +0800 Subject: [PATCH] update directory & add some src codes --- thu_dsa/{ => chp1}/chp1.md | 0 thu_dsa/chp1/fib/fib | Bin 0 -> 9208 bytes thu_dsa/chp1/fib/fib.cpp | 62 + thu_dsa/chp1/lcs/Makefile | 12 + thu_dsa/chp1/lcs/lcs.cpp | 31 + thu_dsa/chp1/lcs/lcs.h | 8 + thu_dsa/chp1/lcs/lcs.o | Bin 0 -> 55720 bytes thu_dsa/chp1/lcs/lcstest | Bin 0 -> 36352 bytes thu_dsa/chp1/lcs/test_lcs.cpp | 43 + thu_dsa/chp1/lcs/test_lcs.o | Bin 0 -> 8128 bytes thu_dsa/chp1/max2/Makefile | 16 + thu_dsa/chp1/max2/data.txt | 0 thu_dsa/chp1/max2/generateTestData.py | 10 + thu_dsa/chp1/max2/max2.cpp | 71 + thu_dsa/chp1/max2/max2.h | 11 + thu_dsa/chp1/max2/max2.o | Bin 0 -> 4288 bytes thu_dsa/chp1/max2/max2test | Bin 0 -> 20248 bytes thu_dsa/chp1/max2/max2test.cpp | 78 + thu_dsa/chp1/max2/max2test.o | Bin 0 -> 10024 bytes thu_dsa/chp1/max2/testData.txt | 10001 ++++++++++++++++++++++++ 20 files changed, 10343 insertions(+) rename thu_dsa/{ => chp1}/chp1.md (100%) create mode 100644 thu_dsa/chp1/fib/fib create mode 100644 thu_dsa/chp1/fib/fib.cpp create mode 100644 thu_dsa/chp1/lcs/Makefile create mode 100644 thu_dsa/chp1/lcs/lcs.cpp create mode 100644 thu_dsa/chp1/lcs/lcs.h create mode 100644 thu_dsa/chp1/lcs/lcs.o create mode 100644 thu_dsa/chp1/lcs/lcstest create mode 100644 thu_dsa/chp1/lcs/test_lcs.cpp create mode 100644 thu_dsa/chp1/lcs/test_lcs.o create mode 100644 thu_dsa/chp1/max2/Makefile create mode 100644 thu_dsa/chp1/max2/data.txt create mode 100644 thu_dsa/chp1/max2/generateTestData.py create mode 100644 thu_dsa/chp1/max2/max2.cpp create mode 100644 thu_dsa/chp1/max2/max2.h create mode 100644 thu_dsa/chp1/max2/max2.o create mode 100644 thu_dsa/chp1/max2/max2test create mode 100644 thu_dsa/chp1/max2/max2test.cpp create mode 100644 thu_dsa/chp1/max2/max2test.o create mode 100644 thu_dsa/chp1/max2/testData.txt diff --git a/thu_dsa/chp1.md b/thu_dsa/chp1/chp1.md similarity index 100% rename from thu_dsa/chp1.md rename to thu_dsa/chp1/chp1.md diff --git a/thu_dsa/chp1/fib/fib b/thu_dsa/chp1/fib/fib new file mode 100644 index 0000000000000000000000000000000000000000..82979f2ce888afb1216b4f2d0c208ee21a8b4272 GIT binary patch literal 9208 zcmc&(4QyN06~4C9B>i(;C?jpr>OrfvbTLVPLTELxlem3BX`8kw6j*q5Y$x$Z?96^H zX|;~BlulOGE&?=l(x#!YA(*z&A%r?WBqdb?Ow-CnStmftP?;QBwg9EFpw#=$efKyo zFV2QEO*_%^x#zp*oO|wl_uhB!$pgWrjZTL{FgeAof~28Rzl6+RA!@IaqQYv$OyL(x z#C4(+$P7GwSwq|`G0!R2%*&OY3%mqRtv*?M6#=JOLg$wvcP;)1;(8FM}4EGMfq!S`XQ0*Cng%? z?*u1ZqUQIE2$ef$OA*{J3(O-XESR(1HrP>|Uz9vbal2}7x^XF2@iSN56*qOo+G^I` z)D@}hipA5tmA$n!l{IU9sf2H}>^J!*-A!9|%9eN>y^tv81$bxK&sVhSH9^`m4Vyr+~A39nj3@1{oRdPjF6uBVJp z($ICG-@ZrR9_@&wjA*jHE0jt_Q$lZS*{nyRNd>oTuJ203qb;GfuBcg8yyosLJB->` zBBi&5Qqi@I@tDz29o!@Isdzo%h%0P{)RQ*QD1{WhPY-wAr?-bu4m*DeT02bEcWMv*LpnHd#RUgiW?Vawy-jnR(q6w}TvPBio4w6jB3g&d z_78k*tlTR^dj3urX5$E~_0)_v0XaUFEe(3`fzkSI6X_Y}AAw!L*@tA1KixXE4>nZB zoAPG%U(hn?(UIWgDnvW@3i_PgcO{=6364|r{lW1K!OIUU2hWUTAID44GB1;GYVZ_7dS>@SjiE!mSi63m(QIc1-N z{Zc@({oEw`=cRoP_A;JVhpBTr(7Ousu5bSZVU*(6kuEzwv#EFc4a1 zSjtYwCrNgk)%s3W+|w$(ScWK~^_MJLAtMOps)xvL`YNqIII4|Mq{4LmRX97`oYxKq z$FvB$%ZRgUfdbF2{5vc#h)j51!i)eEWfATK~>*#FM3XGQpfIW)NOK z%9&ucFL=&z{!b(oM#PiZe>s!R_3gjxNH2eIe=eWLbo}yQ2=h9-<#Im%{4SJUB5{yD zCfU1z4Ve9UiF5}ks_fHP^!s>+<@dA(z8+`| z+#Aq`2PW3v$JmFYKWNaFMEf&Q3?HzN5!(~>?ujN-u|#~mw{lt%H!O>+_b%(|iWIiK zWHg+H-Gsf@xIZzS541N`fBm%0RYKpf*tH=7PJ8expXT$&z;|Id4uI3Bp9Noq_fPNm zo8T1~2O&|)Qh5A+X^uG_QGU2*%o+4q+p5VtMbaO0Y#*Aq-S4S3?{%R2-F z+@3?u`njdfvuN3@r+%+OA2(X-gMF@VL4)iM;@O7!UTeKGRj~gV@TX88u-20?WU@br z=QY&dWvzF%6ztCdcVR4Vwbt*QurI+Feg*Z{SnHe3`UYT2QD1@jDAm`wJ>PfMxhsyi zf^P5Ok~;T_@6FKMRfkG7cWqzUX171-t_`@W0`3)cZZGtpU*|5D=iM&&@xzZfW69b7 zj|T8vBwC5@08x*UrGOuVD#_02EJQTNWWrPGmn9sEBt5JAEmSh!uNEuWqxd4l%kjA* zqW4Hd@0941EBOTRqfS4u!kur_Wy*Z^8FHF3FJ!*T@>!=sm?Yn=Difmvh$QTDMEp*k zl#+Qrp(3B9u2p#F48JTf-mGMfo7V zp^fUj-l2HA;(HW7r1%dMe?oD)pH21k>%A*>wx#1n+PluT)>lRcn3K z)ho>k@9L`RnyQ+rTkJmUvJ11b*6Fvy@_gS?6n6=uC|**SUsh)>%(kJT`lW*B-(>wV zQS80BXf~_&Jz0OI;CV9{pM{gJ-wMgH3ttUhXVyv=R$*0SIwTImwk2s#Ga$tAv2 z$iG!T! zTa4S@3wb8I%C`Ud6mH*_8>Ihxlj4w{T`yEL-=(Rc`rW)UaViglKP7T zoePP$-4{`&_|MPu6O8PkNf*Ef=kE*eztfEyIdowD9GL4@9!%zzc=7pAEY3wTu&ML2 zQu>)XAL^z4)l=qSi^A>mwnO@vIuDOyBln7_^Qs5>#qu==CGHk6qcg>f5F z^Muc8k1G8~%1wQFmV(`5z`fvhdU_gsSo*PR3voo^Q}=;0)98OX4ZcvuKh^&lg%8-~ z|1QroD${o0-l=ZHca;9aYQEj2bPfZbk1P%ES0xJn(KLRZ1MVsEzJ`_mZOVT@ z`S}C+cP^Z=KfI-Ix-?lStNi%Y`;Dr~9B_}ASifvjf&)phd9oGbO!}QR|6b@*{Pz9o zGdQIALwOG(c_s({NXAp-I}%PBDI?w9?h7Nmc6_-XCGJ_gR4v1TF&lBCnWR6lxLikd9yNysAxREq@Czp_?jwXAAFP<=>zCc}Lr4i~- zQb#=PYfH!QUy@iv_(R zZY*87t^C(Nbnd~{R`~Amd7l3t$oD~Rh;*%V1B5a>*w!TRxu5^v=2bW|{vNPgje^yl z?+1o*xRezYx7#-Wzl1v*w|~^>mzqay_A?|paj#XP*n$GxQQ3aT>4${>yDGq|I!yOm zD&i&~2`3myci@-quxvl-@=JV_KoH-9P094ZW#aeZp*tws^Zn&r)lqJT<7YkQ_rad- zv@93yIm)1!8Ua!Kq{HzOMnvaQYKraoKGdx2?d`KY;|G;}9XJu+o8*5EAU`QlGjBjP zcKaj1Xj~~iB2TGbamnz-olI(23Sb5$t9_NSuTl;V6g15O=RKG|YO_D4?2jpXj+foo z_1ZTfbF?mmLIp-^ZoBxl}O?I1?$`U|CF-l_ct`lFI9(>{S$1cxIO;g z0H^U|d;b46|KB@ev$wZDXtU>g=V@A0pl8Xsh3xIWiaIwQ9wt8L^Z&u^<7Kx$1KW8P zd%nk(lT(mg-!A_RIus(e&-Y!=7qtI7Z0S|AJ?C*Ml>MmcznTt(c(`9jZSC{_EpyZ< zkUd_Ong0_y*7yteY}G)s^fK|ocFc1&d%ll1D|?QUJ+K|iS5P2~`_Jd#-OA9euZDxo zg$n>-RRzQ>u>Cq4&i2gbqn_KgsxDWlf;p_HDs7@{o9DjO{-}z-lRi$MFXLH_hx^0( RAFa<~?F*%_+*WCC|6hj=keC1f literal 0 HcmV?d00001 diff --git a/thu_dsa/chp1/fib/fib.cpp b/thu_dsa/chp1/fib/fib.cpp new file mode 100644 index 0000000..c269e5e --- /dev/null +++ b/thu_dsa/chp1/fib/fib.cpp @@ -0,0 +1,62 @@ +#include +#include +#include +using namespace std; + +typedef long long __int64; + +__int64 fib_re1(int n); +__int64 fib_re2(int n); +__int64 fib_it(int n); + +int main(int argc, char** argv){ + int n = 48; + + printf("iterative version: --------------------------\n"); + for( int ix = 0; ix <= n; ix++){ + printf("#%d: %lld\n", ix, fib_it(ix)); + } + + printf("recursive version two: ----------------------\n"); + for(int ix = 0; ix <= n; ix++){ + printf("#%d: %lld\n", ix, fib_re2(ix)); + } + + printf("recursive version :--------------------------\n"); + for( int ix = 0; ix <= n; ix++){ + printf("#%d: %lld\n", ix, fib_re1(ix)); + } + return 0; +} + +__int64 fib_re1(int n){ + if( n == 0 || n == 1 ) return 1; + return fib_re1(n - 1) + fib_re1(n - 2); +} + +__int64 fib_re2(int n, __int64 &prev){ + __int64 prevPrev; + if( n == 0){ + prev = 0; + return 1; + } + prev = fib_re2(n - 1, prevPrev); + return prev + prevPrev; +} + +__int64 fib_re2(int n){ + __int64 prev; + return fib_re2(n, prev); +} + +__int64 fib_it(int n){ + __int64 prev = 1, prevPrev = 0; + __int64 res = 0; + for(int ix = 0; ix <= n; ++ix){ + res = prevPrev + prev; + prevPrev = prev; + prev = res; + } + return res; +} + diff --git a/thu_dsa/chp1/lcs/Makefile b/thu_dsa/chp1/lcs/Makefile new file mode 100644 index 0000000..571a157 --- /dev/null +++ b/thu_dsa/chp1/lcs/Makefile @@ -0,0 +1,12 @@ +lcstest: lcs.o test_lcs.o + g++ lcs.o test_lcs.o -o lcstest + +lcs.o: lcs.cpp lcs.h + g++ -std=c++11 -c lcs.cpp + +test_lcs.o: test_lcs.cpp lcs.cpp + g++ -c test_lcs.cpp + +clean: + rm -rf *.o lcstest + @echo "Clean Done!" diff --git a/thu_dsa/chp1/lcs/lcs.cpp b/thu_dsa/chp1/lcs/lcs.cpp new file mode 100644 index 0000000..826ab95 --- /dev/null +++ b/thu_dsa/chp1/lcs/lcs.cpp @@ -0,0 +1,31 @@ +#include "lcs.h" + +int lcsRe(string one, string two){ + int len; + if(one.empty() || two.empty()) return 0; + + int len1 = one.size(), len2 = two.size(); + if(one[len1 - 1] == two[len2 - 1]){ + len = lcsRe(one.substr(0, len1 - 1), two.substr(0, len2 - 1)) + 1; + return len; + } + len = MAX(lcsRe(one.substr(0, len1 - 1), two), lcsRe(one, two.substr(0, len2 - 1))); + return len; +} + +int lcsIt(string one, string two){ + if(one.empty() || two.empty()) return 0; + + int len1 = one.size(), len2 = two.size(); + vector> lens(len1 + 1, vector(len2 + 1, 0)); + for(int ix = 0; ix != len1; ++ix){ + for(int jx = 0; jx != len2; ++jx){ + if(one[ix] == two[jx]) + lens[ix + 1][jx + 1] = lens[ix][jx] + 1; + else + lens[ix+1][jx+1] = MAX(lens[ix][jx+1], lens[ix+1][jx]); + } + } + return lens[len1][len2]; +} + diff --git a/thu_dsa/chp1/lcs/lcs.h b/thu_dsa/chp1/lcs/lcs.h new file mode 100644 index 0000000..5c71655 --- /dev/null +++ b/thu_dsa/chp1/lcs/lcs.h @@ -0,0 +1,8 @@ +#include +#include +#define MAX(X,Y) ((X)>(Y)?(X):(Y)) +using namespace std; + +int lcsIt(string one, string two); +int lcsRe(string one, string two); + diff --git a/thu_dsa/chp1/lcs/lcs.o b/thu_dsa/chp1/lcs/lcs.o new file mode 100644 index 0000000000000000000000000000000000000000..886f9722c7cefd41edf8e4e8db260c2b60603614 GIT binary patch literal 55720 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 literal 0 HcmV?d00001 diff --git a/thu_dsa/chp1/lcs/lcstest b/thu_dsa/chp1/lcs/lcstest new file mode 100644 index 0000000000000000000000000000000000000000..03ba90f82326e14c51ba3ba46099757b55fa7843 GIT binary patch literal 36352 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 L^L_f|QpfmTTW=3S literal 0 HcmV?d00001 diff --git a/thu_dsa/chp1/lcs/test_lcs.cpp b/thu_dsa/chp1/lcs/test_lcs.cpp new file mode 100644 index 0000000..649d086 --- /dev/null +++ b/thu_dsa/chp1/lcs/test_lcs.cpp @@ -0,0 +1,43 @@ +#include +#include +#include "lcs.h" +#include +#define NUMOFLOOP 10 +using namespace std; + +void test_lcsIt(); +void test_lcsRe(); + +int main(){ + test_lcsIt(); + test_lcsRe(); +} + +void test_lcsIt(){ + clock_t begin, end; + int len; + + begin = clock(); + for(int ix = 0; ix != NUMOFLOOP; ++ix) + len = lcsIt(string("educational"), string("advantage")); + end = clock(); + assert(len == 4); + assert(lcsIt(string("didactical"), string("advantage")) == 4); + cout << "Iterative lcs test passed." << endl; + cout << "Running time: " << end - begin << endl; +} + +void test_lcsRe(){ + clock_t begin, end; + int len; + + begin = clock(); + for(int ix = 0; ix != NUMOFLOOP; ++ix) + len = lcsRe(string("educational"), string("advantage")); + end = clock(); + assert(len == 4); + assert(lcsRe(string("didactical"), string("advantager")) == 4); + cout << "Recursive lcs test passed." << endl; + cout << "Running time: " << end - begin << endl; +} + diff --git a/thu_dsa/chp1/lcs/test_lcs.o b/thu_dsa/chp1/lcs/test_lcs.o new file mode 100644 index 0000000000000000000000000000000000000000..cb9b00dfa2daea914a20dd776fc3ac92962cafde GIT binary patch literal 8128 zcmeI0U5p!7700jF-lnu^HWX4?`hiK(Br8(OPBz<3q?VM;BsN(#i@p0mK6E=7Pm*c8 z_F|70@1iY*O|vmcq>YeJXdkEq3MoP@q7Rf*G%E!Zpg{A$=L2noh?IUIfmDb@&~nbq zz4m`^?5c{w3*uOwx%W5!d+xbs?%etKk~OfkBN7qXBI04utZ6F5+}+Lc=AgJ)EETtj zk#zmiWv&OC7rC_O9K&3C`t4dieKdCe8e-|XbvZQ`Xs9@Q-a5w0>8WG4bR9au$B$bx z>H7IlaC~Hj>T@r%qzSFV&GN`$5%Y^wx^*NZ+Aq4W=Cq77jlQR?W05!9 z`T2Pr>dEP;BQgK3A8{;a?xao7=~=F-V4IE8H!ASyD~&GiYS|@?^8Js=hc||0M1%7<@#VF@9Fv< zbZm{Cp%c*!iuPD0Lo=iLXRD-;IhB5iUO) zVLa2(`BqGv?&$n=OuW?5`QwB9lV{LCZx^Rz-FDl~mzB+ldY#VqDNZtm$ZU zrXz5~ngKpW_Fg*f?|Xqt&=Uxm_BGLr=a=eut9aF+Yj%8r#Khm|TDjJuEuVB~ko0S1 z(QuRt4lSWt1UNoBMFq_W!|o0A#Fg-NI35)@K`kt9QTn){KS;cToII$y2y#a3X~nCG z2e~4~78Q%ag0YQ?TMQCbqvF;!`~%nU?-IFP4~ojV-{%$Ab)ExkyvDKql&Wj~D)FT( zFzhc>Z^hqi!~fZa_fZ~O`Kh(xKWM{wfmMHCFUgqg`Rj$$vuvC;u&l7Un zz>ZHnGC)nLdu2wB+Fp^mS`g5JI`u51++VB7F}Gad`>f|r$nm6b3MJsG3x zE}bNr1kOR}95|@s=458w>qtp6nSEZVB57c5Plo1Jc$Q_pQj!N~auujo&iF!+N}*G; zrR}>ln(>W01YcSor2kcVmSfW^GIPF1Xr7=l8*{$5Yrcaa8FOB1HQ&vUjQ!!=B_GgG ze+QMdehfJJnNnQ)(eXVAdh~M=_(!O${eK5IzfNoZ0&srk)jW6>raF%c^{=$i{}DLm zCwTa#V>*6)tNOdrYtCa}hc5!h^ECq;&+pfOqyC$~ zQU7hlbv}zKo@ar>rz-Ir_~B9Q*w(_`!ZJ z0{c0*g`+XYt$044x!0~#&2pq4YcNEw2hg=2rF6i+(il|osK8${rD6akRp6w3Mqn~cz z%Sos6*#{i+vjsTjX9zgzcLPWLW56*#6N>Bj<7%Ew8(gmgM-09q7_AV;73cimI`9qP zn731gpOebZbD+n(odJ%1&KrL8diW~n(a)cOWB%VZ{OCOV!{9m(|1$V#6~BH3H1n`H z77Cc-`MMK0p0Aa_QJ(~k`VETf^Z2@oXA^K-mp%!8a9!F0dR%`7K#%LsZqVa;XamQ7 z_kkbm_w&GUJsbx=7|-LN$9PTw$GrUzIOgpfaMb?>IO<;q9;Y1Z>-Vp~(a$_^^mD6v zFE{7IJ-|`F8aVd57C5elBZ~8UP$5uBh@GHcL3JI!1pUfD8E*2x(T@lGe$W>c=W(r~ zzxJ;syu9!+{aqri4lv`tw(Y9G@qb7|+CQqwTF+|%n-}ha=QRFqrR|6+Xno^5gW~L; z^`BAo@2kDm>+dQT46frBiOR&NZ||kOUk>*NbgAqX>;ygE`y!FIeOn~&z$m4AK<+Es^j>o# zEKW}N+~B(b``yeNvahQ18rB-0t#noJHO}*6bAyD1C%VG@MNTwX_?;}wIoJ7GVdJ^N z{i|h_QDDC?`qiAZXuR(8d2H9-)SLAbwPnWV9qoeZf1T05{HC#y8ntTQp+2=eg-(?g z(GXQQH)j0LsP;Igxt&?(>!nrxALW}dna(r!!7g=s&36;y_>=TUJFWWfMM!0x4!!4D zsLLpQO|?hHWm7w;n3?~Js{LidfsS9}DivCdzoy1Nr-VFy{+g-V>+$nDx0!ox(x+}- qhqwY}#?N&#c9#E4b#z)e=gWcTj@dtdNp02t*kU?B)@2+t`~MH|x46In literal 0 HcmV?d00001 diff --git a/thu_dsa/chp1/max2/Makefile b/thu_dsa/chp1/max2/Makefile new file mode 100644 index 0000000..63d82ef --- /dev/null +++ b/thu_dsa/chp1/max2/Makefile @@ -0,0 +1,16 @@ +OBJS = max2.o max2test.o +CC = g++ +CFLAG = -c + +max2test: $(OBJS) + $(CC) $(OBJS) -o max2test + +max2.o: max2.cpp max2.h + $(CC) $(CFLAG) max2.cpp + +max2test.o: max2test.cpp + $(CC) -std=c++11 $(CFLAG) max2test.cpp + +clean: + rm -rf *.o max2test + @echo "Clean done!" diff --git a/thu_dsa/chp1/max2/data.txt b/thu_dsa/chp1/max2/data.txt new file mode 100644 index 0000000..e69de29 diff --git a/thu_dsa/chp1/max2/generateTestData.py b/thu_dsa/chp1/max2/generateTestData.py new file mode 100644 index 0000000..0fd9892 --- /dev/null +++ b/thu_dsa/chp1/max2/generateTestData.py @@ -0,0 +1,10 @@ +from numpy import random + +f = open(r'testData.txt', 'w') + +f.write(str(random.randint(10000))) +for ix in range(10000): + f.write('\n' + str(random.randint(10000))) + +f.close() + diff --git a/thu_dsa/chp1/max2/max2.cpp b/thu_dsa/chp1/max2/max2.cpp new file mode 100644 index 0000000..e781ce9 --- /dev/null +++ b/thu_dsa/chp1/max2/max2.cpp @@ -0,0 +1,71 @@ +#include "max2.h" + +inline void swap(int &one, int&two){ + int tmp = one; + one = two; + two = tmp; +} + +/* + * compute max two elements in A[lo, hi) + * iterative versions + */ +void max2It(int* A, int lo, int hi, int &one, int &two){ + if(hi - lo < 2) return; + one = MAX(A[lo], A[lo + 1]); + two = MIN(A[lo], A[lo + 1]); + for(int ix = lo + 2; ix != hi; ++ix){ + if(A[ix] > two){ + two = A[ix]; + if(two > one) swap(one, two); + } + } +} + +void max2It2(int* A, int lo, int hi, int &one, int &two){ + if(hi - lo < 2) return; + + int maxIndex = lo; + one = A[lo]; + for(int ix = lo + 1; ix != hi; ++ix) + if(A[ix] > one) {one = A[ix];maxIndex = ix;} + + two = 0; + for(int ix = lo; ix != maxIndex; ++ix) + if(A[ix] > two) two = A[ix]; + + int tmp = 0; + for(int ix = maxIndex + 1; ix != hi; ++ix) + if(A[ix] > tmp) tmp = A[ix]; + + two = MAX(two, tmp); +} + +void max2Re(int* A, int lo, int hi, int &one, int &two){ + if(hi - lo == 2){ + if(A[lo] > A[lo + 1]){one = A[lo], two = A[lo + 1];return;} + else {one = A[lo + 1], two = A[lo]; return;} + } + if(hi - lo == 3){ + one = A[lo], two = A[lo + 1]; + if(one < two) swap(one, two); + if(A[lo + 2] > two){ + two = A[lo + 2]; + if(one < two) swap(one, two); + } + return; + } + int mid = (lo + hi) >> 1; + int oneL, twoL, oneR, twoR; + max2Re(A, lo, mid, oneL, twoL); + max2Re(A, mid, hi, oneR, twoR); + if(oneL > oneR){ + one = oneL; + two = MAX(oneR, twoL); + } + else{ + one = oneR; + two = MAX(oneL, twoR); + } +} + diff --git a/thu_dsa/chp1/max2/max2.h b/thu_dsa/chp1/max2/max2.h new file mode 100644 index 0000000..f1d7d70 --- /dev/null +++ b/thu_dsa/chp1/max2/max2.h @@ -0,0 +1,11 @@ +#include + +#define MAX(X,Y) ((X)>(Y)?(X):(Y)) +#define MIN(X,Y) ((X)>(Y)?(Y):(X)) + +using namespace std; + +void max2It(int* A, int lo, int hi, int &one, int &two); +void max2Re(int* A, int lo, int hi, int &one, int &two); +void max2It2(int* A, int lo, int hi, int &one, int &two); + diff --git a/thu_dsa/chp1/max2/max2.o b/thu_dsa/chp1/max2/max2.o new file mode 100644 index 0000000000000000000000000000000000000000..3d81c695d6b58096a011004d757a28398d0ee2a0 GIT binary patch literal 4288 zcmbtXU1%Id9G|`Im)bUGTT5$;g!)yfUG8d(X(MggxOM|+Ev*MqEbHcSHA{0J-0j+= zcu_ejE=x+#hx$-N@Wm(VQxTQ+(1+Hy6A!r;Az;KScMm7z;go~;|If}`CVRUo_%Cxa z^ZS3y|7&K`chvEhBa%coN#rP5-EowV^5)g`2wjelDA__~H^4rjIlpP8W=wO6b;n+E z5{sI1sy6PZ6<1w6pe~i#Qs1@HVA)ldw2!s<9aqta=Bjl~s<=@PEtMs0ezU;2=aR$U z&Fu=*A&o}`t+n>RaH8f!0`>m+ti9nj8#@E-;aL@WR;e6u)Q+omhSf#uBFq7SLc|ps z)Uj~B6Qxr4Tcfhu@d(^$&d-{2w~nbRsU4~D(ZUbk)66@?nqyZTkaAAlgRGa~m;-8+ zW?iLOuR3beRjX@Us?pqo;d>5br3&eH)RwEZhSiD%Xe&gR`m`^ckH%VXTuE(7jW5Aa z`7U}4r3WXLU3Ga_ZCWQ_4z^#W_Ms4Ad?#8`m!-z7yK37r+oYa*nXgz!{F$X;l3}$y zw>y~SsBN0g+vuxHB{zA?hU}_s$bQ+0G^B+KUb0Kg5omK?!Y4I%-IM#l9}TRw3VpBO_3@;wxKh%`C?t0Kegm0mR-9F-qpsOHotGcYyqRg66pw^8;El$O+QuB@!EhK4s=bL>Sp zwC)mk!eFsTi&dxDTyzs1CkowxTQ*FA0Bn)> zBH}>Unq9tZODKW-*O3X7Uc;a2^56E@WG(^=ZeN~_aQz#Me-vlVpItrwTgHDxx^ldXU%gl9W53v8#&nE`UQ`DNaRzMvnc^W2a=cc7`kDlW*|OBye^o^tuQ+93Lzb1E$_#_2*H05 z@P`FEe}&*W>ua>XO^`1!96On*!ita&1o`c-=YGx$^877B`40tLv~yj+#XEIFu)kBV zkG7ETMxd|!KK8>J2{G|jk01zyI1Wy4um#8Yy?ED$^Lz2B59jYg*@ts~h*FqMTgC*; zR^FSZ_$r^8HWaA3MU+XyGKex!C=d!LVoxem4qII}@_A#HD9LO(oyve(CTpdXlcy60 zX*&{6GBu@N%p2(xQQpjF?HqILe@^&K!2a>m2m|ojgM__`gV&bN{eWSu#G1gCX!ry4 z6|1wi^JMuN=RGjc)(8xda_njCXHO%ZjkV|(-C!Hgm@+jl3wLyW=9b;X{A71|8b z_sjeDanMCAQ`u_Cgn0`$(3Ty5^htseKivM#K{{j=l z_z~jzJbvtbf9_Fbi2Z-Rgd2f)+#JHa-*@C`>`#XMjM)bm`rtnw{~`!FKga%5_!Iad H`Op6w=KpW1 literal 0 HcmV?d00001 diff --git a/thu_dsa/chp1/max2/max2test b/thu_dsa/chp1/max2/max2test new file mode 100644 index 0000000000000000000000000000000000000000..0394b9833d518acd1d5107c18b31752a44feae17 GIT binary patch literal 20248 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 +#include +#include +#include +#include +#include +#define LEN 10001 +#define NUMOFLOOP 1000 +using namespace std; + +void max2ItTest(); +void max2It2Test(); +void max2ReTest(); + +int A[LEN]; + +int main(){ + ifstream in("testData.txt"); + char oneline[256]; + string str; + int ix = 0; + while(!in.eof()){ + in.getline(oneline, 100); + str = string(oneline); + if(str.size()) A[ix++] = stoi(str); + } + + max2ItTest(); + max2It2Test(); + max2ReTest(); +} + +void max2ReTest(){ + int one, two; + clock_t begin, end; + + begin = clock(); + for(int ix = 0; ix P#|=6KCbMr4mGMHoFsNguS!c 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 literal 0 HcmV?d00001 diff --git a/thu_dsa/chp1/max2/testData.txt b/thu_dsa/chp1/max2/testData.txt new file mode 100644 index 0000000..04030b5 --- /dev/null +++ b/thu_dsa/chp1/max2/testData.txt @@ -0,0 +1,10001 @@ +2865 +1881 +8116 +6518 +9999 +9246 +3288 +4411 +3958 +5828 +6415 +4811 +5300 +8528 +4906 +3728 +5148 +572 +6943 +436 +8727 +2993 +7898 +7958 +2755 +9377 +9556 +6995 +7006 +907 +1694 +8324 +1361 +9221 +2977 +9726 +4542 +2761 +7840 +4178 +7102 +6189 +8948 +1535 +4429 +4142 +2955 +3119 +6284 +5565 +2945 +6385 +7307 +8905 +1185 +2539 +5596 +3793 +6555 +3684 +4506 +16 +5995 +2931 +6138 +8938 +8868 +3753 +1866 +781 +6123 +2481 +4582 +8615 +9945 +9544 +3991 +9150 +38 +898 +9868 +8067 +2453 +9098 +2975 +5920 +104 +4773 +590 +5021 +4070 +4933 +1 +6553 +4024 +5458 +1523 +6504 +408 +8273 +4999 +6477 +1466 +2333 +6092 +7697 +9339 +5926 +3974 +5736 +9518 +4724 +3190 +5777 +493 +5752 +2649 +2767 +3152 +5233 +2146 +5336 +6328 +2852 +6561 +977 +1646 +5292 +5130 +8537 +883 +9639 +1057 +9936 +8514 +1250 +285 +8209 +3151 +3484 +4229 +82 +4556 +7826 +8701 +5279 +4297 +244 +5851 +7335 +7774 +9666 +2332 +1666 +8061 +7276 +4811 +5177 +6139 +8439 +7418 +6277 +4039 +8072 +6849 +5992 +6795 +4733 +7020 +9780 +1509 +5633 +4355 +9530 +525 +1324 +9146 +3890 +4093 +8144 +547 +7354 +3769 +9747 +5702 +5266 +2501 +6911 +7915 +1925 +4315 +171 +5634 +1375 +2495 +4916 +5462 +8387 +4041 +7174 +9942 +7303 +2547 +8956 +6076 +8537 +913 +2859 +4513 +3379 +609 +9305 +1888 +6911 +4711 +8475 +2148 +2212 +506 +7551 +6695 +5127 +1229 +8566 +8433 +4186 +318 +3904 +8582 +1803 +191 +1886 +8259 +1688 +3778 +4442 +409 +6378 +7157 +6890 +9880 +6727 +9230 +7149 +2158 +5312 +957 +3915 +5275 +3593 +2575 +2596 +3617 +8904 +7058 +3342 +558 +5601 +6992 +8541 +6448 +4014 +3424 +5976 +6187 +9607 +269 +5040 +8515 +8939 +7137 +5946 +5956 +2462 +4597 +8093 +479 +2265 +9331 +9751 +7311 +6092 +9681 +6794 +890 +3013 +8506 +5587 +6821 +1662 +8876 +5475 +2283 +9298 +9488 +5248 +8314 +7397 +5530 +7282 +9562 +6749 +5890 +2419 +5156 +7947 +1836 +1165 +2493 +2247 +6976 +3439 +7996 +6576 +7184 +1106 +3433 +8799 +4121 +4288 +8590 +8655 +7954 +1553 +3845 +2770 +4681 +5517 +3274 +402 +1512 +8270 +5323 +3909 +8423 +2747 +9771 +4375 +5732 +4305 +2266 +6150 +5748 +8318 +6628 +6214 +2442 +9720 +5677 +3836 +6537 +2339 +4215 +5503 +2167 +8739 +9226 +5627 +2085 +3302 +6800 +979 +6776 +7920 +9402 +2394 +7219 +3857 +8887 +6665 +318 +6801 +2675 +3279 +2293 +5765 +2976 +5409 +3322 +1218 +5045 +9586 +9894 +2151 +1512 +6738 +7634 +8587 +5016 +5721 +9441 +5344 +8688 +4498 +2673 +3185 +8486 +3551 +7569 +3282 +9504 +5685 +8077 +6463 +2397 +8966 +1883 +422 +1114 +8232 +1061 +1394 +7224 +6468 +811 +1699 +8359 +3997 +5724 +141 +3120 +9808 +7339 +4468 +867 +707 +1964 +5980 +1640 +1367 +6388 +3672 +5120 +1667 +5193 +2787 +7569 +2549 +1067 +7110 +8184 +2608 +9103 +8609 +3615 +7861 +6361 +9467 +2461 +8433 +903 +6381 +1942 +560 +7865 +8578 +4094 +4573 +8490 +1021 +3106 +9258 +2567 +6716 +8091 +6830 +6368 +7160 +4225 +1363 +1032 +7783 +4599 +1055 +7417 +1244 +4905 +1019 +1821 +1054 +9313 +520 +8333 +1618 +5608 +9748 +5332 +5086 +5136 +4331 +87 +6157 +8123 +3849 +4402 +7554 +4898 +4880 +2906 +1199 +4290 +4207 +5641 +1752 +9638 +1875 +1760 +6573 +6183 +8145 +6976 +8614 +1312 +3991 +8953 +4184 +7575 +7420 +2393 +6866 +2213 +4733 +3133 +9453 +1043 +8267 +1239 +5244 +5343 +496 +52 +6353 +8801 +2183 +9557 +3916 +6183 +3110 +8508 +5739 +2690 +5148 +2855 +3662 +6511 +1885 +836 +5755 +601 +6074 +5245 +179 +8439 +5495 +5109 +8706 +4938 +3056 +2111 +653 +7566 +1508 +2521 +8044 +3687 +4454 +9685 +7460 +4340 +8325 +4568 +3375 +3586 +4909 +1463 +6794 +1618 +2397 +3358 +5941 +1200 +8084 +1949 +2823 +9240 +5660 +7257 +8537 +2045 +7773 +7529 +814 +1571 +7721 +4749 +7911 +8000 +7905 +711 +6905 +5451 +2698 +9358 +5562 +2558 +2094 +8460 +1437 +1768 +2472 +8873 +6581 +8757 +2995 +3035 +6055 +4364 +809 +5438 +2181 +6008 +7456 +3453 +1957 +1737 +6048 +2336 +1307 +1881 +2114 +2498 +3602 +4015 +5007 +6150 +4973 +763 +5595 +3079 +1836 +1960 +4885 +6314 +9642 +5219 +2118 +3819 +1075 +9505 +3055 +2624 +1394 +7461 +4613 +8267 +8559 +7745 +9771 +80 +1439 +9363 +4225 +5616 +8286 +9007 +8019 +6885 +1033 +4238 +293 +756 +2074 +3594 +6953 +536 +2376 +9573 +667 +6240 +5469 +4560 +2207 +5448 +8680 +1633 +9518 +9115 +5757 +1929 +3151 +8670 +7174 +6823 +7363 +6377 +5034 +9567 +5471 +9488 +7691 +1392 +2611 +3311 +7111 +6791 +5659 +1748 +6841 +9519 +1349 +3764 +5871 +3017 +1281 +8232 +1857 +2792 +1724 +1450 +5393 +4123 +1604 +3338 +6696 +1717 +455 +3550 +3090 +9112 +4661 +9353 +966 +2841 +6856 +1008 +996 +817 +5447 +2863 +8103 +6452 +6734 +5907 +8141 +9632 +2118 +9028 +5797 +4877 +4111 +8469 +3908 +1752 +96 +5980 +5025 +4736 +9457 +6681 +2348 +2798 +4495 +1787 +6046 +2458 +9034 +634 +1326 +1457 +9251 +439 +1744 +2914 +1240 +6042 +8339 +9042 +8408 +2387 +2519 +661 +4497 +180 +9075 +4631 +7232 +3021 +7689 +167 +3298 +110 +6922 +4097 +9584 +6535 +4420 +6664 +9805 +7673 +120 +403 +1332 +8939 +1491 +6031 +3459 +8719 +488 +1960 +5962 +6058 +1287 +5725 +4826 +49 +7574 +134 +1031 +3198 +5295 +9704 +9384 +1230 +9001 +9685 +3776 +4174 +7703 +3564 +5943 +6226 +1047 +9713 +3658 +7999 +2291 +5166 +433 +9166 +5347 +7268 +1712 +1429 +3331 +8473 +3031 +7246 +4155 +8372 +9480 +669 +8809 +1236 +3114 +1804 +2026 +3964 +9039 +1811 +5619 +941 +2352 +4942 +9852 +9749 +4825 +9618 +6069 +5298 +5826 +3871 +5249 +1361 +4215 +5685 +5080 +1847 +4552 +2881 +7129 +3813 +5621 +2535 +5478 +1960 +1179 +3501 +372 +7449 +2932 +5400 +8251 +8710 +9557 +5369 +3990 +404 +1455 +204 +6482 +2051 +9652 +611 +6067 +6521 +7343 +5496 +716 +8943 +4954 +9632 +5510 +7367 +3935 +7412 +8290 +9386 +5289 +5405 +9947 +586 +4475 +7333 +4744 +2767 +8596 +5521 +6884 +1828 +3275 +353 +934 +324 +7299 +7754 +195 +5454 +3953 +576 +9947 +3821 +9722 +2001 +7679 +7812 +415 +6456 +2902 +9616 +8671 +1277 +1525 +4415 +5029 +7787 +4959 +1054 +8611 +8692 +2864 +7433 +9669 +7971 +3665 +5667 +8176 +8495 +5879 +5367 +5443 +8618 +3316 +2552 +7979 +5154 +2311 +5021 +3815 +9598 +7840 +3616 +7840 +5381 +7264 +6436 +6549 +2849 +3479 +4449 +3866 +774 +8014 +494 +6895 +2162 +2416 +494 +4394 +8445 +5589 +2567 +5584 +7748 +7808 +8872 +1008 +1714 +2234 +2776 +8209 +6794 +6875 +4881 +6513 +502 +9868 +9180 +6184 +9953 +6853 +3904 +735 +8605 +4708 +2524 +6186 +6517 +8555 +2277 +2495 +6096 +9353 +8161 +7012 +7358 +4316 +780 +7730 +5573 +8791 +9572 +295 +3945 +4436 +6590 +1276 +4557 +4112 +1326 +8966 +2249 +9786 +3656 +4508 +6357 +7340 +9312 +2935 +1125 +1587 +2144 +2183 +3821 +4809 +7424 +9546 +8293 +6067 +3947 +3518 +2786 +3322 +3682 +191 +5784 +5021 +273 +657 +2959 +4324 +8170 +9824 +4433 +2871 +5269 +7472 +191 +2981 +3182 +4053 +1749 +740 +9005 +9734 +5290 +6105 +6669 +8081 +673 +7441 +8620 +1120 +1873 +7709 +4626 +9233 +4649 +6933 +7567 +234 +8295 +7294 +3150 +8301 +697 +109 +6432 +893 +5924 +2460 +3611 +4611 +5086 +7055 +5993 +3016 +7540 +3382 +6268 +7819 +537 +1516 +6577 +5128 +2514 +3281 +8670 +2952 +1138 +1986 +7518 +7590 +4162 +6617 +8899 +4360 +7783 +6088 +9120 +4328 +271 +6848 +478 +2206 +6847 +1428 +2029 +5958 +4873 +7911 +8350 +5004 +8256 +4531 +1003 +6981 +6172 +5920 +6845 +1939 +3873 +7568 +6584 +6381 +4930 +5779 +8377 +4286 +2188 +9060 +8794 +3723 +9229 +1200 +956 +9401 +9509 +3586 +5685 +4466 +6925 +9946 +1136 +9809 +2444 +4088 +6610 +3540 +825 +6547 +7466 +9129 +4347 +1917 +4208 +4755 +8471 +9352 +6455 +3490 +9451 +6703 +5732 +5387 +4921 +6100 +2027 +9866 +7229 +1727 +8452 +56 +4726 +1301 +6786 +2632 +7475 +8872 +7871 +6593 +1101 +6748 +8731 +2118 +7819 +2231 +9906 +1115 +6078 +5886 +704 +9322 +3237 +6003 +8195 +2408 +9064 +7618 +2188 +8010 +4011 +122 +4701 +8067 +5305 +4909 +2819 +6911 +9510 +6345 +9536 +9200 +6306 +4752 +5742 +9785 +4288 +2626 +5646 +3246 +8400 +4320 +4812 +2733 +2042 +4482 +3070 +9255 +1255 +7168 +8003 +2106 +6941 +3127 +3842 +7506 +2006 +4821 +7862 +9736 +2257 +3691 +9268 +8832 +6754 +714 +8640 +1716 +508 +4338 +4507 +1080 +8134 +7554 +8456 +3665 +5912 +7651 +6570 +4523 +183 +9541 +205 +5927 +9101 +6521 +8010 +6272 +9348 +366 +639 +7033 +5321 +8287 +9660 +2239 +6011 +376 +6719 +6045 +5652 +2603 +9299 +847 +1902 +4268 +3701 +3938 +1031 +7816 +5524 +3301 +9542 +7245 +3861 +6881 +7448 +9830 +5287 +8742 +8552 +6240 +7903 +4460 +5679 +5464 +9133 +5522 +4660 +5408 +2910 +5463 +1500 +2339 +5623 +9745 +5638 +1980 +4928 +7843 +3136 +1579 +7000 +5683 +4751 +4965 +2302 +4440 +1197 +2687 +9813 +1935 +6846 +3584 +3875 +3265 +3203 +3845 +8131 +3796 +4023 +7125 +6624 +4684 +2080 +4600 +9866 +2628 +7029 +5050 +4970 +549 +7745 +1240 +6741 +1188 +5862 +2023 +1127 +2236 +251 +5514 +3862 +2120 +2322 +574 +7161 +7036 +9512 +2469 +2566 +8718 +5125 +3227 +4680 +9199 +5182 +6353 +4461 +9030 +5282 +6742 +5121 +6271 +1098 +3236 +7132 +6643 +8926 +136 +5103 +5504 +2110 +3489 +6410 +6496 +1986 +8503 +2048 +7982 +1837 +9426 +3688 +1755 +8944 +7760 +5807 +9427 +2693 +2058 +2573 +3894 +6559 +2494 +4376 +862 +9665 +4691 +1633 +5084 +9389 +6624 +1590 +9662 +1315 +8586 +5310 +5389 +3146 +2256 +3491 +5067 +8599 +1436 +442 +6735 +1140 +5252 +1946 +4184 +3441 +1147 +2345 +4818 +5986 +1844 +9062 +1064 +8423 +8771 +4862 +2464 +137 +9604 +4566 +2165 +9507 +2018 +1740 +1503 +8485 +9409 +7100 +1177 +8499 +4231 +2289 +373 +1126 +6398 +2925 +4682 +8530 +2762 +3593 +1698 +5888 +4155 +4938 +2658 +5329 +9311 +8803 +6677 +2603 +1171 +7645 +5003 +6251 +8360 +9640 +8923 +7310 +6150 +2219 +3548 +6742 +4118 +5372 +2101 +575 +3740 +9664 +8590 +3028 +9256 +7222 +6240 +2908 +9100 +8816 +8829 +5960 +1588 +3111 +4639 +3208 +7326 +4624 +1496 +6134 +3104 +5847 +6071 +992 +5714 +206 +7446 +3411 +4838 +8874 +6320 +9972 +1444 +4821 +6793 +2110 +6102 +1538 +2913 +4479 +827 +503 +6152 +522 +2126 +5853 +1829 +4205 +9568 +3810 +5795 +137 +9252 +6724 +3174 +9488 +3567 +7604 +4366 +4948 +7454 +8408 +5910 +5360 +2522 +2985 +6093 +6136 +9982 +7852 +1838 +952 +7032 +4523 +7411 +288 +9626 +5673 +347 +6107 +6733 +4912 +4578 +491 +7599 +1762 +2346 +9923 +7237 +8762 +820 +4098 +9708 +4579 +8993 +3134 +2992 +790 +6317 +7283 +5880 +2966 +2886 +8136 +281 +9874 +422 +6029 +2018 +1818 +2835 +8240 +385 +2234 +86 +9851 +6229 +3418 +3760 +145 +9937 +4112 +4681 +8458 +659 +933 +6713 +3030 +5303 +700 +7743 +7548 +6602 +6616 +3727 +3297 +5453 +4995 +4258 +4271 +4879 +9790 +7676 +8246 +3892 +9850 +9111 +8448 +7462 +3833 +598 +9565 +7163 +9331 +3651 +1595 +6137 +1638 +9650 +6397 +1063 +8212 +5561 +7766 +4923 +8910 +4488 +5276 +3630 +5858 +7441 +1119 +7255 +9198 +7798 +5056 +8532 +8632 +3470 +874 +1839 +178 +2016 +1967 +1841 +9507 +5264 +186 +3612 +5594 +3626 +7651 +6920 +7062 +5631 +822 +7639 +6845 +3280 +9324 +8574 +9351 +9605 +3228 +3253 +257 +4676 +6018 +3976 +5520 +5089 +3896 +9338 +1654 +1601 +9590 +1619 +1899 +8543 +7914 +3070 +1091 +7444 +6459 +555 +5832 +8260 +6792 +3746 +6912 +4554 +941 +5838 +2233 +2371 +8984 +2782 +5697 +4350 +9465 +2349 +2618 +7521 +3116 +6688 +8646 +6597 +6548 +2177 +6445 +9994 +9639 +3401 +4146 +9485 +1337 +371 +5473 +4868 +1167 +829 +8658 +4511 +3485 +3670 +5276 +6559 +8986 +3799 +7233 +1953 +1251 +6856 +7200 +8831 +7890 +5923 +4560 +5574 +2932 +3589 +4060 +1295 +9643 +4680 +1445 +6803 +4265 +649 +5372 +960 +363 +5478 +7098 +6200 +6057 +2567 +3080 +3003 +1767 +4189 +6265 +5117 +2861 +5082 +2485 +5029 +7028 +9622 +5762 +7602 +9268 +725 +4173 +9667 +7274 +1762 +9918 +8660 +636 +7641 +3945 +8116 +7658 +7375 +1991 +3252 +2305 +8828 +9426 +2224 +3770 +8983 +7762 +3006 +88 +6728 +3756 +3549 +4076 +3092 +5995 +635 +6513 +6292 +6221 +845 +2345 +3729 +4244 +7093 +8421 +7994 +6289 +5341 +8043 +6345 +6246 +4758 +9019 +9670 +7997 +2573 +1222 +2961 +3549 +2264 +5701 +8012 +3145 +4581 +8228 +3967 +5702 +3285 +4126 +2750 +7258 +6897 +3887 +5479 +3168 +7299 +4553 +3406 +9429 +8406 +864 +3325 +2700 +6195 +9889 +8858 +3652 +2934 +1985 +5021 +5261 +7847 +3699 +6643 +2466 +929 +3515 +94 +3353 +2636 +1843 +180 +1912 +8166 +1458 +7954 +6729 +9750 +8027 +9971 +1125 +6574 +6062 +5114 +1151 +7371 +6738 +6014 +3683 +7830 +7465 +1223 +9182 +6684 +2068 +3835 +6885 +6030 +5772 +4494 +2132 +5099 +9012 +9944 +4743 +2655 +7402 +8146 +7060 +3611 +4460 +2995 +4043 +7985 +1732 +5965 +9169 +4025 +8153 +7823 +3727 +5287 +4772 +6634 +1635 +8437 +9730 +847 +1403 +1261 +5416 +5981 +487 +690 +1518 +5977 +9012 +1960 +3511 +6998 +3783 +656 +642 +1011 +6038 +2547 +8576 +244 +7580 +6809 +160 +9058 +312 +9044 +6619 +3954 +7800 +7461 +6745 +3614 +3702 +5142 +4426 +6875 +2552 +834 +6448 +4084 +3759 +5298 +6093 +9812 +7377 +9808 +4612 +2415 +3418 +935 +6247 +2636 +648 +7591 +8324 +8983 +6520 +2034 +8766 +1167 +6673 +4851 +9570 +8966 +8425 +647 +129 +6147 +2425 +7105 +5721 +437 +9019 +6698 +8877 +4016 +194 +2316 +2364 +8103 +1751 +1343 +2342 +886 +6838 +3993 +2644 +8018 +3560 +5576 +5069 +5648 +7242 +5088 +5045 +5444 +1587 +8899 +7441 +5350 +9772 +339 +787 +1981 +4305 +2360 +2774 +4515 +9146 +5245 +9009 +844 +787 +3451 +6137 +9162 +9803 +4295 +1130 +4923 +7945 +4396 +2380 +9884 +373 +6523 +3732 +8333 +3652 +5046 +1010 +603 +1562 +211 +8869 +7133 +4570 +4114 +5382 +3671 +6283 +6520 +9231 +4308 +1402 +7861 +7009 +8564 +5153 +4505 +2779 +1681 +6324 +5476 +4857 +4640 +1232 +5148 +538 +6913 +3657 +9989 +9629 +6510 +7838 +3720 +6288 +215 +4814 +4540 +8642 +6141 +7570 +5909 +5486 +4324 +2541 +3070 +5544 +1956 +2656 +777 +3650 +7614 +6676 +4477 +4614 +3519 +5883 +5489 +1309 +6363 +5050 +7379 +8549 +3349 +5015 +6481 +4216 +7313 +1755 +1991 +797 +8632 +4074 +6321 +8977 +3055 +1600 +7695 +1183 +4580 +4249 +2923 +5955 +9599 +248 +3444 +8272 +5140 +9622 +6584 +5468 +8047 +6768 +8056 +1572 +301 +31 +4980 +8088 +1360 +4559 +4401 +2765 +6233 +942 +3275 +6388 +4925 +5549 +8659 +2216 +4981 +1796 +3776 +7759 +6481 +1581 +794 +2090 +6649 +7008 +1935 +9412 +8008 +881 +3775 +6371 +9314 +6748 +853 +9517 +2931 +5693 +700 +2893 +5408 +5645 +90 +8828 +1000 +6457 +7855 +6928 +5453 +6783 +1924 +3637 +9730 +3729 +9002 +3090 +792 +9265 +3517 +572 +9225 +8321 +6163 +1864 +2551 +3483 +9088 +3530 +8826 +3718 +7609 +7179 +6705 +5172 +7125 +2419 +6828 +6373 +2361 +1735 +235 +1570 +4676 +3966 +5142 +9207 +5890 +6076 +4077 +2198 +1457 +3216 +8454 +3704 +8835 +5899 +9302 +1935 +9089 +7680 +9009 +7873 +2272 +7610 +6890 +3537 +9633 +9197 +3429 +2732 +3719 +7332 +7112 +833 +3550 +2653 +3681 +6777 +9250 +3388 +9347 +4245 +489 +839 +8058 +5848 +3853 +8753 +4095 +9083 +9213 +9299 +8681 +9778 +3568 +1295 +6742 +4782 +9113 +6367 +4157 +5499 +999 +3494 +657 +7071 +9298 +1641 +9853 +4898 +7503 +6250 +4235 +8382 +4281 +7119 +3301 +5932 +3493 +4393 +7721 +9585 +7973 +5889 +3944 +7053 +5278 +6929 +7254 +6395 +6052 +9506 +4499 +5325 +9657 +9321 +8547 +2376 +9041 +7812 +2941 +5712 +8054 +4266 +9415 +8327 +9602 +2202 +5018 +2535 +4199 +8178 +8684 +932 +4370 +6345 +4517 +5713 +8061 +3235 +986 +5750 +9989 +753 +161 +9000 +3198 +3248 +7190 +1733 +8041 +5923 +8966 +3569 +2694 +4835 +3050 +645 +8328 +8414 +4642 +405 +7953 +4036 +2554 +4620 +9529 +9696 +8642 +8474 +8758 +6824 +4221 +6621 +1751 +205 +6650 +8722 +9428 +2805 +8857 +5008 +3831 +1776 +3022 +1519 +8146 +7277 +8891 +3125 +6157 +1958 +9805 +4141 +8296 +8253 +7383 +976 +7266 +9158 +2630 +6502 +4458 +6976 +1421 +8085 +5659 +7333 +9715 +7130 +5800 +9224 +6255 +2269 +1867 +7515 +2619 +3469 +2147 +8137 +2019 +5730 +4513 +4673 +7130 +2328 +7123 +1628 +7653 +5863 +14 +1987 +5806 +1553 +4519 +8564 +4451 +9078 +8234 +5763 +1364 +3682 +5407 +3015 +7079 +8588 +4989 +721 +8110 +6912 +2488 +1501 +9962 +4837 +4239 +7606 +403 +2773 +1511 +9792 +6322 +1815 +5906 +2093 +7131 +1824 +9088 +2726 +681 +2004 +8002 +703 +9583 +8307 +7889 +443 +8287 +3674 +5324 +242 +4157 +9539 +6650 +8541 +9483 +3120 +1472 +3215 +6426 +7717 +1751 +2638 +3404 +6504 +1598 +36 +5254 +5960 +5224 +1217 +824 +8150 +574 +47 +4142 +557 +9271 +3305 +7040 +3209 +5110 +3601 +8940 +5379 +8442 +9038 +9980 +9170 +8152 +3342 +7514 +1616 +6755 +1250 +9183 +9692 +9664 +7724 +6291 +7725 +7407 +3431 +6370 +9425 +9735 +2619 +8249 +1690 +4047 +97 +8975 +529 +1287 +9113 +4215 +9716 +299 +4454 +8639 +2117 +8523 +4549 +4925 +5929 +7091 +8797 +4588 +6667 +7676 +29 +6120 +4599 +6694 +447 +4963 +308 +9174 +5768 +3639 +2436 +748 +3197 +6724 +3474 +3997 +1748 +7920 +7310 +2694 +1242 +3889 +7229 +9136 +2386 +9754 +937 +4215 +7401 +6620 +8374 +5643 +6033 +1007 +6145 +6799 +6577 +1854 +9005 +576 +2573 +9890 +2544 +8402 +9290 +439 +9159 +7611 +8042 +6932 +9949 +1067 +7447 +4557 +5754 +2478 +785 +8375 +4455 +4537 +6700 +9280 +8310 +7795 +5245 +4770 +3489 +7230 +7588 +4820 +7922 +9922 +2998 +5032 +4817 +5118 +5891 +803 +2590 +1676 +5459 +9824 +3557 +2983 +4215 +1087 +8455 +5400 +1984 +9752 +1618 +8347 +4594 +4446 +3738 +1327 +4398 +6188 +5298 +4278 +8550 +4884 +417 +2820 +8637 +713 +4777 +5418 +7777 +4172 +4014 +2825 +7460 +2427 +8382 +5634 +8175 +4722 +2496 +7222 +4590 +5425 +5498 +7593 +7336 +7746 +506 +1727 +9638 +2896 +3860 +2593 +753 +8672 +9604 +7082 +2278 +6509 +9888 +5999 +1824 +8000 +2404 +5687 +8675 +3833 +6298 +341 +892 +5743 +1208 +2009 +1762 +4320 +3293 +7272 +1862 +8634 +7738 +7064 +6882 +5552 +3963 +2571 +9291 +3124 +8996 +9573 +3658 +3005 +5230 +4307 +2064 +1057 +2239 +6760 +169 +7897 +1199 +5836 +3412 +6491 +2807 +9337 +4362 +2027 +4717 +7001 +8177 +211 +5500 +897 +4411 +474 +6930 +1050 +4458 +2094 +7247 +6590 +8788 +6742 +2898 +5497 +4483 +4352 +8265 +1327 +4487 +6672 +570 +9417 +6259 +1277 +1272 +1491 +7534 +9419 +8005 +4574 +9896 +9910 +4863 +535 +4274 +6374 +8527 +7834 +6454 +4670 +6392 +5533 +8429 +6754 +5941 +2191 +7566 +2977 +2818 +4363 +6133 +2229 +6518 +3436 +9040 +5785 +8472 +9742 +774 +6955 +585 +4999 +9686 +1718 +3731 +160 +9956 +8260 +8582 +8098 +9862 +7200 +7376 +8975 +3417 +8578 +997 +2877 +4344 +6518 +7365 +7928 +2672 +2948 +771 +9339 +175 +3039 +7460 +7645 +1335 +9460 +9287 +4122 +5338 +9390 +1849 +8187 +9326 +4339 +7478 +3209 +7442 +1865 +585 +7506 +5948 +5235 +4056 +1638 +1435 +3496 +9310 +3097 +8682 +4110 +8482 +7254 +4084 +1774 +8916 +5753 +3000 +1843 +4261 +8161 +6117 +5492 +4992 +4286 +8315 +8344 +2885 +1326 +4689 +8348 +7088 +6661 +6153 +1419 +3925 +1584 +3334 +2485 +52 +561 +9784 +4027 +5988 +1401 +7401 +7980 +6844 +7554 +9007 +6183 +997 +8116 +3734 +3485 +6036 +125 +9519 +5204 +7879 +2144 +5449 +5130 +5852 +6597 +5916 +9730 +4565 +6712 +1642 +1854 +9475 +5463 +787 +818 +1915 +3163 +8492 +482 +3110 +8221 +6108 +2376 +411 +4517 +321 +3602 +1363 +7686 +4087 +9720 +5967 +8991 +2248 +7168 +9410 +9404 +2190 +6863 +3767 +574 +109 +5792 +110 +3039 +9735 +3742 +1418 +6975 +8411 +5829 +4662 +5529 +9148 +7634 +301 +9201 +8439 +9364 +1242 +7336 +8646 +5580 +5285 +2009 +2821 +4137 +5790 +1803 +4548 +5439 +1929 +9675 +1277 +7304 +4114 +2672 +4452 +736 +3859 +6081 +1192 +5200 +2528 +3833 +4325 +4624 +6180 +4246 +2179 +5047 +8714 +2749 +9564 +6454 +228 +3000 +1771 +6005 +9230 +9915 +2053 +3077 +3306 +282 +6927 +8265 +8811 +3581 +1204 +8002 +8558 +8900 +4018 +34 +3874 +6442 +8220 +8369 +7335 +1081 +6864 +3352 +8033 +3326 +3030 +1741 +89 +7326 +662 +1298 +8590 +7432 +9606 +6182 +6224 +8945 +889 +1624 +9964 +9704 +4258 +9159 +2521 +8049 +8992 +1874 +4065 +988 +8187 +8049 +952 +5285 +6189 +4090 +2678 +1728 +1183 +4302 +3511 +9239 +4413 +1307 +1352 +247 +9850 +4287 +3356 +1609 +4587 +4827 +2678 +8447 +1125 +4079 +2469 +6324 +9636 +5444 +1809 +2642 +8860 +9595 +7824 +7321 +305 +9199 +4845 +9588 +3276 +1190 +2246 +4716 +7680 +4882 +4171 +5243 +5417 +7414 +612 +3133 +5269 +3808 +2371 +9280 +640 +475 +8569 +9913 +8288 +8254 +2985 +1025 +1619 +4812 +7167 +4573 +664 +2974 +7395 +1990 +3633 +8093 +3071 +7139 +1919 +1971 +5944 +9998 +9745 +8035 +7486 +3583 +8186 +8083 +3565 +2749 +9846 +8618 +6139 +8225 +842 +5791 +8478 +2013 +3774 +1544 +2437 +9352 +6290 +5250 +2748 +1008 +4260 +250 +9662 +7415 +6093 +1766 +7219 +774 +4081 +1054 +9956 +8033 +2869 +1964 +578 +1439 +555 +9951 +6881 +7347 +3126 +5148 +645 +3127 +9619 +3198 +9222 +4927 +8900 +2077 +9102 +7182 +3832 +9191 +8879 +6500 +3806 +4351 +5534 +9153 +3954 +424 +8841 +2513 +9241 +6763 +9649 +1270 +9079 +6500 +2207 +7909 +3578 +5226 +4186 +3711 +5672 +3596 +4153 +3177 +6749 +3627 +3103 +5441 +3245 +3085 +9146 +7050 +6887 +2695 +8290 +2264 +4277 +8686 +3955 +6569 +4371 +8550 +4549 +8495 +5895 +5709 +6533 +2707 +594 +6473 +6570 +9037 +1758 +2723 +2580 +7768 +5910 +7506 +4198 +1560 +3355 +8480 +4279 +8522 +1530 +6858 +4972 +8279 +3529 +658 +8381 +5971 +6828 +3562 +6336 +7699 +112 +3652 +2253 +8711 +8427 +8899 +703 +9075 +3419 +9712 +6734 +5439 +9585 +1186 +484 +4178 +4327 +8018 +5085 +4897 +6489 +1907 +2229 +4200 +8936 +6609 +1481 +683 +4267 +8735 +1525 +2426 +1197 +348 +5398 +6929 +789 +9691 +5005 +3838 +7924 +7361 +9895 +6605 +1308 +2026 +3684 +1796 +8146 +1783 +6271 +5042 +8553 +5335 +7220 +9944 +497 +5555 +7690 +6561 +7934 +5533 +4511 +1001 +6009 +3263 +7157 +9059 +4323 +6460 +8171 +8682 +2208 +737 +319 +5087 +8067 +3272 +3903 +6984 +52 +6152 +865 +5269 +6180 +1837 +8027 +4121 +8768 +7535 +8158 +788 +678 +1128 +7366 +3876 +8396 +6658 +342 +5900 +5475 +3813 +6718 +9196 +9689 +4306 +5872 +2015 +4165 +83 +9292 +9183 +8546 +2637 +8364 +319 +5943 +2875 +8845 +3679 +7181 +3525 +7693 +3206 +1988 +7785 +7803 +406 +3445 +7656 +9951 +4303 +9198 +6851 +8464 +6512 +8 +3153 +1908 +4270 +418 +7428 +8252 +6115 +1378 +9805 +1261 +9216 +4485 +6622 +1687 +8246 +1537 +4906 +1872 +6054 +1043 +3922 +9211 +3640 +8049 +6080 +7623 +5924 +6246 +1316 +6944 +182 +4475 +5965 +6882 +9162 +3569 +888 +7379 +8017 +5894 +4230 +2586 +6949 +5014 +5807 +4023 +7941 +8805 +5557 +1485 +1631 +8267 +9289 +6216 +8002 +7985 +4956 +3634 +5779 +6078 +4778 +4545 +2986 +6010 +5083 +9074 +319 +78 +9984 +7680 +7244 +8373 +3666 +1691 +4360 +1460 +5520 +6752 +4600 +6982 +1942 +9468 +7825 +3204 +7416 +8946 +9191 +3179 +1741 +1709 +8036 +8729 +6288 +536 +9528 +7896 +7963 +4082 +7520 +9497 +4135 +7276 +3008 +4453 +2721 +5338 +329 +1007 +1134 +2537 +1932 +8183 +6315 +2657 +3469 +9932 +3211 +655 +9160 +4822 +9018 +9613 +9897 +385 +1910 +3081 +3026 +1944 +4698 +6126 +6087 +3442 +3379 +6431 +6382 +7730 +1831 +8066 +3117 +303 +6942 +522 +5265 +2827 +7308 +8687 +5955 +4210 +84 +6219 +1043 +9537 +9782 +8728 +7107 +880 +9365 +38 +5269 +5062 +7184 +8201 +3795 +2666 +3261 +7717 +1784 +8477 +5929 +8595 +8102 +3087 +8835 +4120 +6011 +172 +4573 +3229 +5494 +3276 +4148 +3760 +3007 +6851 +9767 +8228 +3496 +5493 +5025 +5686 +6787 +7178 +1022 +3903 +8528 +8893 +6383 +1134 +3179 +4186 +9506 +3531 +8127 +9494 +1444 +5323 +7992 +9232 +7869 +3564 +121 +1616 +5659 +4470 +609 +8920 +460 +1319 +3580 +1061 +1152 +326 +5459 +6637 +7086 +8257 +7663 +4250 +3191 +7811 +7099 +6089 +7981 +6543 +8576 +4039 +9525 +4531 +7079 +3527 +5719 +1498 +1904 +9992 +2681 +9400 +5468 +9000 +1765 +8042 +65 +4558 +5069 +1983 +5474 +3698 +6252 +7059 +6969 +8983 +6283 +2481 +7354 +8384 +3825 +2091 +3845 +6779 +3085 +9254 +3630 +7128 +3474 +9090 +1375 +6758 +8991 +3042 +8105 +5800 +7935 +1627 +441 +8973 +5772 +1834 +2364 +3487 +9817 +2818 +5803 +5911 +2627 +9358 +5819 +1239 +3831 +2705 +5846 +7512 +4927 +366 +5576 +4687 +8675 +2442 +5791 +8090 +3336 +9665 +7374 +6523 +6372 +6995 +3040 +5374 +4191 +336 +650 +2695 +99 +3628 +47 +6281 +4960 +6863 +1618 +7258 +8894 +3793 +7606 +5741 +999 +6924 +8934 +8821 +1885 +6821 +945 +2745 +7789 +3122 +5790 +3579 +4347 +2546 +9352 +5029 +7605 +5803 +3803 +1569 +2212 +1237 +2619 +8157 +6372 +8602 +679 +2876 +7839 +7998 +333 +4299 +7325 +6919 +7541 +7538 +5171 +7980 +9093 +8302 +6769 +1701 +8440 +4844 +3358 +7116 +5890 +2260 +7836 +3846 +8099 +5867 +2730 +1452 +2988 +5020 +8714 +1110 +2974 +3575 +7451 +2372 +5246 +5680 +1318 +386 +7569 +4936 +6282 +4885 +5924 +3207 +1052 +9542 +1384 +8393 +8699 +1542 +1770 +4660 +1353 +435 +4200 +9616 +7090 +9535 +4057 +2605 +2732 +6148 +1097 +4685 +7753 +3025 +9735 +9986 +4264 +2705 +3476 +3063 +2373 +7850 +5866 +464 +9675 +3444 +4279 +5844 +5872 +3603 +7515 +1284 +6625 +3884 +7152 +6438 +4627 +1444 +5358 +3817 +569 +5669 +3326 +2748 +8245 +2340 +3588 +2115 +3988 +9966 +3055 +2059 +3850 +2463 +470 +6716 +8038 +127 +8362 +4995 +3615 +8834 +5330 +5283 +5187 +5441 +6416 +4563 +9678 +1337 +2799 +9449 +6798 +5658 +1727 +7387 +5211 +7563 +466 +1471 +4302 +8754 +1549 +5304 +9750 +3662 +3174 +7247 +1475 +4534 +1065 +7332 +9209 +383 +65 +9266 +3882 +5133 +2765 +7591 +8509 +6954 +5834 +2098 +5001 +5336 +1302 +3414 +6846 +2184 +4499 +2084 +8394 +880 +1256 +8224 +7701 +4586 +4743 +4212 +5860 +3597 +3548 +2916 +2913 +1964 +6144 +9951 +9918 +131 +6833 +9043 +4 +8045 +7637 +5768 +3546 +4346 +2183 +1772 +9090 +6038 +7473 +4926 +1402 +3038 +316 +2907 +1514 +779 +1711 +1007 +9526 +6004 +7749 +4686 +6781 +5466 +2921 +5092 +4239 +4489 +9296 +8959 +7926 +2065 +5061 +818 +5938 +5946 +5936 +286 +4225 +3817 +4322 +1428 +9964 +4680 +7327 +7029 +1099 +5057 +6200 +6542 +626 +3214 +4004 +6843 +8373 +8073 +4074 +3485 +1533 +1269 +7539 +321 +957 +6577 +4648 +7554 +402 +3313 +3373 +7831 +2096 +9750 +4505 +6863 +2653 +6084 +7672 +9485 +6170 +9286 +7463 +5921 +5270 +3040 +3358 +1842 +7308 +6682 +8145 +1509 +4338 +716 +3885 +8279 +9287 +5504 +6374 +8062 +4454 +2243 +7652 +5283 +6918 +6216 +919 +5319 +6040 +7045 +3395 +2791 +790 +1327 +3111 +38 +6729 +3448 +9285 +7490 +156 +5065 +774 +2130 +5236 +8334 +7952 +78 +2843 +9893 +2663 +4529 +9783 +3526 +2447 +8073 +3988 +2909 +8327 +9990 +8054 +818 +1057 +3128 +3384 +9751 +7862 +3546 +2288 +7471 +2012 +8790 +861 +3000 +3122 +4728 +5314 +5165 +9287 +666 +837 +5886 +9069 +4834 +8290 +1214 +6116 +9974 +7363 +7411 +8896 +7232 +4906 +827 +9164 +3090 +9393 +2090 +2214 +793 +7251 +8256 +8454 +5024 +494 +8799 +3335 +4766 +1757 +1392 +1614 +2384 +9497 +3816 +8309 +7212 +6557 +621 +9892 +701 +4143 +8923 +8085 +9045 +3591 +8158 +1707 +5273 +1282 +5011 +5292 +2406 +7785 +4321 +2330 +1395 +4798 +7273 +2614 +9959 +1662 +7714 +8426 +4063 +4208 +8297 +2227 +6149 +7080 +6212 +548 +3440 +9866 +3552 +6708 +3918 +136 +6801 +9996 +9441 +2511 +789 +4038 +7201 +2720 +9120 +1941 +5840 +1508 +6448 +1367 +4258 +7237 +8624 +218 +5383 +1069 +50 +1805 +3413 +51 +9761 +8485 +1988 +3068 +5626 +3214 +5789 +3008 +784 +1116 +2232 +5097 +454 +1302 +8906 +2832 +3429 +9313 +2210 +3499 +9584 +4149 +1608 +3547 +1072 +7297 +1310 +2450 +1439 +3765 +7267 +6643 +4479 +1904 +6138 +738 +8091 +9197 +7438 +5822 +5515 +830 +7276 +5528 +9136 +38 +2654 +3718 +9314 +5059 +9337 +9335 +2721 +8831 +7268 +9154 +3299 +6008 +7011 +5161 +6257 +6322 +7927 +7821 +285 +8206 +2383 +1975 +3320 +8481 +4690 +8428 +6960 +8259 +9838 +2560 +8994 +8579 +3851 +3696 +8305 +4167 +1645 +7038 +4998 +7547 +6683 +9447 +1906 +7815 +9108 +7086 +3210 +2126 +6647 +7163 +1674 +1446 +9134 +4812 +5664 +5376 +3432 +9728 +8286 +3838 +8428 +5069 +4465 +8975 +8386 +5820 +8867 +6390 +960 +2071 +7951 +2362 +7402 +8916 +1248 +2050 +4730 +1317 +1775 +8660 +2317 +5658 +1630 +2864 +3603 +4815 +9658 +2987 +4163 +8667 +4141 +383 +3947 +3027 +5889 +8956 +5438 +9225 +7645 +9297 +4324 +3579 +6439 +218 +9706 +6901 +3491 +9752 +6816 +1162 +9432 +9129 +1953 +4533 +6032 +2902 +4127 +2879 +6338 +3051 +1510 +9140 +8282 +3511 +938 +1125 +8191 +1322 +1446 +8652 +4458 +5980 +2946 +1915 +381 +2600 +9587 +2773 +2818 +2826 +7780 +14 +3919 +9320 +8943 +4895 +8421 +9899 +3660 +1682 +1798 +7595 +944 +6589 +6049 +2756 +4389 +998 +2505 +3747 +1291 +2263 +3948 +4276 +3022 +3025 +838 +5493 +7814 +5460 +7160 +3152 +6454 +8299 +7081 +5758 +5993 +97 +5602 +4646 +4860 +1182 +1055 +5680 +4317 +1899 +1662 +3189 +2916 +1714 +5431 +2061 +2249 +2410 +457 +1529 +4384 +3260 +5112 +2712 +6158 +5881 +2917 +8112 +2505 +8150 +9199 +3590 +8290 +9138 +6022 +8685 +3997 +4711 +9099 +9864 +1989 +9832 +8082 +1216 +3719 +835 +6304 +4763 +9881 +5862 +1922 +2464 +7978 +14 +2680 +2360 +6609 +4805 +4082 +4487 +2466 +6496 +1045 +7905 +9138 +111 +7874 +6452 +9919 +6045 +8736 +1474 +4564 +3988 +2698 +5026 +1025 +5362 +5508 +1307 +4311 +5094 +9108 +6264 +5404 +5368 +7885 +1030 +7537 +5654 +5006 +4654 +8550 +4160 +3212 +1651 +4801 +1932 +7222 +5466 +5699 +1308 +9873 +8086 +2374 +8794 +4126 +6453 +3612 +5335 +5825 +4412 +6875 +4052 +7363 +7412 +3392 +172 +9685 +7711 +1349 +2942 +5484 +910 +7002 +2593 +6013 +9287 +4171 +376 +9871 +7055 +7544 +6991 +1658 +4108 +819 +8252 +299 +9707 +8305 +49 +1369 +600 +5628 +5707 +6651 +9172 +3278 +9249 +8882 +4122 +4035 +363 +9382 +1469 +6363 +5648 +9670 +1266 +2803 +9427 +7598 +8679 +5969 +118 +1499 +5117 +2988 +2763 +4996 +7157 +8062 +3936 +3756 +1334 +7051 +5510 +111 +4625 +9226 +2091 +141 +9604 +6196 +6298 +3717 +3296 +1659 +1974 +368 +7664 +7734 +4288 +2767 +5034 +334 +7900 +5805 +808 +2745 +610 +8841 +4966 +8647 +6766 +9848 +8494 +4985 +6366 +2989 +7016 +2990 +3084 +9626 +4455 +5157 +2891 +9249 +8771 +4348 +4122 +7763 +9255 +3664 +5083 +5741 +7502 +1606 +8899 +3044 +1585 +305 +4499 +4610 +9205 +9604 +1200 +3920 +2122 +3002 +8308 +7989 +6501 +9372 +764 +6549 +398 +2456 +9613 +5269 +9342 +8126 +1739 +3567 +4828 +2958 +8870 +2290 +8204 +1716 +5408 +2403 +23 +8980 +8837 +5753 +253 +6726 +8495 +9845 +9305 +7728 +7660 +5930 +8167 +6958 +5235 +3370 +7899 +7535 +1002 +3578 +5209 +3054 +3238 +1229 +1984 +7422 +509 +6570 +1625 +90 +1792 +8473 +598 +5980 +3259 +6659 +9930 +640 +2002 +8356 +7881 +6745 +9633 +8108 +630 +9130 +5399 +6360 +417 +5204 +5229 +6042 +7434 +1666 +5005 +9984 +2481 +6677 +6869 +4445 +1200 +1430 +878 +1257 +8212 +3433 +9566 +6290 +8873 +7174 +7481 +7839 +8074 +1354 +6486 +5958 +6 +213 +2697 +6935 +2472 +2218 +3389 +3788 +4799 +8531 +2665 +3001 +6620 +6306 +1173 +5194 +6930 +8887 +601 +7953 +5470 +6408 +322 +2422 +941 +3207 +3631 +3579 +9435 +6593 +9471 +9912 +379 +6871 +6266 +5379 +4461 +2927 +1021 +6524 +1664 +2702 +3932 +2976 +5618 +4460 +2334 +3757 +1426 +3522 +164 +5994 +4605 +6167 +9063 +3388 +2718 +5987 +3743 +5480 +9689 +132 +5492 +9462 +5815 +9300 +1036 +6189 +3008 +7889 +7587 +4791 +259 +4759 +3762 +2046 +1888 +3936 +327 +5269 +6780 +5395 +7493 +9184 +2168 +1764 +1004 +9178 +6010 +8608 +5545 +7478 +300 +6366 +5697 +9709 +3224 +9940 +8303 +8780 +7521 +9931 +474 +2175 +5964 +6567 +6760 +8944 +6618 +2440 +6298 +5583 +7358 +7693 +8323 +866 +6509 +3296 +2153 +3898 +1750 +637 +3144 +6762 +5734 +9385 +5038 +3562 +4084 +3680 +6359 +4243 +7741 +7114 +3119 +2321 +6246 +8475 +1453 +8615 +8220 +7375 +7569 +1947 +3335 +2024 +8054 +346 +7217 +3829 +6483 +4683 +9368 +2694 +2953 +4972 +2242 +4095 +2287 +2414 +8531 +5691 +7780 +2166 +7919 +5681 +5921 +8881 +9144 +2321 +5566 +1527 +787 +9576 +6385 +6134 +4261 +1314 +9147 +1624 +7524 +8022 +3038 +5148 +3407 +3141 +4149 +3895 +9845 +5840 +2229 +5433 +3047 +5488 +134 +1717 +6581 +9042 +2030 +1908 +6601 +6704 +2295 +2691 +9308 +1521 +8671 +7542 +6983 +5016 +4268 +335 +4756 +4975 +8735 +2146 +8145 +7328 +1433 +61 +1850 +3700 +6459 +9493 +9445 +8666 +4048 +3356 +5498 +5987 +2813 +3508 +6754 +3560 +1004 +6518 +747 +7015 +4142 +5394 +2051 +5225 +7380 +8355 +4026 +9716 +3734 +248 +6351 +559 +9595 +1087 +4435 +5301 +436 +8372 +9155 +272 +3974 +8392 +5969 +2759 +579 +97 +1038 +1951 +1453 +1962 +8457 +8445 +3893 +2120 +7784 +8618 +4622 +7788 +463 +9603 +1107 +8089 +5006 +9482 +7211 +4099 +1789 +5300 +9950 +8461 +2788 +7581 +9720 +1963 +2260 +867 +2222 +820 +7906 +484 +2428 +9762 +2282 +1430 +749 +1189 +620 +4625 +941 +4496 +5434 +9808 +8304 +3865 +7278 +8218 +229 +8039 +8500 +2429 +633 +7042 +7056 +8337 +6316 +7447 +1456 +4045 +4406 +9999 +716 +1161 +9172 +3687 +4854 +1303 +2048 +9652 +1590 +7327 +6759 +7406 +3533 +3908 +8791 +8785 +6272 +1365 +901 +9329 +5870 +7558 +1246 +8064 +4323 +3942 +4942 +8378 +4888 +3788 +78 +4381 +5038 +4008 +5579 +8914 +1670 +6377 +645 +6749 +8710 +1084 +4896 +3602 +2260 +2167 +2281 +687 +2625 +6187 +8638 +8556 +6714 +4725 +5092 +1292 +8385 +5088 +4050 +3446 +1522 +2599 +7031 +479 +5864 +91 +2617 +6995 +8696 +6917 +7159 +7839 +5392 +9132 +5568 +1544 +1932 +2621 +8255 +2248 +1299 +8414 +2828 +4630 +5934 +8429 +9600 +5065 +9045 +1352 +7997 +2944 +5081 +3233 +6181 +7105 +1478 +4615 +5973 +2495 +4434 +1763 +6420 +8498 +4250 +2769 +5868 +2492 +748 +529 +2766 +9011 +353 +8896 +1174 +5374 +5452 +8275 +2818 +5418 +5972 +7244 +9012 +5926 +3677 +9023 +8005 +1621 +352 +9505 +2221 +6943 +530 +614 +8016 +7035 +8266 +380 +3833 +2034 +3811 +6863 +1390 +8767 +9822 +8219 +2259 +1299 +4406 +417 +1107 +4588 +8513 +97 +15 +6592 +4505 +6545 +6148 +609 +4263 +5259 +5169 +6101 +4414 +4400 +7506 +2126 +9546 +9944 +2030 +1237 +1491 +8672 +2739 +3823 +2222 +5097 +8057 +6504 +2718 +9309 +8763 +4851 +1911 +4256 +6016 +83 +233 +5108 +8383 +8351 +81 +8733 +9523 +2574 +5329 +7691 +7653 +8620 +1535 +6270 +9798 +1892 +251 +3734 +6353 +7979 +1551 +267 +6510 +4801 +103 +291 +4900 +8885 +6598 +8571 +5697 +4397 +2970 +6239 +658 +3347 +4677 +9768 +1406 +9425 +5310 +3744 +4288 +7845 +4920 +7146 +4282 +3531 +5815 +2583 +4100 +7027 +765 +8945 +2640 +2774 +8381 +6131 +1736 +1171 +7870 +1140 +3972 +5004 +5671 +2683 +9239 +8898 +5569 +371 +7803 +1403 +4479 +8045 +6785 +7665 +1464 +209 +2108 +161 +516 +7733 +5913 +8313 +4385 +3071 +5033 +9456 +9732 +356 +951 +8718 +6720 +3246 +1129 +5927 +6665 +3913 +9754 +9260 +185 +8804 +6811 +8313 +9243 +8009 +1619 +9726 +2526 +5186 +1183 +2099 +4846 +4672 +9537 +1571 +2849 +7578 +5923 +5002 +1925 +3959 +1395 +9692 +2576 +9969 +4432 +9238 +6817 +8948 +5648 +1950 +6575 +8736 +3596 +1008 +1625 +6166 +9805 +751 +2424 +6370 +393 +8113 +9375 +3840 +8826 +9007 +7381 +393 +6601 +3115 +6018 +6036 +6134 +4130 +7722 +4924 +1756 +6775 +11 +8302 +933 +1880 +3410 +1580 +3508 +7290 +1588 +5962 +363 +8277 +7710 +6662 +324 +748 +1232 +8517 +2591 +5845 +1606 +3070 +1585 +3684 +5235 +8635 +9180 +8397 +2335 +7830 +3588 +7831 +976 +1672 +235 +5881 +6084 +235 +8201 +1073 +810 +5896 +8672 +1364 +8318 +6104 +9692 +3916 +9231 +9699 +2171 +1987 +6974 +1760 +459 +9732 +6252 +3096 +1723 +2088 +313 +2339 +7167 +5487 +2880 +787 +7065 +465 +2734 +5269 +4721 +9629 +8891 +3092 +9714 +1467 +10 +5682 +1700 +357 +805 +4589 +5963 +3364 +9532 +9552 +842 +7643 +1662 +5213 +2554 +5385 +8986 +16 +6941 +3630 +4085 +420 +2675 +3611 +2356 +8182 +7033 +5012 +7139 +9802 +3135 +5685 +6981 +1270 +2199 +9865 +3148 +4769 +279 +5964 +453 +6183 +202 +7809 +8455 +1931 +5425 +1022 +4371 +3515 +4955 +6129 +5227 +7407 +2603 +7487 +9903 +710 +1455 +7386 +6214 +5464 +9731 +9862 +2124 +4122 +1735 +5359 +5535 +7725 +6804 +3347 +3769 +8794 +7973 +909 +9018 +9160 +1369 +5449 +8863 +9707 +62 +592 +5425 +8597 +3568 +7170 +935 +9150 +7718 +7403 +5414 +36 +8524 +8111 +4580 +7075 +4489 +4083 +3130 +8408 +4194 +9846 +5122 +7847 +5337 +9473 +4744 +291 +9530 +6766 +3225 +2337 +4742 +2818 +2102 +1382 +9072 +8238 +1162 +7031 +8808 +933 +3768 +7509 +1108 +4944 +8740 +5526 +8043 +1183 +824 +955 +1852 +2725 +9049 +1627 +4818 +3411 +4396 +7003 +6211 +6191 +8389 +360 +9663 +5236 +8060 +8760 +7932 +83 +5698 +7728 +2046 +9603 +2775 +2810 +1728 +4644 +4440 +2162 +623 +7514 +7917 +8097 +3588 +845 +7621 +3396 +2398 +436 +4068 +6819 +9305 +3205 +4755 +6772 +276 +9813 +2784 +2413 +3989 +6766 +8181 +754 +2073 +1320 +6487 +3124 +1341 +6741 +7928 +2749 +3258 +6320 +1966 +2239 +6924 +3022 +48 +108 +7917 +9710 +6358 +8319 +7974 +2410 +8362 +4005 +3248 +2970 +6677 +8477 +7896 +6866 +6718 +1296 +3593 +6688 +7309 +1742 +4841 +7107 +199 +7960 +5900 +7962 +7029 +5297 +7723 +9148 +954 +6527 +8649 +164 +611 +1824 +666 +4672 +3920 +8504 +4176 +4596 +7451 +9234 +8377 +6140 +1400 +6167 +1925 +6300 +4933 +3904 +7118 +3834 +7044 +2549 +8785 +4385 +4130 +4073 +2808 +651 +189 +8498 +5002 +8299 +358 +129 +8863 +8437 +5832 +86 +7647 +9092 +648 +89 +3472 +6779 +6864 +9036 +2978 +9557 +4068 +8621 +6993 +9559 +9962 +965 +510 +4036 +9708 +2746 +8292 +7014 +3897 +4981 +9398 +4031 +8028 +9452 +8261 +7865 +5919 +6496 +8452 +5826 +6719 +1286 +1571 +246 +6901 +3402 +9810 +5647 +1750 +9965 +9857 +2792 +6651 +4541 +1538 +3989 +536 +9588 +175 +781 +2030 +57 +6928 +4667 +1400 +484 +8022 +1058 +938 +4135 +2821 +8992 +1661 +3275 +5586 +920 +5462 +1027 +4129 +9618 +5838 +4116 +8274 +2706 +9866 +1124 +5326 +2087 +4561 +3071 +6298 +4673 +2648 +3744 +5434 +961 +3060 +7263 +35 +3951 +5302 +8356 +9351 +1796 +2895 +3430 +353 +2315 +4475 +5790 +7334 +2252 +9269 +9090 +90 +9840 +8004 +7909 +1571 +301 +8912 +8497 +2058 +7816 +7396 +356 +2338 +2075 +5167 +8481 +5237 +9062 +497 +1554 +4381 +244 +328 +7294 +6131 +6603 +7298 +6402 +5824 +2570 +731 +3904 +5769 +9971 +5955 +4584 +12 +369 +9717 +3811 +9464 +8490 +6236 +7946 +9147 +188 +8125 +3027 +3743 +6948 +4602 +1767 +209 +9345 +3427 +2471 +6427 +642 +5052 +2067 +9672 +4323 +4700 +8418 +9001 +8915 +3890 +2418 +1157 +8845 +5712 +5544 +6440 +513 +7575 +1468 +24 +1544 +5584 +4843 +4675 +678 +8814 +6149 +8382 +3621 +6580 +3801 +8572 +3235 +4934 +2282 +7159 +2652 +9645 +5324 +4282 +8183 +6269 +356 +7607 +8079 +9405 +9074 +7952 +2822 +2764 +9196 +5842 +625 +8346 +3727 +6886 +2913 +7648 +5140 +1907 +3507 +9885 +8131 +3428 +8787 +9938 +7332 +3940 +4331 +8514 +4272 +5619 +5531 +4417 +2287 +7274 +7056 +1665 +4394 +5839 +8154 +624 +8762 +169 +1026 +3546 +8460 +2211 +3533 +3388 +6657 +1611 +5498 +4802 +1618 +9052 +7373 +6815 +4628 +787 +2067 +5659 +9480 +1771 +9997 +5052 +6306 +7046 +1233 +7412 +5063 +4942 +1068 +8850 +2202 +2778 +8481 +7137 +8688 +7981 +6197 +5617 +6633 +7934 +6455 +3979 +1620 +5962 +8119 +3989 +445 +9296 +2590 +4849 +5735 +92 +4719 +9862 +5837 +4564 +8928 +9303 +4965 +3020 +2185 +2461 +7434 +1976 +4540 +5870 +1429 +7721 +5470 +7612 +2867 +5905 +2334 +3840 +9105 +5794 +1426 +6722 +2108 +8412 +3471 +6132 +5132 +2839 +145 +3166 +6400 +4455 +3317 +4084 +3395 +9387 +7787 +5868 +8820 +1800 +7482 +1311 +7102 +1583 +3006 +6417 +2890 +5333 +6457 +4964 +3070 +9622 +5572 +3571 +9338 +1176 +1004 +8889 +9491 +743 +8752 +382 +3664 +615 +3283 +7171 +9550 +6750 +108 +5979 +9851 +8523 +6991 +5152 +1602 +6147 +1422 +9087 +1364 +5867 +5667 +8672 +5895 +8479 +5220 +1102 +1211 +6942 +7410 +7177 +7772 +8104 +388 +7821 +3818 +5490 +141 +5816 +2061 +9342 +9785 +6071 +738 +510 +6956 +2257 +6606 +9833 +9597 +8286 +4835 +2646 +4306 +5059 +7735 +3059 +6770 +7567 +1813 +2249 +9388 +1104 +3182 +9764 +6532 +7522 +1045 +6974 +3878 +1153 +3979 +7407 +8195 +4902 +6886 +1693 +96 +3638 +8134 +3510 +9852 +331 +510 +4824 +3543 +3774 +2475 +5162 +6449 +3048 +4956 +2071 +8889 +6371 +6771 +6616 +8526 +6304 +4560 +4470 +2181 +3247 +3298 +2241 +9015 +1627 +4693 +6679 +2174 +6202 +6928 +8176 +2203 +9229 +6487 +7174 +1295 +9480 +6545 +7022 +7477 +386 +1916 +5705 +5109 +583 +2450 +9687 +2165 +4234 +4706 +3666 +9369 +7640 +930 +6609 +9231 +1722 +8902 +3697 +3175 +6734 +3225 +5633 +864 +9789 +1989 +6096 +4003 +5611 +1963 +5478 +6632 +5065 +1458 +8298 +4265 +5432 +1705 +6638 +2923 +5300 +7947 +1228 +1792 +6708 +6062 +8347 +8501 +7721 +4257 +3675 +3812 +4684 +7016 +812 +3166 +7479 +6773 +334 +6761 +6162 +474 +8435 +3545 +5951 +5307 +2460 +9775 +4479 +3958 +5235 +9426 +4321 +1494 +4404 +7781 +3001 +7799 +6524 +7332 +2233 +41 +5576 +6860 +2295 +1398 +3463 +693 +3057 +9886 +7316 +674 +6651 +2566 +1628 +445 +8048 +8656 +6326 +4192 +1818 +6972 +2295 +2144 +9677 +6225 +1374 +8655 +2954 +2969 +5173 +5027 +8852 +3371 +8460 +4164 +2599 +2390 +8754 +9029 +6293 +684 +866 +8994 +247 +9852 +8515 +5099 +2606 +6627 +7860 +9283 +2117 +5590 +5352 +4692 +3420 +928 +91 +450 +1149 +2091 +5109 +108 +424 +9166 +5436 +7758 +8931 +7455 +2144 +7299 +4861 +1349 +649 +7368 +9617 +2092 +5262 +691 +2027 +6567 +6159 +5889 +201 +2557 +1776 +1756 +7257 +564 +2722 +77 +1173 +4735 +4220 +5493 +763 +3776 +6551 +1295 +2579 +376 +3175 +6299 +6384 +2189 +9911 +9329 +9166 +8017 +2507 +2024 +1162 +8494 +4885 +7398 +3170 +5981 +3016 +5525 +8894 +5193 +1640 +4611 +4537 +627 +7344 +3482 +9683 +1500 +5381 +8076 +1365 +1514 +3158 +4521 +9411 +2526 +5133 +9966 +7851 +8453 +8051 +268 +9691 +6824 +6217 +789 +8174 +2484 +6188 +9718 +9815 +3325 +5588 +6090 +1923 +9990 +9120 +3942 +296 +2589 +7938 +7211 +76 +1787 +5772 +4435 +6250 +5314 +8265 +9873 +4330 +1064 +4680 +4100 +3381 +2371 +4573 +7486 +3278 +7611 +5846 +2727 +84 +9569 +3187 +7149 +4906 +9233 +3379 +8582 +1596 +6811 +7876 +7036 +9693 +3974 +2113 +1480 +1139 +4735 +1095 +3835 +6447 +8419 +3686 +9841 +4741 +552 +4006 +4217 +3772 +7544 +9317 +122 +9739 +3321 +4380 +5788 +5834 +7718 +5299 +2584 +1810 +1270 +3700 +2282 +119 +271 +8942 +4141 +7768 +3244 +1068 +9912 +593 +3538 +9619 +1729 +4422 +8932 +8497 +5110 +7734 +7164 +5521 +9836 +3044 +2354 +7702 +2083 +9307 +7836 +1123 +1833 +5921 +6118 +5580 +4564 +6544 +8961 +1519 +3357 +9552 +281 +3972 +8743 +3854 +5290 +5623 +458 +1275 +8475 +3533 +8133 +2852 +1092 +1351 +7016 +1507 +8750 +7537 +3745 +7448 +1670 +5042 +475 +7028 +2538 +7428 +9598 +2417 +2789 +3011 +469 +3203 +7285 +1688 +7986 +3259 +2462 +2921 +236 +4350 +4406 +7047 +4724 +8383 +1242 +8367 +4958 +3252 +7213 +7216 +2154 +6105 +5016 +9680 +7382 +5362 +8910 +4416 +2618 +1802 +9934 +5003 +1484 +2459 +7106 +3607 +1046 +2602 +2036 +8664 +8343 +7292 +5698 +7072 +1267 +1209 +4463 +490 +5821 +4131 +2097 +6555 +5135 +8880 +1041 +5246 +4067 +7081 +3953 +7260 +6007 +2765 +3133 +4973 +9365 +5636 +1916 +4007 +9407 +4909 +2659 +650 +761 +1624 +953 +3180 +2957 +6259 +6784 +3395 +7359 +102 +6297 +6477 +3778 +8331 +5923 +5387 +6541 +3235 +1967 +6181 +2442 +1841 +2013 +2238 +2036 +8974 +9761 +5619 +9256 +1357 +4321 +6382 +8365 +4771 +9327 +9273 +5360 +9268 +2638 +9016 +3102 +5043 +147 +988 +6498 +5044 +5058 +2751 +6325 +862 +3744 +7302 +4252 +1138 +3762 +7874 +6227 +1051 +8385 +2042 +5374 +6922 +1064 +9235 +5316 +3265 +7089 +2560 +4167 +8519 +6731 +3854 +9250 +2119 +8442 +7777 +8557 +6747 +5501 +6138 +28 +746 +1915 +548 +9637 +8476 +2303 +3368 +5610 +1280 +5988 +794 +7074 +4228 +2898 +7717 +9587 +1855 +2130 +8327 +8489 +3517 +4787 +8330 +7624 +7718 +6725 +3003 +8125 +833 +8243 +4024 +9612 +8793 +2211 +396 +2466 +133 +4465 +6666 +5169 +2872 +9778 +5872 +3581 +8659 +9573 +1991 +5346 +5300 +7570 +9754 +5022 +1153 +9904 +2282 +1029 +1223 +5798 +4722 +1287 +9791 +3341 +5382 +534 +3387 +5082 +1362 +2215 +1490 +2614 +4521 +9680 +7129 +6087 +6552 +2785 +5731 +2558 +9023 +1249 +5941 +4020 +9633 +3752 +246 +6925 +6885 +1310 +8014 +5797 +7936 +5569 +3382 +4445 +9032 +6203 +9772 +5679 +39 +439 +4489 +7258 +3058 +3919 +9041 +173 +8633 +5178 +2081 +3839 +4884 +7423 +6762 +987 +7812 +8338 +885 +7640 +242 +823 +9413 +4113 +4531 +3480 +240 +5057 +8212 +2246 +6161 +3690 +2542 +3019 +6238 +1434 +4267 +4764 +991 +941 +9771 +4887 +3698 +1500 +1392 +3550 +9963 +4593 +7237 +1168 +1260 +9135 +7157 +6891 +6498 +2770 +9101 +6022 +5408 +4219 +8833 +1312 +4610 +1227 +2018 +5808 +996 +380 +1907 +5563 +4527 +8306 +9306 +6218 +1807 +1818 +2819 +2587 +9382 +8395 +6175 +1858 +3942 +7765 +8018 +2058 +675 +7155 +2584 +5547 +6035 +9018 +3062 +1211 +6054 +9587 +8403 +7423 +6641 +5408 +9648 +8093 +9331 +751 +7977 +5150 +5084 +9462 +7595 +7565 +3053 +70 +7672 +4095 +6506 +2984 +6656 +5894 +5784 +5101 +3541 +2766 +9435 +4806 +7460 +7041 +9750 +9171 +9905 +6219 +5291 +1622 +4179 +3656 +3240 +580 +1861 +2767 +2441 +3445 +8437 +3841 +1735 +838 +7399 +3584 +9123 +8791 +8968 +2254 +4301 +1415 +5738 +92 +7252 +6086 +3374 +7551 +2441 +6621 +8752 +9491 +9797 +800 +1392 +3436 +9081 +8499 +6375 +2710 +6107 +7296 +8885 +7629 +5752 +7524 +7841 +2760 +3429 +108 +6014 +6021 +8429 +4338 +5566 +1020 +7535 +4433 +3045 +5924 +7733 +7360 +5845 +3178 +3808 +7933 +7024 +1542 +3824 +9423 +5260 +1160 +7967 +3658 +7868 +6585 +7664 +1272 +2543 +306 +169 +228 +7560 +8672 +9133 +9087 +2991 +4434 +5459 +3049 +4459 +9536 +7440 +8640 +8780 +5863 +989 +6991 +8463 +9043 +8303 +3329 +5816 +9222 +114 +6505 +4628 +4261 +4982 +8573 +185 +5295 +5782 +3673 +5804 +577 +2885 +4784 +7439 +4336 +5518 +5475 +8531 +3958 +2986 +1961 +8423 +5857 +9172 +3490 +3902 +4490 +3176 +2120 +9402 +3742 +7160 +352 +4362 +6768 +986 +2865 +8963 +2311 +3865 +1221 +2133 +6202 +9130 +4509 +7441 +6292 +5086 +9266 +3218 +2383 +1270 +1909 +209 +8166 +9778 +8569 +4418 +3529 +995 +7378 +5952 +1002 +5620 +4447 +4392 +1575 +289 +9177 +7437 +8558 +4209 +1395 +7513 +6756 +1050 +1747 +3796 +3113 +9294 +4753 +7840 +9328 +211 +1320 +6099 +5529 +2202 +4219 +8804 +8608 +568 +2732 +6378 +259 +2116 +5764 +1785 +4064 +3478 +5430 +4514 +6832 +7181 +2037 +3686 +2270 +6750 +9006 +1949 +9475 +4778 +1165 +1307 +4287 +5617 +5968 +2962 +8348 +4170 +7232 +5275 +6484 +4438 +9836 +7843 +1999 +8703 +7411 +5481 +237 +82 +1199 +157 +5530 +3782 +7136 +9846 +8557 +4752 +2552 +6721 +6455 +6398 +5109 +6574 +6976 +8580 +9150 +6057 +1344 +5822 +2488 +1201 +2111 +9306 +30 +7201 +9968 +4641 +540 +8262 +5773 +9104 +4763 +353 +3885 +590 +3180 +7527 +4794 +1025 +1299 +5249 +4280 +7878 +291 +120 +9386 +8502 +8085 +2093 +8820 +9901 +2317 +7400 +2085 +1476 +5359 +1573 +5372 +5527 +9264 +8517 +260 +6455 +930 +0 +9282 +3193 +5523 +27 +4836 +4275 +1638 +719 +5926 +7867 +6640 +2569 +1450 +4723 +171 +9615 +1225 +8057 +2327 +3750 +6061 +9428 +3327 +2777 +6362 +5912 +3303 +5660 +3608 +1272 +2049 +4728 +3053 +3367 +8272 +7776 +8136 +9463 +5394 +2605 +5048 +3481 +9294 +269 +1903 +6998 +9720 +5291 +2528 +295 +637 +8065 +2993 +9918 +2019 +6116 +623 +1784 +7816 +5392 +4486 +1737 +4788 +2346 +8243 +1140 +2913 +2602 +215 +4838 +3642 +3298 +8281 +4967 +6298 +6433 +4963 +9219 +1916 +6070 +1266 +9404 +8482 +5696 +5949 +1531 +7463 +6264 +8790 +7226 +9247 +1413 +1163 +5499 +9812 +4526 +1850 +9251 +380 +1521 +5632 +961 +2065 +4934 +1218 +3345 +763 +7180 +2981 +3370 +5751 +3028 +328 +3272 +4542 +7084 +2531 +1035 +8536 +349 +5440 +7836 +7567 +9058 +1989 +8922 +1018 +6559 +35 +6846 +6282 +9271 +3036 +8692 +3601 +4703 +7568 +6686 +256 +1815 +6084 +9543 +8276 +6261 +6036 +1354 +8373 +6242 +7063 +239 +3457 +5622 +2784 +2751 +2037 +9195 +3225 +3707 +5280 +9396 +2952 +1814 +2793 +6750 +149 +7038 +6069 +7745 +4134 +8503 +1982 +9006 +6171 +8871 +4571 +8361 +3245 +3005 +1502 +684 +3423 +572 +2589 +4153 +1431 +6522 +2789 +6362 +9310 +8946 +1924 +5288 +57 +9781 +4333 +4832 +1715 +5639 +7277 +8935 +6302 +5198 +2070 +3014 +2792 +6662 +9216 +4720 +9115 +1164 +5381 +8377 +1216 +1161 +8688 +7461 +4626 +123 +8518 +3353 +8296 +341 +6 +5625 +4724 +8824 +6720 +6136 +1969 +7348 +604 +9285 +9076 +2495 +9935 +7948 +2229 +6090 +9141 +4405 +7505 +248 +2994 +2405 +7397 +7146 +1980 +5473 +6231 +8604 +498 +3089 +1364 +5286 +3334 +7702 +1653 +956 +7016 +2229 +5493 +491 +496 +7700 +9939 +4497 +9890 +753 +6989 +2468 +1877 +885 +4787 +5827 +3330 +1212 +4676 +6920 +1383 +1200 +5550 +9459 +6315 +301 +8085 +3376 +2904 +3340 +3986 +6799 +5971 +6001 +9385 +974 +6975 +8919 +7371 +1842 +2724 +5600 +6938 +3062 +8682 +1205 +349 +2266 +5969 +3110 +3233 +9024 +7015 +9834 +4038 +9576 +8368 +3712 +3127 +5178 +9251 +2160 +1354 +6421 +1563 +7713 +1462 +4437 +153 +4211 +3004 +3747 +766 +6841 +5337 +3962 +410 +2282 +9242 +3968 +8221 +4251 +6267 +7020 +974 +7874 +476 +9338 +8865 +5144 +7879 +7345 +8678 +5318 +251 +4293 +98 +5607 +563 +6805 +945 +7924 +3739 +5186 +8984 +9858 +1768 +8505 +4563 +2070 +9990 +3588 +745 +9912 +9006 +2233 +6568 +1005 +2263 +1815 +5495 +3792 +3794 +9671 +5277 +9492 +4532 +6975 +1180 +1697 +9460 +5753 +484 +1404 +8587 +2718 +1852 +797 +2103 +8195 +1294 +4272 +9177 +7152 +7700 +1944 +8487 +5549 +5947 +1304 +968 +1584 +8049 +4735 +6804 +2684 +7307 +930 +1345 +5445 +7526 +4310 +1998 +4099 +671 +1314 +9564 +9440 +1808 +6051 +5738 +9399 +9539 +5065 +7835 +5326 +4414 +5363 +4235 +5094 +4880 +1644 +267 +4378 +8101 +6644 +6918 +3292 +9552 +3528 +6902 +4486 +1940 +9642 +2509 +7915 +8185 +3464 +1777 +2949 +1565 +1782 +7215 +8613 +9293 +8833 +9877 +4534 +657 +6734 +5467 +7705 +3125 +801 +9631 +3878 +2243 +702 +9723 +5091 +5754 +4644 +9185 +9186 +7026 +3616 +2697 +8037 +6041 +6350 +8604 +2642 +1528 +7672 +6877 +7490 +3977 +2611 +3839 +5127 +7516 +4490 +7388 +6657 +9515 +3324 +6751 +5555 +7017 +7219 +2320 +1359 +178 +3596 +6908 +7035 +7295 +3858 +8704 +3487 +2389 +7367 +8127 +5031 +4137 +5810 +8576 +7714 +4910 +1608 +2870 +9265 +5673 +7013 +1977 +7448 +5939 +9987 +807 +2613 +4713 +6539 +5875 +584 +2418 +4794 +6786 +2976 +1580 +4634 +6000 +3955 +2872 +4651 +9845 +5763 +8699 +1714 +6541 +8372 +2529 +3572 +7901 +1022 +6354 +6732 +1502 +6559 +5505 +3646 +7013 +2204 +2845 +8807 +4383 +901 +5489 +4943 +7704 +3639 +4787 +1899 +3192 +1782 +421 +3776 +6613 +7455 +7781 +7422 +3956 +1496 +4611 +4234 +8035 +8991 +1330 +1613 +6538 +433 +9744 +3451 +2850 +3949 +8119 +1953 +7125 +9004 +8967 +9456 +945 +4701 +8082 +8896 +3185 +1691 +1734 +160 +1329 +9121 +632 +4308 +4491 +7081 +1649 +3839 +7759 +8241 +8465 +5232 +3415 +9502 +5860 +8054 +1166 +5328 +5123 +3106 +5129 +1369 +9035 +6495 +5814 +5321 +2582 +3061 +9396 +4624 +2986 +8351 +2538 +67 +1163 +5847 +3645 +2949 +1163 +896 +7597 +4717 +210 +4373 +5162 +3255 +5719 +5394 +7540 +9876 +6673 +1172 +8226 +2271 +3901 +717 +87 +3548 +6015 +7264 +6242 +8184 +7820 +4784 +2471 +4804 +3928 +6696 +4452 +9787 +7304 +9586 +1332 +2850 +4050 +2222 +8218 +913 +5662 +8907 +9412 +1066 +2798 +1487 +2588 +7897 +508 +8232 +4912 +421 +7690 +7945 +2486 +8523 +3752 +9525 +4902 +7444 +9141 +9209 +9178 +9040 +4288 +9417 +4208 +2461 +8107 +355 +6583 +8757 +9153 +5102 +6195 +956 +1605 +8358 +8602 +1091 +239 +5444 +7353 +6860 +2004 +1015 +5271 +9919 +3271 +2900 +2732 +782 +5460 +1351 +321 +7093 +5213 +8719 +5449 +3078 +8480 +1061 +4688 +2814 +6531 +4954 +2519 +6350 +669 +9300 +1463 +1789 +2206 +7035 +2241 +2128 +639 +4456 +3937 +5110 +6418 +723 +8975 +6522 +682 +4989 +4624 +8118 +5396 +4588 +8177 +7734 +2855 +2583 +1127 +5917 +8440 +5417 +6818 +6989 +4162 +3201 +9913 +95 +4013 +5911 +6628 +527 +7249 +8628 +4178 +2442 +8581 +9326 +3935 +2409 +3744 +8393 +6515 +3411 +161 +1717 +3447 +6881 +8412 +6620 +624 +2126 +9395 +9266 +3919 +3062 +1347 +5133 +2661 +3293 +5867 +7180 +573 +237 +674 +8480 +8514 +4086 +3500 +4983 +4791 +4230 +7853 +1294 +3181 +2733 +7373 +5382 +517 +7568 +3544 +3688 +645 +3953 +506 +6665 +2571 +3003 +7966 +6352 +4314 +8818 +6627 +1401 +1121 +9322 +1122 +9830 +5096 +7489 +6147 +1895 +9333 +7550 +1716 +8343 +6594 +8038 +9289 +3291 +6314 +3630 +4136 +6137 +5130 +9416 +8566 +497 +2520 +9796 +7847 +7608 +267 +4759 +8634 +6347 +4042 +7604 +5752 +9440 +849 +6203 +9612 +3714 +8279 +5839 +383 +7102 +1800 +338 +5925 +1552 +5855 +5836 +8873 +7880 +7675 +9298 +6532 +1036 +9247 +4600 +9420 +7103 +2745 +9518 +9457 +8961 +6930 +5311 +6989 +5437 +7139 +3868 +6460 +8523 +2443 +1045 +145 +5391 +4001 +5839 +6591 +6954 +7396 +519 +1498 +7109 +6126 +2253 +3029 +7064 +9838 +7386 +7524 +7226 +3333 +1804 +9518 +9264 +7635 +3098 +9619 +4320 +8605 +9408 +7237 +3828 +5776 +4130 +2333 +6926 +4042 +8095 +8954 +9499 +3339 +4370 +123 +6462 +2300 +890 +2474 +9749 +118 +4748 +9255 +1111 +7972 +480 +2658 +4430 +1099 +1010 +6420 +1850 +9835 +6918 +1394 +7874 +2261 +7794 +8451 +944 +6544 +8295 +7579 +3190 +9852 +3836 +3137 +1626 +1622 +1103 +9894 +1993 +6191 +7753 +6558 +9047 +8914 +7687 +9122 +5418 +3880 +4182 +5625 +6303 +9047 +6559 +9734 +7774 +5837 +7366 +2076 +1916 +3817 +4751 +7106 +302 +6114 +9990 +5132 +7851 +9290 +8326 +7110 +265 +4695 +1721 +1652 +4890 +4231 +5906 +5800 +6149 +5527 +7664 +6556 +3802 +5528 +8577 +4623 +466 +7332 +7635 +5394 +4999 +8482 +2753 +6492 +2008 +3552 +3769 +5195 +4224 +4084 +3496 +1260 +2621 +591 +3321 +5795 +9578 +2170 +641 +692 +2792 +7385 +1878 +7102 +9032 +7494 +5793 +7431 +8588 +2188 +6388 +1199 +758 +9161 +5370 +4751 +1768 +6832 +4517 +9237 +2018 +5172 +6023 +6062 +4537 +1971 +7106 +621 +6785 +5232 +4366 +4062 +9910 +3823 +2544 +2049 +7057 +4680 +1839 +3321 +5620 +7794 +6769 +6019 +4708 +4352 +9573 +5380 +57 +9795 +2562 +9387 +9851 +4801 +1301 +2007 +6302 +4066 +1756 +4070 +5226 +4176 +1049 +8529 +6470 +172 +6142 +3507 +7304 +459 +5260 +2501 +6197 +1715 +1894 +4701 +700 +2346 +325 +258 +2825 +2405 +1329 +1780 +514 +6283 +452 +705 +7714 +9772 +9401 +524 +2665 +9332 +9827 +7990 +1690 +5176 +4734 +7125 +1888 +6155 +8100 +2317 +1121 +8763 +7499 +2898 +8761 +3449 +2653 +1373 +6255 +4864 +6352 +1542 +7505 +9913 +661 +5989 +4 +9755 +4133 +9688 +946 +1816 +9534 +7097 +7093 +2852 +2924 +3804 +3405 +7478 +4344 +6216 +9981 +5024 +6031 +4220 +5307 +502 +4444 +6773 +1885 +8875 +3845 +5763 +8359 +3946 +467 +7419 +9672 +476 +6779 +7271 +9620 +2152 +165 +7598 +2669 +7095 +7994 +4943 +413 +1116 +2282 +1390 +969 +8276 +4969 +4395 +9576 +3831 +4269 +7012 +3797 +362 +9113 +2920 +991 +5287 +8420 +9817 +7817 +3828 +693 +458 +8230 +1758 +3995 +9657 +3907 +9716 +9134 +4225 +7084 +6275 +6081 +4523 +7903 +9179 +1145 +6509 +5554 +309 +4070 +7825 +4423 +1960 +6288 +7666 +8871 +4836 +7139 +6357 +9880 +2028 +6374 +3178 +2312 +3649 +5922 +2096 +9760 +2933 +7364 +8305 +6899 +522 +8988 +3476 +3143 +417 +139 +9709 +228 +7735 +4657 +6289 +6254 +8551 +613 +486 +324 +7816 +8845 +2689 +7298 +4536 +1895 +9595 +2303 +2601 +8322 +7144 +90 +8412 +3978 +4360 +8189 +765 +3439 +3106 +6661 +1431 +9017 +7003 +2626 +1972 +4161 +9035 +5259 +2980 +2764 +2815 +8333 +6680 +2932 +8629 +1163 +7844 +1406 +4026 +2539 +7047 +5477 +1581 +7099 +3178 +1011 +30 +9692 +6156 +2563 +4426 +5355 +2570 +710 +247 +5523 +4555 +2936 +8100 +6139 +2458 +7679 +4854 +8100 +4722 +9661 +623 +937 +3066 +1971 +6052 +2493 +1643 +9125 +5091 +8220 +5125 +5322 +3281 +5768 +7046 +991 +7537 +908 +2749 +4609 +2146 +4865 +2111 +3059 +9425 +5634 +9850 +9681 +9121 +4080 +9496 +921 +2455 +3440 +2117 +8364 +6183 +7989 +9724 +9123 +5533 +8240 +2530 +9797 +2445 +4750 +4686 +8592 +7038 +1279 +5594 +6005 +4091 +774 +1716 +3792 +4405 +3305 +1011 +3035 +9497 +4878 +7733 +5079 +1836 +4088 +588 +4137 +4617 +9325 +6980 +1109 +6303 +5026 +6443 +7919 +8876 +9995 +7008 +7654 +9056 +1962 +4568 +9822 +460 +290 +489 +3855 +8196 +7001 +3010 +5476 +1517 +5198 +1240 +1361 +3382 +6980 +1544 +3403 +9495 +2130 +1410 +9476 +6901 +2228 +1720 +4674 +5436 +4009 +7626 +993 +447 +1425 +55 +8670 +320 +1519 +2111 +2120 +2541 +6134 +8752 +5178 +4366 +9642 +3378 +4448 +2864 +8604 +4929 +6770 +7806 +1908 +2602 +3835 +4648 +4268 +613 +8492 +3936 +3862 +5137 +3500 +2462 +5364 +5388 +5027 +5909 +693 +390 +2722 +9686 +6512 +1341 +731 +3490 +1866 +698 +6559 +5243 +3152 +5774 +1368 +6043 +1261 +3224 +2021 +9542 +8394 +6048 +6163 +3426 +1826 +2431 +5183 +2869 +4584 +2994 +651 +6646 +7497 +9268 +6376 +4388 +2026 +200 +4929 +2890 +6721 +2160 +8348 +7375 +9296 +3031 +8396 +4251 +5804 +1898 +50 +7284 +946 +8812 +5320 +7017 +3800 +5475 +3857 +2883 +6439 +7006 +4674 +6009 +2023 +1164 +563 +6707 +2481 +8967 +9977 +6651 +89 +4403 +4415 +2683 +9675 +4401 +3365 +2644 +7273 +8944 +8172 +423 +8146 +4777 +5485 +2663 +8859 +4395 +6884 +5209 +2304 +6661 +2222 +14 +2974 +2881 +74 +1123 +6306 +9242 +4770 +5838 +3 +9005 +9055 +7593 +8353 +738 +8561 +3531 +2289 +9393 +7572 +7870 +3182 +1171 +8729 +5594 +9558 +2932 +6197 +6919 +4108 +6950 +9365 +1097 +1435 +8634 +1689 +7640 +929 +5416 +2814 +2671 +1615 +2998 +6237 +7951 +4088 +2168 +2969 +3660 +6699 +5767 +5823 +2866 +4917 +509 +7363 +2547 +818 +8464 +6051 +5214 +6467 +4478 +3910 +3209 +7066 +2349 +8678 +7909 +7664 +3927 +8224 +9447 +2682 +1459 +7870 +4958 +2412 +8764 +5596 +9865 +9253 +3943 +5217 +1526 +1889 +3613 +2089 +555 +4672 +907 +8428 +3328 +2896 +8482 +5872 +2098 +7984 +4053 +707 +9550 +5496 +9239 +7644 +9588 +4915 +1729 +1584 +7542 +5101 +4580 +4265 +2894 +4088 +8696 +5864 +7038 +7161 +8720 +9480 +3700 +5371 +5514 +1078 +1154 +3829 +1211 +2631 +5464 +2392 +6788 +3887 +2145 +1669 +4343 +6065 +8430 +3489 +4075 +7051 +8246 +686 +7555 +4322 +8973 +6444 +7513 +2803 +3258 +5323 +7500 +7308 +7518 +5137 +3043 +3495 +7630 +6584 +5821 +770 +7887 +8599 +5058 +1790 +9424 +3875 +954 +8777 +2384 +3432 +3880 +5427 +5993 +8645 +5792 +8118 +8787 +8561 +5447 +2438 +9775 +9868 +6960 +7397 +3143 +5420 +5186 +6784 +2376 +2946 +4808 +906 +374 +6260 +9110 +7763 +1252 +6410 +2899 +8151 +1237 +6177 +9664 +2000 +8834 +2769 +6597 +8324 +5631 +9841 +2027 +9694 +2621 +3556 +1298 +5999 +4033 +4076 +3363 +9505 +2800 +3871 +7252 +3215 +4135 +458 +2226 +4145 +1034 +9756 +6243 +8312 +6697 +1427 +8158 +3721 +5599 +1337 +1746 +4436 +459 +5561 +7742 +9302 +9742 +5572 +7016 +4335 +444 +971 +1036 +6832 +1135 +4889 +2203 +5294 +515 +8433 +9938 +3441 +3413 +3944 +4895 +3209 +3737 +8844 +5939 +7 +3983 +2238 +3697 +4109 +7959 +2887 +686 +5872 +9057 +5752 +2702 +9842 +4386 +6759 +7758 +6934 +1845 +2517 +3044 +4965 +8021 +7496 +289 +1102 +5616 +3014 +1269 +8542 +6579 +3122 +2325 +4481 +7930 +5422 +7579 +4587 +8802 +473 +110 +8736 +35 +3506 +1775 +4177 +4465 +8524 +1684 +5725 +1191 +8314 +6746 +951 +7948 +1337 +1942 +690 +2731 +6017 +1047 +2048 +5991 +2539 +9870 +7794 +8402 +1263 +8069 +2290 +917 +5467 +7804 +5986 +922 +1077 +7093 +6033 +431 +3642 +8310 +1925 +581 +1326 +8991 +134 +2640 +8832 +4196 +3575 +2004 +6257 +6413 +281 +6794 +5143 +7460 +6597 +8301 +9749 +3808 +2771 +5254 +4137 +5632 +9087 +1194 +3848 +8565 +322 +9119 +8401 +7553 +6524 +8354 +6490 +5980 +242 +3058 +5450 +4744 +5767 +4778 +3129 +7022 +9223 +3263 +3487 +5242 +7573 +450 +6182 +7618 +3645 +4720 +2469 +1308 +250 +7365 +8122 +6136 +7113 +9475 +6380 +8122 +4613 +7428 +9582 +8935 +8771 +2574 +583 +2650 +8390 +4517 +234 +9350 +5477 +2298 +5426 +4433 +1888 +5892 +7385 +2876 +5582 +7528 +6030 +4383 +7000 +5642 +7019 +5857 +2507 +3224 +3382 +5228 +5598 +164 +9495 +1656 +9035 +5890 +7118 +3744 +7139 +8471 +7615 +1510 +2794 +192 +6015 +59 +6048 +5155 +9611 +3197 +9679 +969 +7683 +1846 +9764 +5454 +5867 +2905 +2941 +9008 +4125 +3197 +3368 +540 +1794 +7259 +35 +1530 +8153 +1209 +8913 +7686 +6763 +2574 +2906 +8125 +4888 +7297 +2469 +2404 +8629 +140 +9498 +3767 +9052 +2507 +6397 +7432 +7109 +5769 +7638 +8467 +1683 +1842 +1612 +5342 +8203 +6392 +6238 +530 +6565 +8859 +4240 +8868 +537 +4544 +9266 +3988 +3716 +122 +3731 +4958 +3271 +6284 +5152 +5868 +5673 +2285 +8121 +1692 +7779 +1915 +3136 +3672 +9476 +4569 +3506 +6586 +5558 +7191 +2637 +2133 +5950 +33 +6617 +5734 +9598 +1108 +759 +3212 +9865 +8755 +8486 +9453 +5183 +1439 +1594 +8484 +6642 +6706 +8169 +7145 +1153 +9943 +6724 +6791 +218 +6662 +2095 +4636 +9927 +1238 +5984 +1696 +2047 +6437 +5882 +7829 +6520 +2241 +9512 +5387 +2790 +2969 +4823 +3834 +5284 +1124 +546 +8095 +8498 +6921 +9597 +2497 +9863 +6010 +6513 +4093 +2742 +3455 +7887 +335 +4143 +6113 +6319 +9267 +9380 +5387 +9653 +9800 +837 +1117 +9828 +1859 +8357 +5005 +4437 +9255 +6881 +5735 +8641 +5931 +7618 +6582 +7629 +4037 +9957 +1550 +6985 +4770 +6212 +3635 +2095 +9284 +44 +6923 +3483 +2722 +4909 +3675 +6602 +8177 +378 +2057 +7928 +2742 +6552 +6078 +8951 +6889 +1550 +1485 +8787 +4950 +3086 +2855 +2094 +7146 +5429 +9046 +919 +3548 +8311 +1607 +9191 +3479 +4317 +6451 +4954 +521 +1210 +2423 +577 +1932 +8647 +2581 +2274 +7648 +9560 +4426 +290 +7090 +7452 +1033 +5323 +5586 +9077 +5796 +5171 +3819 +1286 +3324 +4247 +8207 +6076 +3989 +6599 +1967 +7676 +8092 +638 +1869 +8962 +3422 +7767 +6586 +6861 +8409 +2904 +4806 +596 +3799 +3839 +8431 +6453 +2312 +6934 +9356 +685 +4626 +6503 +1917 +4600 +236 +8057 +5062 +2512 +2559 +78 +4896 +7392 +8232 +8198 +2071 +3502 +3453 +3656 +2884 +2377 +1000 +7032 +684 +1565 +5541 +9385 +8378 +6503 +351 +6814 +7327 +196 +379 +7870 +6155 +6463 +7103 +4647 +8451 +9921 +7559 +7858 +7037 +4757 +2332 +8969 +7172 +9328 +3691 +6724 +590 +8797 +4325 +482 +1022 +9458 +4763 +1418 +3054 +8874 +4455 +4716 +1172 +4674 +9823 +6446 +8743 +7080 +4824 +215 +2483 +8207 +4705 +7312 +3245 +2884 +2529 +8428 +4073 +1044 +2471 +6295 +5541 +1181 +1598 +604 +7596 +7373 +2397 +6876 +5939 +6180 +1857 +358 +9435 +9076 +8251 +3824 +5777 +4904 +7143 +907 +178 +1107 +791 +4818 +6729 +8025 +4341 +9005 +577 +5809 +9008 +9103 +1184 +3941 +402 +125 +3883 +4205 +7723 +9066 +2695 +8789 +9592 +1882 +2269 +4925 +1382 +4652 +1355 +8221 +7825 +6616 +349 +3528 +7557 +4414 +7550 +6578 +1832 +9921 +8742 +8844 +4361 +744 +1847 +393 +4673 +4696 +4326 +3147 +6329 +7208 +6874 +245 +4973 +70 +7349 +297 +8179 +5610 +3580 +7768 +7960 +5019 +6460 +2897 +2642 +9515 +9125 +3119 +7319 +5479 +3326 +8222 +8312 +8369 +6816 +460 +436 \ No newline at end of file