Code:
I?+??:7N$88D+IO?+7D~O+=7$~8NOI7=~OD+8+$=?O=+~?INZN?D$87NMNOI7=~=?I87+?ZZ8D8ODDN?~?O$=+=ZZDD$ON?7D8$:8DD7$Z7$I+=Z$8Z==~O$?=~O$D8=I?N?NO.$Z$Z$DDDDN+8M$88IZ~I?,I~OIO$7M7D$8NONMNDNZ8DDNDMN8DIZZD88DZD88DO7
$=$Z$ZZ+Z$8?O7~87N?7OO=+M+$IN?~7+?$=+$O7ZI=I=?7DD8ODMN8O==I$7Z+I?MMNNNNMMNI:....:=?I?$??Z$7DZ8IZ7NO?8N8ZZ++77=7IN+?$I7DD~~$:+=O7NN8NNON87888DNNN8$8M$O8O8Z$8$+?ZNDNZO78ZMNINMDDDDD8NMMZ88O8D8NNMDDMDNODM
~7M8N=:OIO8OI~$N8I?$7II~I==?7N8I+=~?=DNZIII$$?+?~Z78DZONZ?O:?ID$OOO8O8ZZOODNNNMMZ~,.....7~87$ZD8I?I$O8MM8?I7$IO$$IO?7??+$ZO~8$O7IZOO8ONO7M8NMNNDD8O78$DNNDO8DDZZ$+$IZ$O++8IDNDDDDMNNNMDZNMMD8Z8MOMMO88MM
D8??D8M8OMMDND=OZ87$88~~I7I7I=I?Z7OIINI+:$=I+$~?O?O?:MZ+~=I7OZOOO8=?+?O7ZO8O8OZZZ8NNMMZ~,.....:OM8O$8OO+IZO8?N~$8D~=+ON$?$ZZZD?O+O8NMND8ZNDNNND77NDNNMM?8DDD??+NZZ~7+ZOOZ8NND=DDM~NMMMNOD$87?$MZ8MMD8MNM
?7I8NN$+ZZ?=~I88OOD78O7OZO$777?ZOI=?==7,:I+8+$?:Z+I7$78Z$M$ZOO8Z?II77$O$:?O$$ODDD8D88OO8NNMMI,,.....=DOZ8OZZZN?7I$$O~I?+~+IONZ87?7Z+:DNNNMMNO$D=7+?NN8Z7DNDOODDMO?$MNI$OOONDN8OIDZM=+MOZ8NID?++NNMMM$ZDM
+I+$Z?OM?$8Z8NNO?II$$Z8Z$+I?7$I7Z$$$87II:7$8D$7$ZZZIO7?M7ZZO8IZIIZ?$O7+$OIO7DDDDN+ZO$ZZDODZZ8DNMM8:... ..,?N8N$=Z?D8+IZ$87$DZM??I=NIINNDM8M88D+7??Z87NN8MNM8NDMNDNZND8ZNNONNNZO$+?+778??IM?8M8NMM8N8$NDM
+OZ:7+=I+++ZIO$~?II$=O=78OND8O+Z$O$$ZDZZIIZ?$NNDOI8$IO$$ZO$7OOZ7OZ7$O$?Z$OZ8DD88$$8888DODDOOOZZZOZNNMMZ,.......+8IN=+~~$$Z78$NDZZ~I$ND8=I=$7IZ?ZO7OD8NONNNN8ONDNMNNDN8N8ZO7:D$+N=DNM8D?ZZD7?~NM??O+?.D78
7=+OO$7OOIII=DNZ8+O?88=7=8OMI$O7O77$IZ877+Z88DNDM?NI7$ZOZ77$ZZZO77?$OI7ZZDDD88ZZ$ZDDDDD88DDZZD$ZZZ7OOOOONMM+,..... ..ZOM:8~O7$NI8??+D+DZ??$$Z8IO$DDON$8NNNNNMNNMMMMMN8D~MNNI7=O8~IOZ7DOZMZ7+I8$ID?Z$IZ8D
?I7ZOONID$O7?ON8N8=$7I:=N=7$ODO?OO$$D7O888OIONN?OII7ZZZZZ$I??7Z$$7?=I7$ZD8D8D=Z7O?7$O7ZZDD8ZZOZ8O$$7$ZOO$O8DN?...........~I~7I78I77ZZ7N$ZD+$7?$$ZO878ZNN8Z+$$NNNMM7~N8N~~DD+OI8Z?Z:?NIO8ODI=OMDO8DZ8I8D+
,I=7?7$8Z?=I78MD$ZZI?~.......,.:~?ZDZNMNN8=IDM.~MNNNDNMMMN$7Z7ZIIZZI7IO888888+$?$I,78OZO8ZZZD$7?OZ7I7$7$OOZ7O....=7?=:+O+....,D$Z7ZOZ87888D$8~$$+DZ=$N~?O$7+?IMMMMI+I+8IZ=$D$D88DN$7ZZDDN+$=NMNZ8M+NII7D
=?O=7I+MN+?O7=7=8.ZOZ$I?++=~::,...... ..,.....~?$Z8OO78NNZ8DMNI+$Z7II8888888ZI?D888888O8OZZZD7Z?ZZOOZ$Z$$OOZD..,=8Z8MNDNM8+:==...$O$$IO?DMD+ZI$+OZ$?+8DMNMZNIODDM7~D$$8I==O$I8MDDNOD~DMDN8==?NM878$88:$D
+78I7OZ$+7Z+$I+,OOMMNNMNDZ$$7I?+==~:::,,.........,....~7Z888$DMDM8Z7ZZZO88$D?II888888888ZZZ$8$Z7ZI$$$$ZZZ?ZN...,I?7+?7~7+OMM?~$..::.$N8D88+7N7Z?=I?DZDM$==7I$N7=?MD$O~+$ZO$?+I8M=MZI$I7OMIID$7=ODO8M88MD
7ZIZ7???=+?+:7=MMN7$8MNNNNNMMN8Z$$I??+==,~~::,,... ..:~~:==:..,I8Z7NNZN8MDO$I=8OOOOO8O88ZZ$$O7I+ZZZ$ZZZZI7+=:..7Z???7I+I$?MMI+~~.?M~?:I$~O?NONMZZZII7N7+=OZ8$?8?M=ZM8ZI$NO~=~Z~~7$?7:MM7ZOO7?I$?ZI$MO8Z7
OZ$8$~$77,=~~:MMOZZ$~IMMMMMMMMNMMMDDOZO$II?+++=~:::,,,...~++,...:~:.~78?OMM$D8NIZ8OOO88OZ$$Z7=7$ZI$Z7Z$$IZN,.,:OO$I7Z?I+Z=8M?+~~~=~~M$.NDNDOODD8=~=Z=DNO?M~8?8=7=MD$?OM$DM,O~7?~??7IM7I+N8NNII7+ZN+IND7?
MDDM$IZO$+7+:OMMI+:$Z7MMMMMMMMMMMMMMNMNNDNO7=+III??+=~~:~::::,+?I?++~.,~::~?887MMNNNDN777$O8O88DD8OI$I$7Z8..,,IZ8~=~:~+$$?+MI+~~:~==~MI.?+?8M$$ZIZZ78$D:ZI8,D=IN=.:N8$DDM:Z?Z=~ZOO+7$7~DMNONNN$Z=7OI?Z8N
N88NNDZ$8:$+$OMMOOO.+DMMMMMMMMMMMMMM.NMMOIMNMND8O$$I=??+=~~::,.I?+=,.,,,,....::+Z8DIOMDN8OZ$77?DDDD8=7$Z$+=..IND:=~~~===~~:~$?=~~::::=N$N+$$I~DIZ=$?7?+I?NONNNO:+Z+.=$=:8??7~Z7II?Z8=$~7MM$8D8N=I$~DNINM
MDO?ZNOOI+7?+ZOMMM8DMMMMMMMMMMMMMMNMNMNNM.:MMZ:NNMND8OZ7777I???+=~:=?++=+===?=~,,:?$O8N8~DMDZZ~,+$ZOI,$IO=.,=MM:+++++=~==~~?$??~~~~~~=+7.Z??II8=++Z8Z$I?$+Z8?Z8,?+$Z=?7$?II?I$+Z7~?I~=ZMO+?7$+=8$$Z=N8MO
MNM?Z=ZN+7O=?$DOO7I?ZMMMMMMMMMMMMMM~MNMMMOMMNNM7MMNNNNNNN8OZ$77II?++==~~:??+==+=+==~:,=IZO.:M8ZO:OZOD?I8~,.??MID8O?=+=~=~~=IZ?I:~~~=~~~D=.O$Z8ZMZ?I7D78:ON7+IDMD7IM?:,~7ZO+I?8=:$?Z~?+ZD,$~NMZ=77==8NNMN
Z8?D$+8IIID7O7N7IIII$Z?++I8MMMMMMMM:NMMN8,MNMMN,MNNNNNNNNNNNMNDOZ$$7?III====~~???+=++=?+~.. .+OMO,IZ$8D..,,DMNNNNNNMM.====?7$+I~~:~~=~~=N$.DI7NMI$7?M7+I$Z?7:~Z$I,$8Z~77Z8O7$D8?$8$OII+=7~7Z+IZ~$8MNDN8O
77?Z$I,D?DOO+I$OD?I?I????IZZ??IIZMM~MMMM~ZMMNMMMNMNNNNNNNNMN7DMNMMN8O$77II??++====~=II?+?++++~:=+=?ZMND,,~$MMNMNNNMNNN~==+~Z$II~~~=~~~~=8,,NII8+NN$NZ$:=788=+==7NZ$ZOZ7?D+~?$???OI?I??=D$~D8?+??I8MMMMN8
7?$$Z++++,+?OZ$777I$MMDMNZ$ZI?IZZ$IZD77M+MMMMM~MNNMMNNNNNN+IZ,?MMMMMNNON8$:...... ..... ......:~+==~..+=,:NMMNNNNNNMMD=~~?=N7II~+?+?=~~==M+.NDDDDD$ND?Z7OO$$OZ7+7Z~MD7$77+O+O7$:7,IZ??~M78N8ZI?=++MZ$?~$
$O$7Z$ZZOI77MMMMNMM$?NMMONII?7IIIIIII77OZZM?ZZ8NNMMNNNNNN7??~~:DNMDZIZ$NM$$=,,....................... ....,. ...~+??~=?I?IIDI?7++++?~===~+8..M?+N7ONDND$OO8DI88O8NZI$O$$DZOZDN$7NI8I:+III7NDZ7O=?$M8~~=$
+I=MMM$777$$MMMDNMM$+OMMDI7IIIIIIIII7IIZ7I$O$77DMNNNNNNMND==,,+MNMO77??$MZ7$=:,,,.......................,7O?... .... ..:?7M$I$=I?++++=++=M$.OMDM78+$DN87ODDO8DO8$D8ZO7N8O:ZO=Z88$7=~+?8?ONM$MI+Z~?O$Z7I
Z=?77++IZ77O$DDMMMM?7N7DII7II77ZZ8IIII77IIII?I7$ZZ7IONNNNND8OOMMNM7777?8MN7II+===~::~?Z8Z?:............. ??I....................,::::~:~~=$+..NONNMODN88ZM8D8DNNI7?:OO87MD8ZNM8$DD8Z7I?Z7M+?7I7~+$IZD~$Z
==I+?==++7MMMMMNDZ7IIII?I7777$$7$$$77Z7I777I?I???ZII7ZZ$7$DMMNMMMNZ7?78MND77I++==~~:::,.. .. .=$8$=,....??I......................,,...,:=,+..OD7?O=7$+7ZDNDDNNNZO$M8DD$=ZZOOD7$NDI?7IDZ$M$=NO?NNNNDNZI7
?$~?++$+=?NMMMMMMMMMMM$III7$$$777I$$7IO$777II7$7II?????III?7$7I?$NMMMMMMMI77I7I?+=~::,. ...... .,::::,.,8O8O?,............................,.,..7OONZOZDI$DMOM$ND+O~M=N87~+?~+7?88O?$$7$Z$ZN8+$7+?=MOIZDI
I++??$?+~~NMMMMMMMMMMMMMMMMD?I77777$Z$II$7777III??I777INNO$M?++++7Z7I?IDOIIII77I??=~:,..:IMMMM+..~~~:::=$7?,,,,..,I88=......++?:..................~NI7I87$ZI7Z~NN~?Z?O=7O=ZM$8:I+$I:~7$O8I?IZ+$$$INOI+OI
DZ?M==I+I=:?8MMMMMMMMMMMMMMMMMMMN$?I7Z7$$7$7777III7$7$ND,I+OMN7?++++??DZ7?IIIIIII?+++~~NDNMMNNMM.:~~~~?$$7:::::,:::,::,,..:ONMZ.......................IIM$II+$Z$?=I7??7$+O+?Z?7+$~~??=I7+I=~+$7$77I?7~.$
MMMDM8D~~I$~~=NMMMMMMMMMMMMMMMMMMNMMMMN87$$$$$$7777778D:,:DD,O:.DIMOIDMNI$77?I77????=NNI.+...:MMD.===ZZ$~~~~~~:::::::::::::,:.::,,..,IZ7,...,...........I~:Z?+~==ZI??I$I=~IOO+7I:~+IO7+??Z?:++$I7D~7$ODN
NMMNMMMMMMMM??7MMMMMMMMMMMMMMMMMNMMMMMMMMMMMD$$$777IIDN8=DN$M.=8$88I,~DMD???+??=II?DNNO,~.N.~Z:MM.++$$$7=======~~~~~~~:::::::+,:::::::::::,.:IOI..,,,,,.?$$7Z$Z:$?7==IZI?$=?I=O8Z$I=+77I+==~?Z$=8$+,?O+8
N$I88MMMMNNMMMMMMMMMMMMMMMMMMMMMMMMMMNNMMMMMMNMMMMZ$Z777$$NMN.~DZIM7:ONNI???=+7?N+MNDD7$I,MNNN$MM.+$7$+++++++=======~=~~~~~~:~=~~:~::~::::::::,,,:,,~7+,I?7O+~OOZ7$$I+++Z$Z7??O~==OI$Z$$+?+IIII88OIMZ8$O
=:+D$I?+$?NM7NMMMMMMMMMMMMMMM=~MMMMMMMMMMMMNNMMMMMMMMNMD7II7DOZN8O$.Z:N8?I???+?=+MMDDNNOI8NNNNMMN.:O$?$?++++++++==+===========+==~~~~~:::,...,:::::::,,~$O$ZIINN8O8OD8Z$$7Z~I?7?$DO7~Z788+$+?:OMODD8M=DN
I$77=MNZ+?~=?Z8MMM8NMMMMMMMMM8OI==+$DMMMMMMMMMMMNMMMMMMMNNNNN8?$NMO8NNMII??IIIIINND8NNNNNNNNNNMMOONNNND$,..,~+?++++==++==+=++=+=++====~~......,::::::::?IZNI7ZDONNN?N$M$O7ZODIIN?ZDI?8INN?$77?=D?.8MD?IN
?+I+?7I77O7++ZM??77=DMMNMMMMMMMMMMMMMDI7?NMMMMMMMMMMMMNNNNMNMNMNNMO$?8IIIIII77INND8NNNMMNNNMNMMM+7$$$$$$$ONMMMM$=.. ,++++++++?+++??++=~,.:7MM8.~~:::::,8O?N$7ZIO=8M8ZDDZDD=O77ODO$7$?7ZO$OZ$7Z7~ND8$=MZ8
M~$ZIMO.==?:~$?+~Z7IZI?I=7MNNNMNMMMMMMMMMMNNMMMMMMMMMMMMMMMNNMNMNMNMNNMN8$III7MNDD8NNNDNNNNMNMMO77$$$$$$$$$$$$$$$ZDMMNMN7:...:++++++=~=~MNMMNMM:~~~~~~:N+$ZZIO=???IZ$$DZOD=ND$88$NI$7$7DNOD$=Z$DN87ZO$?8
=+?II?OOID=8?I=$$77?IN$.++7Z=O7=ZMMMMNMMMMMMMMMMMMMMMMMMMMMNMMMMMNNNNNNNNNNMMNMNNDNNNMONNNNMNMMI777$Z$$$$$$$$$$$$$$$$$$$$$7$Z8MMMN8I:~$M+,~,DNN,~~=~~:D$OZDZ7ZDNOZZ8I$ZZNDDM$NMZO8+D?+O+8I?8Z+M7~IZZO?NO
$?Z7$Z7MZID,$I8OD+7?D~?ZO8M+O~8$8?$I:IIN=NNMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNMNNMMNNDDNNNNNNDDMMNMM777$$$$$$$$$$$$$7$$$$$$$$$$$$$$$$$$$7INNO,~8DN8M,77?+~INO$$$OZZO?OO8?8I7OI77ZZ8$NZ??N$:+8IZNDMM8ONM+$D$7D
.7+~I7~=?+ZON?87877+??~$:I,~II+I$?I~+?7O,?:ZMNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMNDNDMNMDDDDDMNMM877$Z$$$$$$$$$$$$$$$$$$$$$$$7$$$$$$$77DNNNONNNNNNN=,.....$7DDDONDI7Z=$,OND+DZZ$?7I87$NDO$7$+I,MN?MMN7$87$8
I7$:$IZ~NI7IZO=I7$=~~~778?7ZI?+I==+$7O$?~++IOI$=+8MNMMMMMMMMMMMMMMMMMMMMMMMMMNNNNDMMN$Z$$MMMNMDNDOOZ$Z8N8$$$$$$$7$$$$$$$$$$$$$$$777MNMMMNMNNNNNNI?7II??~8$?+~87$Z$+Z7D87ZDDZZ$?ZOOO$7ZDZI??N=MNMZ8I=NMZ7
$=+~~?O8IIDDO$$8ZI~OZOI=$I7+OZ7I~~+O+:=+=~:OZI$+IZ8=ZI=OMNNNNMMMMMMMMMMMMMMMMMNMMDMNMNZNMNNMMDDDDNNNNNNNNN8ZZ$ZONDZ77$$$$$$$$$$ZZ$MNMMNDNNNDNN8OOOO888$??8??=7I7$Z8+$??I7N?II?$MZO8DOOO$D7Z~MNDNN$M7MDDI
$7?7I~ZM7?7ID?78$$$=78+7I+$=I?,$D+$I+IZ$+III+I??7I??7?7~=?II=~=~MDNMMMMMMMMMMMNNNDMNMNMNDNMMDDNNNNNNNNNNNNNNNNNNNMND8OZZ$$$$ZZZZONNDMMMNNNNNNNZZOZ=7?ZO?+$:$IM8?OI7NO=+~+D7Z$?$ZO7O877$7+8MNDDNDD88ND$ZI
,+7?:~$++=$I?$I+$I?Z7+?~?=+$$77==?IMIO$+O7?~O7~?7$7$+ZII77Z?I=II?8?=IO8MMMMMMMMMMNNMMM.I:,=+MMMMM=ZNNNNNMNNNNNNNNNMNNNNNNMNNNN8NMNNMMNNNNNDNNN8Z=?7$??IO=7+IOD$8$8+Z?=$O=I8ZI7NDDN~D$ZZZ8ZONDNMZNND88D8M
77D7877:+ZIII7M$,+?II?ID.I$II=77=7?DZ?+I7$O=+IZ?II8:~=7?+?+,Z=,+ONM=ZII+==??7ZMMMMNMNN8MN.MMMMMMMMMMMMD$IIOZDMMMNNNNMMMNMMNMMMMMNNNMMNDN8NDNNZZIO8$+$$8O7OI:==IZZ?OI$7Z7=$7?MZ88Z$D$ON7INNMNNNNN+DDD8NZN
+?DM$I?I=??7+D~+88ZM+7:O$$II+I7=?+I78??,?==Z=,Z+~++?IZ$=~~=:,,~+?I:?=7?:.=77I+?7$=+7ZMMMMMMMMMMMMMMMMMMMMMMMMM:~:IZ~II7$8MNZMMMMMNNMNNDDNDDNM$O7Z7O$$+Z+$+Z+O+I78$ZD~ZI$$$8I?8N887IZODZDN8ONNNNNO$ODNDDN
$O8+I?DI8~I877:=I~I:=?7?ZZ?+=I?777IIO+I=$+++~Z7I+?+?.?O=+O+$7$=$++=O?==,,+I,~~:?~==7+=$~$=~I~7:D8NMMNMM8MMMMMMMMMMMNI7OZ+OI8MMMMNNNNNNDNDDDN7III?I$$O?++?8ZN=+,~77O7I8?D+$O7I88~I=N7NNDDDOOOMNNN$ODN=D$N
77+7$$?$.=??$7D+?~??7Z=+=++7ZI87?=??7Z+~?78~7++I=I+?~?:?=+7Z,?++~=?+=I:Z7?=IDZ77?~?~~M7D7?=?7$?I7$???=$7?IN8NMMMMMNMMMMMN777MMMMMMNMNN8DDD77+++?I=+?~$?~IONZ77=+ZOODII8?Z8:IIDI7:INZNDNDNNNNMONNNNNMNONM
M$:.NI7?~7IZ+~=+I=$8+I=~?7I7Z+~?I~~=OO7ZZ$7II~=+:?=,::=?+$+I77+++I7?$~=++I$Z?+7N7I?IZI7+D=O$I?OZIDD++=OZZ++=?7?=87DN$N?=MMMMMMMMMMNNNNN..+:?77OZ?+I?+I~+I?8D778$ZD887+Z88+$?$ZO$NMIMMMNMMMNNM8MMMDNMMDMM
=MMMN=~II+7I8,I=+I??7=+I8$O?8OI$?I7II?I+=7+:+II7:+$??=I7Z=:=?:7:,=?+II~+$7I+77?7?=O7O=8=+Z?+=7?$???7O=7+~7?ZZI=??+=I~7?$$I7MIIO8MMNNNNN8D:?7$+7I$8N7?$$?+?=:IZZ$$7NONIO=8=7$8ZZZDDDNMMMMMMDMMDOMMMMMMNM8
=8IIM,M8.?==IZI:D=+7=+I77ZI+~===I~+$~~I=I7I$I?7?7II$?I?7=+,7OI?NO?++?=Z7=:~:I$$???I?OZ+=Z=I,I?$777?7IZOI=??=I?ZZ7I7+~$~=~ZZOIZI77?Z+7DM8IZ?+OI=+$=++II7+7IO==8?+?IOONO8OI7~++?++$=7ZZ:?ZDNINNDN?ONNDMMN$