Chapter 6 Other Evidences and Facts
In the previous two main chapters, I presented the key coding pattern based evidences and universal evidences. The other evidences and facts will be presented in this chapter. Most of this chapter presents codes as facts.
Regarding the codes presented in this chapter as facts, you can skip them if you like as they are not counted within the rule based 19 System presented in this book. I considered some of the codes just as facts and not as evidences and thus, they are not within the presented 19 System of this book but stands as additional information, which might be potentially useful in the future. You might skip the chapters with the codes as facts if you like. In this Chapter I will present some codes as facts that I did not consider them as evidences but designated as facts as I use general rules and would also like to see strong patterns to assign any coding as an evidence. However, sometimes I might be missing some other codings and these kind of facts help to discover them later and they might potentially be considered as evidences in the future. Also, sometimes some people might want to see if there is a specific relation if there is a coding in certain aspects. In such cases, some of these facts might be their answers. Also, some people might find them in the future and consider them as evidence by mistake. So, this chapter challenges them to find also meaningful rules of such codes so that they might be considered as evidences. Therefore I present some of those codes as facts here as a separate section.
There is also another potential role of such codes. As I mentioned before, the author of the fake 19 system claim, Rashad Khalifa, who manipulated the text to match the text to his made up claim and his small amount of followers today and in the future potential similar other manipulators might come up codes with similar numbers over their manipulated text. In such case, these coding facts will be available as facts that tell them that there are already interesting codes with similar text numbers in the original full text of Quran.
In the main chapters of this book, Chapter 4 and Chapter 5, I presented codes, all of which strongly suggest a 19 based design within the full text of Quran. All of those codes were bound by the general rules and also the special rules described of Chapter 4 for that chapter. As mentioned before, those codes mostly do not contain letter information and applicable to most of the common Hafs manuscripts (mushaf) texts of Quran. Because, some of the letters of some of the words might have been written differently even among Hafs manuscripts during the course of the history. These slight differences does not change the meaning of the word but just might cause writing the words with slightly different letters. The situation is similar to the British and American English words of colour and color, respectively. Therefore, most of the codes up until now in this book, deliberately do not include letter information but mostly word information along with chapter and verse information. This assures that the codes are valid for most of the Hafs manuscripts commonly used today.
However, I also discovered appealing and, in my opinion, interesting codes that include the letter information too, which I will present in this chapter.
In this chapter, I will present codes as facts, including letters based codes that are again mainly bound by the universal rules described in Chapter 3.2.1. For each sub-chapter of this chapter, I might describe the special rules of each coding patterns, which are additional to the universal rules. Because the codes of this chapter might have their own additional special rules. The common trait of all the special codes I present in this chapter is that, all should answer meaningful questions with meaningful multiple related codings that might be part of the system although I do not include them in the presented system yet. I will also validate and provide reproducible tests for a few of the known important 19 based codes on Quran text.
For most of the codings of this chapter, in order to complete this book in a shorter time, I could not spend much time to research on the potential rules based on the codings I observed. Therefore, I classified many very interesting coding patterns as facts but not as codes of the 19 system. However, in the future, researchers might spend more time on them and discover meaningful rules of the codings patterns along with their related codes as a system. Therefore they are currently presented in this book as a supportive facts to the presented system.
Finally, for the reference, to the best of my knowledge, all the codes and facts presented in the Chapter 6 and its sub-chapters are first time presented to the literature in this book, and they have been hypothesized, tested and discovered by myself. If I later realize that any of them were published in any publication earlier than 2019, the first publication date of this book, then, in such a case, I surely add a citation and update the online version of this book.
6.1 Miracle of Iron as evidence
Iron, one of the most plentiful metals found on Earth, is an essential building block for life, which is required for all living things to sustain life. The number of protons in nucleus of iron is 26, which makes its atomic number 26 and thus this is a unique and universal number for iron element.
Iron is one of the names of the 114 chapters of Quran. The name of the chapter 57 is Al-Hadid, namely, The Iron. The word, Al-Hadid, is used in the verse with index 25 of the chapter 57. Considering the unnumbered (unindexed) Basmala verse that exists in the beginning of the chapter 57, the verse with the word, Al-Hadid, is the 26th verse in chapter 57. There are already a few known miraculous evidences exist in this verse that stand so strong like an iron!
(Quran, 57:25) Indeed, We sent Our messengers with clear proofs, and with them We sent down the Scripture and the balance ˹of justice˺ so that people may administer justice. And We sent down iron with its great might, benefits for humanity, and means for Allah to prove who ˹is willing to˺ stand up for Him and His messengers without seeing Him. Surely Allah is All-Powerful, Almighty.
In the following subchapters of this chapter, I will first present widely known miraculous evidences about iron in Quran. I will then present, the new mathematical miraculous codes of iron in Quran as evidences, which I discovered on December 1, 2023 and will present for the first time in (the upgraded version of) this book to the literature. The following subchapters presents my new discoveries about the iron in Quran: Evidence 6.1.2, Evidence 6.1.3, Evidence 6.1.4 and Fact 6.1.5.
6.1.1 Known evidences of Iron in Quran
Known evidence 1 of iron in Quran: The Abjad (geometrical) value of the Arabic word (حديد) Hadid (Iron) is exactly 26, which is also the atomic number of iron! Pause a moment and contemplate how likely such undeniable truths might exist in a book claimed to be from the creator of both facts.
Below is the calculation of the Abjad value of the word ‘Hadid’ (Iron):
suppressWarnings(require(gmp))
tmp <- unlist(str_split("حديد",""))
cat("Each of the letters in the word 'Hadid' (iron): ",
tmp)
## Each of the letters in the word 'Hadid' (iron): ح د ي د
tmp <- AbjadSeqofaWord("حديد",abjadL, abjadN)
cat("Each of the Abjad numbers of each letter in the word 'Hadid' (iron): ",
tmp)
## Each of the Abjad numbers of each letter in the word 'Hadid' (iron): 8 4 10 4
## The Abjad number of the word 'Hadid' (Iron) is 26
Known evidence 2 of iron in Quran: The atomic number is used to uniquely identify ordinary chemical elements. The atomic number of iron is 26. This is a universal fact and known by science literature only since the 19th century. The word The Iron to be at the 26th verse, including the unnumbered Basmala verse at the beginning, stands as the first miraculous and universal evidence for the claim that the author of Quran and the creator of this universe are the same. At the time of Quran’s revelation by around 632, no one knew the atomic number. After around 1300 years, scientists found this universal fact.
The above two universal evidences stand as iron level strong miraculous evidences that should be sufficient to prove that Quran is from the Creator of everything, God. These miraculous evidences should convince the people with knowledge but without prejudices and arrogance against Quran.
Moreover, the chapter index of this verse also stands as further supporting fact between the unique relation of the iron and Quran. The Abjad number of the word “The Iron” (Al-Hadid) is 57. As mentioned before, the name of chapter 57 is also The Iron.
Below is the calculation of the Abjad value of the word ‘Al-Hadid’ (The Iron):
tmp <- AbjadSeqofaWord("الحديد",abjadL, abjadN)
cat("Each of the Abjad numbers of each letter in the word 'Hadid' (iron): ",
tmp)
## Each of the Abjad numbers of each letter in the word 'Hadid' (iron): 1 30 8 4 10 4
tmp <- AbjadSeqofaWordSumValue("الحديد")
cat("The Abjad number of the word 'Al-Hadid' (The-Iron) is ", tmp)
## The Abjad number of the word 'Al-Hadid' (The-Iron) is 57
Known evidence 3 of iron in Quran: The chapter, The Iron, is the 57th chapter of Quran and it is in the middle or the center chapter considering all the 114 chapters of Quran. It is also a new scientific knowledge of 20th century that the inner core of the planet earth is a hot, dense ball of (mostly) iron. More details can be read about it from this article: education.nationalgeographic.org/resource/core. So, the the facts that the middle of earth and Quran having “The Iron” is no coincidence but another miraculous truth for the ones who have no prejudice and arrogance against Quran.
Natural iron is a mixture of four stable isotopes. Another additional fact is that, the number 57 is also the number of one of the 4 four stable isotopes of iron, which is iron-57.
Known evidence 4 of iron in Quran: This might be a bit controversial as the science might not have fully established about how exactly the iron on earth existed. In the verse, 57:25, there is this statement: “… And We sent down iron with its great might, benefits for humanity …”. At the time of the revelation of Quran, humanity had no knowledge that iron had already existed naturally on earth or came down by meteorites. Although, there are various theories exist currently, one information is commonly accepted as a scientific fact, which is such that some of the iron on earth was definitely came down by meteorites. Since the verse does not say “we sent down all the iron”, I think, even the current limited scientific information verifies the statement of the verse. Since there was no such information that at least some iron came down to the earth by meteorites, the statement of Quran about the iron stands as another miraculous fact for the people of knowledge who have no prejudice and arrogance against Quran.
6.1.2 Entire Iron verse & atomic number of Iron: First new evidences of Iron
I have discovered additional evidences about “iron” and Quran on the date Dec 1, 2023. I have not seen them anywhere before. If I see a publication that already have them, I certainly update my book to cite them. However, to the best of my knowledge, they are all discovered by myself and first time presented to the literature in this book.
I will present each in a separate subchapter. The first new evidence is the following:
The verse of Iron, in its entirety, has further relation with the atomic number of iron, 26. Namely, when we concatenate, in the natural order, the chapter index (57), the verse index (25), the number of words in the verse (28) and the number of letters in the verse (138), we get the following big number and it is multiple of 26, which is the atomic number of iron. Here are the calculations:
Concatenate: 57 25 28 138
The coded number of the iron verse: 572528138
It is multiple of 26 as follows: 572528138 / 26 = 22020313
This suggests that the Creator of the universe, who also created the iron is also the author of Quran, shows us these undeniable miraculous facts so that we, the people of knowledge, can contemplate and understand that the Quran is the message from God.
Quran, 41:53 We will show them Our signs in the universe and within themselves until it becomes clear to them that this ˹Quran˺ is the truth. Is it not enough that your Lord is a Witness over all things?
A further interesting fact from this evidence is the following. The digit sum of the quotient, 22020313, is 13. This number is interesting because the word “the-iron” (Al-Hadid) is the 13th word in the iron verse, 57:25. This might or might not be a coincidence but it looked to me interesting and just shared as a fact but not as an evidence. I live this fact for further discussion to the people to consider it as an evidence or not.
Here is the proof from Quran text:
x<- unQuran
tmpl <- str_split(x$text," ")
i<- 5155 # General verse index in 6348 for verse 57:25, the hadid verse.
tmpi<- unlist(tmpl[i])
print("Each of the words in the verse of (The-Iron), 57:25: ")
## [1] "Each of the words in the verse of (The-Iron), 57:25: "
## [1] "لقد" "أرسلنا" "رسلنا" "بالبينات" "وأنزلنا" "معهم"
## [7] "الكتاب" "والميزان" "ليقوم" "الناس" "بالقسط" "وأنزلنا"
## [13] "الحديد" "فيه" "بأس" "شديد" "ومنافع" "للناس"
## [19] "وليعلم" "الله" "من" "ينصره" "ورسله" "بالغيب"
## [25] "إن" "الله" "قوي" "عزيز"
## [1] "The number of letters in each word in the (The-Iron) verse: "
## [1] 3 6 5 8 7 4 6 8 5 5 6 7 6 3 3 4 6 5 6 4 2 5 5 6 2 4 3 4
## [1] "The number of letters in the verse 57:25: "
## [1] 138
6.1.3 Iron verse untill the word Iron & atomic number of Iron: Second new evidences of Iron
There is more interesting evidence if we look at the text numbers until the word iron in the iron verse, 57:25. The word, “Al-Hadid” (The-Iron) is the 13th word in this verse and up until the word The-Iron, inclusive, there are 76 letters. When we concatenate these natural numbers in the natural order as we did in the above evidence, Evidence 6.1.2, we witness further interesting evidence as the resulting number is also multiple of the atomic number of iron, 26. Here are the calculations:
Concatenate: 57 25 13 76
The coded number of the iron verse: 57251376
It is multiple of 26 as follows: 57251376 / 26 = 2201976
This further suggests that the Creator of the universe, who also created the iron is also the author of Quran, shows us these undeniable miraculous facts so that we, the people of knowledge, can contemplate and understand that the Quran is the message from God.
There is further tiny interesting fact in the numbers of this evidence. The sum of those 4 numbers is also multiple of 19 as 57+25+13+76 = 171, where 171/19 = 9. By the way, the number of letters until the word, the-iron is 76 and 76/19= 4. This fact seemed to me a bit interesting because there are 4 isotopes iron made of. The letters are also components words are made of. The matching of the 4 regarding components of iron and the word iron seemed to be worth mentioning here and again I leave it for further discussion to the people.
Below are the R codes that shows each word and their word index and letters so that readers can verify the above mentioned numbers.
x<- unQuran
tmpl <- str_split(x$text," ")
i<- 5155 # General verse index in 6348 for verse 57:25, the hadid verse.
tmpi<- unlist(tmpl[i])
print("Untill the 13th word (The-Iron), each of the words in the verse of , 57:25: ")
## [1] "Untill the 13th word (The-Iron), each of the words in the verse of , 57:25: "
## [1] "لقد" "أرسلنا" "رسلنا" "بالبينات" "وأنزلنا" "معهم"
## [7] "الكتاب" "والميزان" "ليقوم" "الناس" "بالقسط" "وأنزلنا"
## [13] "الحديد"
## [1] "Untill the 13th word (The-Iron), the number of letters in each word in the verse: "
## [1] 3 6 5 8 7 4 6 8 5 5 6 7 6
## [1] "The 13th word, (The-Iron): الحديد"
## [1] "The number of letters untill the 13th word, including, (The-Iron): "
## [1] 76
6.1.4 Great evidence of Iron and Quran
In Evidence 6.1.3, we had used the number of letters until the word Iron in the verse. In this evidence, I will remove the total number of letters, 76, and replace it by placing the corresponding Abjad numbers of each of the 76 Arabic letters. We will witness that, this meaningful coding test have a 131 digits length very long number, which is not only multiple of 26 (the atomic number of iron) but also it is multiple of 26x26x26 (17576). To help you imagine how great is this code number, let me provide you the the probability of any random number being multiple of 26x26x26, which is 1/17576. Also, note that the digit sum of 17576 is also exactly 26. Below are the details of this evidence.
The coding pattern of this evidence is just like of the Evidence 6.1.3 but we replace the number of letters with the Abjad numbers of each letter until up to the word iron as follows:
Concatenate: 57 25 13 and [Abjad numbers of each of the 76 Arabic letters.]
The resulting 131 digits length coding number, which is multiple of 26x26x26 (17576) is this:
57251330100412006030501200603050121302105014006150730501407054013020400126130401071503010100640130501602130100609615073050113084104
This further suggests that the Creator of the universe, who also created the iron is also the author of Quran, shows us these undeniable miraculous facts so that we, the people of knowledge, can contemplate and understand that the Quran is the message from God.
Below are the proof to get the above number and multiplicity test:
x<- unQuran
tmpl <- str_split(x$text," ")
i<- 5155 # General verse index in 6348 for verse 57:25, the hadid verse.
tmpi <- unlist(tmpl[i])
print("Each word until and including 13th word,Al-Hadid: ")
## [1] "Each word until and including 13th word,Al-Hadid: "
## [1] "لقد" "أرسلنا" "رسلنا" "بالبينات" "وأنزلنا" "معهم"
## [7] "الكتاب" "والميزان" "ليقوم" "الناس" "بالقسط" "وأنزلنا"
## [13] "الحديد"
## [1] "Abjad values in each word: "
## [1] "301004" "12006030501" "2006030501" "2130210501400"
## [5] "6150730501" "4070540" "1302040012" "613040107150"
## [9] "3010100640" "13050160" "2130100609" "6150730501"
## [13] "13084104"
tmp <- paste0(tmp, collapse = "")
# Concatenate 572513 and replace the Abjad numbers of 76 letters with Abjads:
tmp <- paste0(572513,tmp)
# Test the 131 digits length number for mod 26 and see if 0.
as.bigz(tmp) %% 26
## Big Integer ('bigz') :
## [1] 0
## Big Integer ('bigz') :
## [1] 0
## [1] "The number of digits of the big coding number: "
## [1] 131
The 131 digits length coding number, including indexes:
“57251330100412006030501200603050121302105014006150730501407054013020400126130401071503010100640130501602130100609615073050113084104”
You might use this big number calculator to test it yourself: goodcalculators.com/big-number-calculator/
There are also some further interesting facts with the quotients of this big number.
When we divide the 131 digits length big coding number with 26, it results 130 digits length quotient number and the digit sum of it is 588. By the way, 130 is also 26x5. Then, when we divide the 131 digits length big coding number with 26x26x26 (17576), it results 127 digits length quotient number and the digit sum of it is also 588. When I run a simulation to measure the probability of them to be equal randomly, I measure the probability as around %0.8, which is statistically sufficient small probability to consider them potentially not random.
6.1.5 Additional Facts on Iron and Quran
I will present some other additional facts ni this chapter. I do not consider them as evidence but procide them here for thurher discussions.
Fact 1:
First code as a fact is such that, If we replace each letter with its corresponding Abjad number until the word iron and then this text representation number is concatenated with the chapter and verse index, without the number of words and in reverse order, then the resulting number is also multiple of 19 as follows:
x<- unQuran
tmpl <- str_split(x$text," ")
i<- 5155 # General verse index in 6348 for verse 57:25, the hadid verse.
tmpi <- unlist(tmpl[i])
tmp <- AbjadSeqofwordsperVerse(tmpi[1:13], rev_ = T)
tmpr <- rev(tmp)
tmpr <- paste0(tmpr, collapse = "")
# Concatenate 5725 and the Abjad numbers of 76 letters:
tmpr <- paste0(5725,tmpr)
print("The 129 digits length coding number: ")
## [1] "The 129 digits length coding number: "
## [1] "572541048301150307501696010030126015030140610010305017104030162140020301405704015030750164001501023012150306020015030602001410030"
## Big Integer ('bigz') :
## [1] 0
## [1] "The number of digits of the big coding number: "
## [1] 129
Fact 2, The isotopes of iron:
These are the 4 isotopes of iron: 54Fe, 56Fe, 57Fe and 58Fe. When the 4 of the isotopes of iron are concatenated in natural order, from low to high, we get this representation coding number:
54565758
This big number is multiple of 26, multiple of 19, multiple of 114 and also multiple of 19x26.
## Big Integer ('bigz') :
## [1] 0
6.2 Codes on the Basmala verse
I will present some interesting 19 based codes as facts about the special verse, Basmala, in the sections of this chapter. I excluded this chapter from the probability calculations of the general system in this book as I currently designated those codes as facts rather than evidences. So, one should not consider them as part of the general system presented in this book but consider them as interesting codes as facts about the Basmala verse only.
The key verse Basmala is written at the beginning of all the 113 chapters but Chapter 9 out of the 114 (19x6) chapters of Quran. No one really knows exactly, why there is no Basmala verse in the beginning of Chapter 9 out of all the 114 chapters. But the text structure of Quran has this odd and unique situation and after witnessing all the evidences so far, I conclude that this might be another sign of the unique design of the text of Quran. Because, otherwise almost all the evidences would collapse. Considering the many evidences I presented so far, we now know that it is required such that there must be no Basmala at the beginning of Chapter 9 as otherwise most of the presented 19 based system evidences of the text of Quran, presented in this book, would most probably be invalid. This odd situation of the absence of Basmala verse at the beginning of Chapter 9 further assures that the 19 based coding system design of the full text of Quran.
Basmala has many 19 based coding proposals already known about it in the literature. In this chapter, I will present new codes that I realized myself while working on this book and did not see anywhere else. So, all the Basmala codes within this book are first time presented to the literature in this book to the best of my knowledge.
Since the main point of this book is to present reproducible 19 based codings of the text of Quran, let’s get the Basmala verse first from the text. I presented all the unique words of Quran in Table 3.1 in Chapter 3.1.5.1. Let’s see the head of this table again. Because the Chapter 1 and Verse 1 is Basmala verse already from which we can get this special Basmala verse and its four words along with their word frequencies in Quran.
require(tm)
knitr::kable(head(uwordsTable), booktabs = TRUE,
caption = 'Table head of the unique words of Quran.')
uwords | count | countW | uletters |
---|---|---|---|
من | 2763 | 2763 | 2 |
الله | 2153 | 2265 | 4 |
في | 1185 | 1185 | 2 |
ما | 1010 | 1010 | 2 |
إن | 966 | 966 | 2 |
لا | 812 | 812 | 2 |
As we see in the above table, the first four rows of the table contains the four words of Basmala. Three of them are the different names of God (“Allah” (or God), “the Gracious”, “the Compassionate”) and the first word (“In the name of”) refers to them as “In the name of God, the Gracious, the Compassionate”. Basmala is a very special verse and unique regarding all the other verses. It is the first verse of Quran as if it is the opening or key. Before starting to recite any chapter, Muslims first recite Basmala verse as the opening. Let’s introduce the first evidence on Basmala verse.
Basmala words frequency table:
Although Basmala is a very short verse with only 4 words, there are many 19 based codings on just Basmala verse that are already known, such as the number of its letters is 19. In this chapter, I will first present the one about the frequency of its words in the full text of Quran, which I discovered while writing this book. Let’s first slice a separate table on just Basmala from the above Table 6.1
B <- BasmalaTable
summ <- c(sum(B$count), sum(B$countW), sum(B$uletters))
knitr::kable(BasmalaTable, booktabs = TRUE,
caption = 'Table of the unique words of Basmala verses in Quran.')
uwords | count | countW | uletters |
---|---|---|---|
الله | 2153 | 2265 | 4 |
الرحمن | 45 | 157 | 6 |
الرحيم | 34 | 146 | 6 |
بسم | 3 | 115 | 3 |
## The sum of each of the first three columns:
## 2235 2683 19
Before going further, let’s just mention one of the test results from the table for one of the very well known evidence on Basmala verse. Basmala verse has 19 letters as we see in the sum of the fourth column that shows the sum of the letters of each words in Basmala.
6.2.1 Key coding pattern based evidences from the Basmala verse
Under this chapter, I will present 4 new evidences in 4 different subchapters, which I recently discovered in November 2023. The evidences are based on the Basmala verse. As presented in Chapter 4, I have a unique hypothesis in the 19 system that I presented in this book such that I consider simple looking but obvious codings as potential key coding patterns and test over the full text of Quran. If they are really key coding patterns, I expect them to exist over the full text of Quran too. Because, I assume they might have been left as clues so that we might discover the 19 based coding system that shows that there is miraculous design over the full text of Quran. If true, it stands as an evidence that suggest that Quran is not distorted as the design over it has not been distorted.
As mentioned before Basmala is a special verse such that it is the first verse and repeated 114 (19x6) times in Quran and is 19 letters verse. There has been 5 known interesting codings over the Basmala verse, which was was discovered and published by Abdullah Arık in his book “Beyond Probability” (2012). I presented those 5 codes in Table 1. Arık was one of the followers of Rashad Khalifa, who was the inventor of the fake 19 System claim, where they reject the last two verses of chapter 9 in order to match the text to some of their made up codes. It is forgery and unacceptable from a scientific and academic and moral point of view. On the other hand, they also presented several “local” or relatively simple codes, which are not over the full text of Quran. Therefore, those codes are nothing to do with their rejection of the two verses and thus can be considered legitimate and a discovery. Because, those several local codes do not require any data manipulation like the other fake codes they made up. As a side note, as you can see in Table 1, the first two code pairs appears to have a common pattern, namely the following code is the cumulative version of the previous.
Anyways, getting back to the main point, since the code in Table 1 looked interesting and seem to have a pattern and does not require any data manipulation and thus are nothing to do with the rejection of the two verses, I decided to have closer look on them. I hypothesized that they might be key coding patterns and tested the same coding patterns over the full text of Quran considering the 6236 numbered verses and all 6348 verses. As per the universal rules of this book, I apply each coding pattern in both text types of the full text of Quran, namely the 6236 numbered verses and all 6348 verses. I then discovered that 4 of those 5 codeing patterns (codes 2,3,4,5 in the Table 1) also exist over the full text of Quran. Therefore, based on the key coding pattern based rules, I designated the new 4 big codes over the full text of Quran as evidences and withing the 19 System presented in this book. I mentioned the chapter names of each of the new four evidences in the second column of the Table 1, which are Evidence 6.2.1.1, Evidence 6.2.1.2, Evidence 6.2.1.3 and Evidence 6.2.1.4.
Table 1: The known codes on Basmala verse:
Code index: | New Evidence in all Quran | Coded numbers |
---|---|---|
1 | None | 13243646 |
2 | Evidence 6.2.1.1 | 1327313419 |
3 | Evidence 6.2.1.2 | 110226633294289 |
4 | Evidence 6.2.1.3 | 1102216834974786 |
5 | Evidence 6.2.1.4 | 1260402130305313020084050413020081040 |
There is also one more known coding shared by his followers, which is the cumulative version of the code 5 in the table. It is similar to the relation between code 4 to code 3. But since, it has a longer code and it does not exist in the full text of Quran, I did not include it in the table. However, I will consider that code in the probability calculations to be as conservative as possible in my probability calculations. So, considering my new 4 evidence discoveries as successes, we assumed 6x2=12 trials performed overall.
In consideration of the possibility to conduct tests without utilizing the word indexes, and also employing chapter and verse indexes for both groups, we can perform 24 distinct tests, which constitutes an increase of 18 additional tests that we could try to find key coding patterns. Let’s say a random key coding pattern also comes from those 18 possible additional trials that does not yield successful results when applied to the entire text of the Quran. Therefore I adjust the count of successful key coding patterns to 7, while maintaining the number of successes at four. So, in short, considering all the meaningful possible trials, we have 4 successes and can have 7x2=14 trials based on the key coding pattern approach.
Let’s now calculate the probability of what we observed from this 4 new evidence codes that exist in the full text of Quran, where we obtained the coding patterns from the Basmala verse and used them as key coding patterns to test the full text of Quran.
tmp <-binom.test( 4, 12, p = (1/19),
alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", 4, "successes out of", 12 ,
"(with p=1/19) is:", tmp))
## [1] "The probability of 4 successes out of 12 (with p=1/19) is: 2.70e-03"
# Hypotetical wors case scenerio, most conservative case:
tmp <-binom.test( 4, 14, p = (1/19),
alternative = c("greater"))
tmpp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", 4, "successes out of", 14 ,
"(with p=1/19) is:", tmpp))
## [1] "The probability of 4 successes out of 14 (with p=1/19) is: 5.01e-03"
tmpp <- formatC(tmp$p.value/2, format = "e", digits = 2)
print(paste("The probability of", 4, "successes out of", 14 ,
"(with p=1/19), considering 2 groups of tests is (multiplied by 0.5):", tmpp))
## [1] "The probability of 4 successes out of 14 (with p=1/19), considering 2 groups of tests is (multiplied by 0.5): 2.51e-03"
However more precise and conservative probability should consider the situation that all the 4 successes were observed in one of the 2 different potential coding categories (words indexed and not indexed cases) from which we increased the trials to 14 while considering them. Therefore, the probability should be multiplied by 1/2 to take this situation into account. then we have the more precise probability as 2.51e-03.
I will add the 4 success and 12 trials into the to the global counters.
As a side note, you might have wondered why did I not include these 4 key coding pattern based evidences in the the chapter, Chapter 4, where I present all the key coding pattern based evidences. The reason is that, the coding patterns in in Table 1 has an word index and this does not seem to me the most natural form of similar coding pattern. In my general rules, I do not add word or letter indexes but just use the numbers itself. So, the coding patterns of Table 1 have those indexes and not fully aligned with the rules I specified in Chapter 4. However, although secondary, there might still be a system design with such approach and it might worth researching that too. I do not have time for that and people who might be interested might consider trying all my codes in my book by inserting such word and/or letter indexes and try to see if there is similar system exist with such approach too. Since, I already discovered 19 System with with natural numbers and in most natural form, currently, I do not feel investing my time for relatively secondary types of less natural potential coding patterns. Therefore, I leave those to investigators to study if they have time and interest to do so. My current R programming codes should be helpful in trying such coding patterns. The only reason I tried and discovered the 4 new evidences, which I will present in the following subchapters, is becasue there was already available codes on Basmala as shown in Table 1 and they suggest there should be a design with them. So, I made an exception and tested just for those 6 codes of the coding patterns Table 1 over the full text of Quran and discovered the 4 evidence codes. I consider them as evidences but they have an exception to add those word indexes and it is a special rule to this chapter and not general in my book.
6.2.1.1 Cumulative number of letters and indexes from Basmala verse
This is the second known coding pattern on Basmala verse as mentioned in Chapter 6.2.1. In this coding pattern, the number of letters of each word of the Basmala verse is cumulatively summed and word indexes are placed before each word and all are concatenated as follows:
# Define a function to be used for this coding pattern:
# It concatenates cumulative numbers and indexes of each word.
cumsumWtIndx <- function(a){
# usage:
# Example input: a <- c(8,7,2,3)
# cumsumWtIndx(a)
# output: "18" "215" "317" "420"
cumulative_sum <- cumsum(a)
index <- 1:length(a)
b <- paste0(index,cumulative_sum)
return(b)
}
### Start coding
x<- nQuran # 6236 verses
tmpl <- str_split(x$text," ")
tmp <- c()
for(i in 1:length(tmpl)){
tmpi <- unlist(tmpl[i])
tmp <- c(tmp,paste0(cumsumWtIndx(nchar(tmpi)), collapse =""))
}
print("The coded number of Basmala verse: ")
## [1] "The coded number of Basmala verse: "
## [1] "1327313419"
## [1] "Test for mod 19 to see if zero: "
## Big Integer ('bigz') :
## [1] 0
In the coded number of Basmala, note that the first 1 is the index of the first word and the following 3 is the number of letters of the first word of Basmala, which is Bsm. You can follow the rest yourself from this example.
We observed that this coding pattern is multiple of 19. This was discovered by Arık but neither he nor anyone else considered it as a key coding pattern. As you have seen in Chapter 4, my book has a unique approach such that, I hypothesize this kind of easily testable codings in a few special verses, like Basmala, as potential key coding patterns and expect to also observe them in the full text of Quran if they are evidence codes. I call such evidences as the key coding pattern based evidences as presented in Chapter 4. I did the same hypothesis for this particular coding pattern on Basmala too and witnessed that the same coding pattern also exist in the full text of Quran considering all the 6236 numbered verses and so discovered the evidence code of this chapter, Evidence 6.2.1.1. Here is the proof of this code being multiple of 19 in the full text of Quran:
## [1] "Coded initial verses of Quran: "
## [1] "1327313419" "1528310418" "16212" "1427312" "1428313419"
## [6] "15211319"
## [1] "Coded last verses of Quran: "
## [1] "122639414" "1328" "1328" "1224311417"
## [5] "1429311415520" "1227313"
## [1] "The number of digits of the coded number of 6236 verses:"
## [1] 259820
## [1] "Test for mod 19 to see if zero: "
## Big Integer ('bigz') :
## [1] 0
Here is the 259820 digits length big number:
“13273134191528310418162121427312142831341915211319142931441952262973483794413132931141451762072715211317424530634741847162123154195236267308329361044114612521528311413517623725833122731241652162973183393910411147132731041652062572983694110451149125313283104145186237308359381040114717211317422525631734840943104912283114175216257298339371040114512511427310412518620725830934103711431327394175216237291427310415518621726831936103911421249135214561558166517691871197714283134185236277318359381046115112541358146215651673142103134195216287341521031642352963273684394610511157152931341952362773283493810411145125113571459156416661772122538411513619122638414517622726830936104311451251135314601563166817731877198614293134205246287318359381042114612511356145915621666177018761984208621902293239524982510212263114175216257308369381043114812531427310415520627731836938104411471252135414561563166717701873197920822188229323991327394125156207238289331038114012441350145715591662176618681972207813253114145206267318359411046115412581366142931442052863073383794110431148125513591464156816701774187819832086219022952397241002510526107271142811829122301273113232135331393414512263841451662072482693110341139124313481453156016631767186919732077218222872394249825102261062711028114291173011931124321293313134136351393614237144381473915515211314418520623729836938104111451247134914531560166217671872197420821329314419525632734840942104811501254136012263941251461672182692810331136124213481451155716601763186619701326394175206247268319361041114612501352145615601665177118751979208421892291239424972510126103271052811114273144185206257288369401047115312581360146415701521131341651962272483093310361142124813253841452262673284094310461149125213551459156216701776188119832088219122952310113273154215256317348399421049115312551363152731041451762272783193510391142124713501455155816641770187219801721431842652963373684194710521156125913631465157016751780188319861528310413518622726829931103711431421031441952363073383693910421146124913521457156016621768162113174245296347398419451051122531241852362773283794310481151125713621469162931441952262672983593810421144124713531459156316681773187913293134205276317368421721331842453163374117212317423529634739845949105519215322427533636739847152103144195236287328381225312418523627732837941104711501258162103124165196217248289311035113912441347145115551658176118631969132103124145196277308369421049115712631366147015741676178018841328311416525632734839944105013293134195236257318369381042114712531227311413516619724830132831241852663173713263104155176207248299351043114812541357146315701676178018831986208921952299231042410725109261152712113273941351561972182492710311135124213491454156012293114145196247301621131742452963374084494610511153126013631469157316781784189013273134165226277318349381042114912541358146415671671177418811987209514293144185216257288319381041114612511355145715631666177118771329313418523627732837944104711521256136014621565166717711877198120882190229323972410025105261072711228118132739413515619722826930103411371240134414471550165417591861196620732179228523912494251032610727109281132911830120311233212933133341363513936141371463815139156401614116942175431794418145185461884719348198492045020951213522205322754231552355623857241582455925160257122731241852363174084294510501156126113651470157416791782188619892092219722100231022410813283154215266317358379441048115512571360146515701228310413516621724828933103911441246135414293144205246267318369391044114812541821331641952462773283894513263104155176217278299351039114412511355145815621667176918731975208315283114145186217238259281031113512391343144515491652175518591962206521722274238015283114145186217238289311034113812421346145115551660176318711528311414518621723825927103211371242134614481551165517621326310414518620724828933103611401245135014521555165917641868197120762183228623912497132831242052462973383593910451521131742152562973584194610511157122531141351661972283093210351139124213441451155416591762186919722076217922832388249125962699271032810629110301123111632120331233412735132361353714118210316419522625729833939104311471249135614581561166317681871197714283134185236277318349391042114512501359146215651669177418821984208721912295231011421031241652062272783093615210312418524627732835937104011451429315421528630736839941104411481255135714611566167017731876198020862190229323962410216283134185216267328349401043114712511354145815621666176818741977208121832285239113253841251862072683293710421144124813541621131742553063574084294610521328313416523625731834938104811541257136314711580168617911895191022010821113221192312124127251302613527139281442915013283154175236297328389441046115212541360146515711226311417523630735839941104711541259136514731576168217871894199720101211062211323121241252513126138271422814529149301513115532158331623416535168361703717638182391864019341198422014320444210452134621747222482254923115210316422528635738842946105211551257136314293134195256277318379431047115012541361146815721677178318881992209521972210123107241152512126126271322813816212315417522626732838940104614293134155186227268299331039114112441352145515601665176918741976208121862288239324972510026108152113134195216277308349381042114412481352145415581661176318671969207421802284238724902599261032710714273104155186227268319351038114212471354145715621665176918741977208121832286239224982510226104271072810929113301191429313421523629734836940104511511328315421526631735837944104811551260136514711578168017861891199720992110422110231122411925121261252713112243841151662272582993410361139124413501455155716611767132931341652062673183594418212317420524627732838941104611481252135514581561166317701872197820802184228923932496251021224374115176217258289321036114012451348145115551659176418721225394125206257318379401044114712551421031441852362673083393610441621231642052462873083693810441429313415518622726829933103611401242134714521558166217661870197620812183228917293134215246277338369391045114912571362146815731678178118851988209521100221052311124114251202612227125281282913330137311403214433147341513515936164371663817239174401774118242187431904419245198462004720248205492085021251216522245322654231552345624057244582495925260258612606226263264642706527266276672816828369287702897129572297733027430813273124185246267298339361038114312491226311416518624729835941104811571261136512253104155176207268299371039114312481350145315551659176418681974207621802285238724922598122638411513618721825929103111361239134314451549165217541857196113273941351561872683293510381140124313471449155216551759122831041652262572883293410371140124513501458156116631767187312263841151761972682893110381143124713491452155816601763186519692072217622822389249225962610027105281072911130114311163211933123172133184245276337408429451050115312571359146315661672177616283124175206227258299311036113912461348145315601662176618721325394135166197238269301033113612391342144715501652175815211315422525628733840944105011531256135914641570167417771882198420902193229823103241072511226115271222812629131301343114113273104135186227248289321036114012421348145315551658176118631970207321792282238424902593269727992810529109301131421031742352863173483894010441148125216210314418524626728830932104011461248135014561421231842252562973483894010421147142931141752162773183393910421146124913541456156116641769187519812083218722932397241031321031542052662973383594010461327310416519626729833938104011421245134914511556166017651872197520792183228523902492259426962710028102291053010831112152123184245266327378439451048115212541360146215701225312418523627732837941104711501258162103124165196217248289311035113912421345145115561659176118671328315418524630733836941104611511254135714621565166717711875198313283134185236287358379411048115212581361146815761678178218861994201032110922115132631341551962272683093510391141124813501453155716621768187319762079218222882393249525100261032710728112291163012213273144215236287368409441047115012531359146514211317419522628731836938104311501253135814611564167017761429313418522626731836943104911561263136614691575168113273941251962272482793110351143124513511455155716631766187412253741051461772282593314273144185246267298319351040114312481351145615591664177012263114135166217268289311036113812441346145015551659176318671972207921872293239724102251062610827114132638411514616720824926103111341240134314481554162113154175226287308329351042114712501353145515631529314417521626729833936104311511257136314711574167817821887199020942110122103231072410925113261162711928123291273012931135132831241451962172483093310381143124513471451156016641767187319791428311415517621725829931103712211313417520624729833940104411511255135714631228310417525631737845950105411561261136314681572167417781881198520882191229623100241022510626109271132811829121301271326384115146167208249261031113412401343144815541521231441952162672883493810431148125013531459156616701772187619792083218915212315419526631734839944105011551260136314681574167817811886198920942196221002310624109251142611727122281252912930135311383214133146341493515336156371593816339168401754117742181431874419245196122539413515621729833939104211461249135514611565166717711876198220862189229423992410525112261152711928121291253012831132321373314034146142831341852462773083293710421145124813531459156216671772187619792083218822952397241002510226106271082811329116301193112232130152123184255286347418449491053116012641367147314263941251761972714283104165246317348369421045114812521357145915631666176818711975132631041351762072683293610401142124513481452155716601766132631041351762072683293610381142124713531457156116651770187519782081218622912395249825104261112711628121291263013231138132931341852262673183794410511157126413711473157516811787182143214235266321226311416524630737839943104511531329312416518622726831933103811421244135019213315420526630732839946105411581266152831542052562873183593910451521031541752162673283494212273144165216257288309351037114212451349145315551659176318661970207421772281238524891227313415521623730836938104111431248135314551561166617721876198320911328313420526632736841945105111571227312418521625730835939104311521258136416210312416520626729831937162931341551862172382993512243741552162873384094610501154125613611464156816731776188019842086219222942397241022510426109271122811729120301243112632128331323413835144361513715738160391664017241177421814318713283104145166197238299361039114312491354145715601663176618691974207921812285239124932598261012710628109291133011731123122631141751962473083594110471150125714293154175196227258319351038114412471351145615601667177218771980208221892291239612263114155186207258309341037114312481355145815611664176814210316424527633736840942104411501427310416518622726831933103711391245134914551559166217681870197620802183228914293144185226267298319351038114212471349145215551658176018661226311416520622727829936104311461248135214561562142731241852362773483794010421146125013531457156016631766186919722075217922812385248925931227313415519623725831938104011441249135414561562166417701873197820812187229123942410125104261102711428118291221521031642352963674484795310561161132631041351962472783293910411147125013541458132739414520623729836940104411461249135414601565167417811889199320982110122104231072411325121261302713428140291493015231158321633316934173351793618737193381963920240211412134222043227442314523646241472464825149257502595126612263114165196247308329381042114712531359146615731676177918811983208721902296231042410925113261192712228127291293013331138321413314634149351523615537159381631426312416518622729834939132831141451962472682993310391147125613641467157016771327312416521625728833940104211461250135413263841151561772182693110341137124113431447155116551226311416519624730833936103911441246135114561561152123154185226277298329351039114112451348145215571664176818721977208021842288239124942596269927105281082911130113311173212313283124165196257288339391041114612541357146015641669177518781981208621882291239424982510026104271072811129115301183112332126331303413335138361463715138159391634016641168421734317944185142831341652062472883293710401144125413561464156616711777132631041652162473083293610391144124813511454155816621766187319792083218822922396241012510826115271172812029124301273113232139331423414735150361553716138163391684017441176421814318344188451944619747202482054921350218512245222653233542365524056244572475825459258602626126662271632766428165286132931642152863473784094610531158126013651470157616811787172931541751962573083593910431146125113571459156516691773187519792084219022922399241052510926114271201729313417522631734840942104611481251135918211319427529632739846949105111561259136714701576168217851893199620992110622114231182412225130132931241652062418211313417521626731834937104311461251135414571565152113174235316357388439481055115912631365147015751681178518921994209821100221071729313417520625732835942104911511255135814661621031742052362973283894010451148125413601463156716721776187919822086219122932395249825100261042710928111291153011731121321233312634130351353613837142381493915240156411594216543167441724517546177471804818549190501945119652200532055420855213562165722058225592286023161233622366324064245652516625767263682676927470276712807228473290142831541852162572983293510381142124513491451155516581764186619692074217822852388249125962610227108281102911430121132831241452062472683093410391141124613531457156016661772187919822087219022942396241002510326110122831041351762273183593710411145124914293164235276337398419441048115112561358146215661670177218781981208321852291239324971527311415519621727831934104011441248135214571528312415520625729835172113134175246277318339381041114412481351145515581661176518681972207821822289239324972510313283104155196217278339381042114512471349145315561659176514283114135186237278329371043114812501353145914273941251662172683293710411146125213283104145186247298339381042114912263114165226247298339361042114712541357146015631667132831041351562172883593710411145124912283114135196237258289301036114512491354145815621666177212253124145216237268309331037114112451347145015521657176018641968207413283134195256327348399441050115512601363147015751679178118851989209313283114165206247318379441049115312591364146915721677178118881991209421992210223105241102511526117271202812229128301353113932144331483415235157361623716538172391754017741181421864319144195451974620147204482084921412273941552062472983293710411143124813531460156716741777188119872093219822101231042410725111261142711628119291233012717211317419521627729832941105011581267137114771580168617881891199420982110022104132831441752062372782993510391142124513481452155416591763186619682071217622802385248725931729314420524627729833936104011431245134914531557165917661872197820822185228923922496251032610727109281142911730123311323213533141341433514836150371583816139166401704117242176431804418345187461934719748204492065021251219522255323054235552375624157247122731241852463173383794110461151125513591464156816721729314421523628731835941104611531257135914651573167717831885199020942198221022310524111251162612312283154235256327348399421045114812561364146915731679178118871990209321972210423106241102511426118132931742052462973483793910441147125413571463157116741780188519892092219422982310124107251122611727120281252913030134311373214233150341553516036165371703817539182182103164185206237318379391045114812551358146315671672177818801983208821922294239824101251092611327122162931241752262572983594210481152125913631469157316811329313417525627732838945104811531258136214661229313419521628732839942104611521257136114651521031241852262773183493910421146125013541328314417521625729192153224275316347378409421047114912521356145815651667176918731978208421892297231002410525107261102711228118291243012831131321353314034148351553616037164381693917340177162113174235256307368399421045114712531356146415681671177318781981208621902294239724101251042610927113281172912030124311303213433139341413514436148371523815539162401654116942173431774418345185461931328311414516618721824928103211361239134414471551165717591866196820712173227823822486259026942798281042910830114142931542052563373984194710531156126313681475157816821785188819912095219822104231082411225116261232712728131291363013931143321483315034156351633616837170381763918040187411894219343196441994520314293154205256287358379421049115212581363147115741678178018821985208921932298231042410925113261172712028125291303013431139321413314719214321426532635739841944105111551262136414691576168417861890199320962110122103231072411225118261212712628128291333013731143321463314934152351573616237164381683917340179411824218643192441954520046202472104821749220502245122952232532375423955244562525725858262592696027161275622786328464288162123164225286347418469501055115912631368147115751680178418881990209621104221092311224118251221327312416521623725829935103711431245135114541558166217711875197720852188229123932499251032610927112281182912230128311313213533141341453515236154371583816239164401664117242179431864418845192461964720012263114135186247268289341036114212451350145715601666177018741980208421892297231002410325111132113134165186247278329351040114412461351145415561661176318671971207521792285238824932597261032710628111291163012131123321273313034136351401629316423529635738844132731341552162573083794110441149125113531459156516212316422528632740845948105311561261136414681571167517801882198420882190229623982410325108261122711619213321424527634142831241552062573113253841351862072682993310361141124513481452155716591765186719712074217722802385248925932698271002810617293134175246267308349381224384125166207248319331039114412491353145815631669132538413515618725827930103411361241134514481552165517591864196620702174227723792484258626892794281002910330110311153211833121341243512936131371353813939142401484115042156431644416845171461764718248187491905019551199522045320854217142731241451862072382693110351140124313471449155416591763186619722075217822812384248625912694279628100291063011131116321203312234127351333613837142381463914840152411574216143165142731241451762172382993610391144124613501455155816611763186719702075218022882390249225952699271022810429108301141427312419522624728835939104211451248135214551558166017651869197220752177228223862490259626992710228107291113011531120321223312834133351363614137143381473915040155411614216743170441754518046184471894819349195501975120052205532095421255217562215722558230592326024014293154215266307348399431047115412611364146915771721131541952462973483894310501155125813621467157016741779188419882093219822102231062410825111261142712213273114175216267308339411328313418521624728830933103711411246135114571561166417681875198220862191229423972410125103261082711328115291203012231125321273313334140351443615137156381583916140166411684217143174441774518146183471904819449198502025120452208122631141652262573283493710391143124613481451155416571760186319682077217922871426394125146187248269311034113712401342144415461654175718591964206621682272237624802583268827922894299730103311063211133114341203512436126371303813339136401394114242147431554416145164461694717548178491835018912273941451662072582793110341138124613511456155916651772187819802086218922942398241021427312417523625732835940104611511259136614741576168117841891199620101211062210823112241181325384125156227248279291033113712421344144715541657176118651970207321762280238524882595269827102281062911230114311203212333126341283513436138371423814539150401524115642161431691227394125166197248279331036113912431346145015531658176418681972207521772281238424862590269327972810129103301063110932112331143411835122361253713038133391384014441146421514315644159451644617147174481794918450187511935219653202542045521056214572185822259224602276123162233632376424065242662456724913263134155196227268329351039114312461349145315591663176618691974207621812286239024922596269927101281042910830112311143211933125341293513436136371403814439148132831442152362773183593810431146125113531455156016641767187219772080218422892393249715211318420524628730832938104011461249135214551558166317661870197320762181228423862492132831441751962372983293710401144122631141651862473183694210471151125513591464156716711776188219872092219622101231052410925115261192712428128291303013631139321423314534150351553615737161381663917414293154225286337378449461052115612591364147015741678178318881991209321982210223105241102511326119271231429311415517620722826932103611381243135014521556165817601867197320782181228523902497251022610527108281152911930123311273213033136341413514812263114165226247298319361040114612491351145615591665177118741980208521912294239624102251052611227114281182912130125172123174245326377428479501055116012641368142103124165196227288319351039114412471351145415581665132931141551762272482793010341139124213501452155712273144195216247308379441047115012531358146215641671177618791985208913273124165206247268309331039114112441352145515611664177018731977208021862288239124942599261042710628112172123184205246287308389421044114912551361146715691675178118881990209621101221072311024116251182612127124281282913030134152113184245316347418459501053115712601363146815711673177915211316418524627730834938104411511253135714601565167017741879198220872191229523100241042510926112271162812129123301263113232135331373414035145361483715238155391584016441169421744317644180451861428313418525630732835937104111451227312418526633739844950105311581261136514681571167617791881198712263114165216257308329351037114212441348145413253114175216237278339361040114412481355145715631666177213263841251762072582893410371140124213461452162103164195226267288329341037113912431346144815541226311416519626730833936104011471253135814621568167117741878198020842187229123952410125107261112711528119291243012831131321343313834141351453614837151381553915940163411684217043175441774517946185471874819049192501985120252208532175422355225562315723458236592416024661250622586326164266652686627567277682806928770292712997230573308743117531876321773237832779330803368133882344833498435185356863598736388367893719037491378923839339094395953989640597408984109941410041910142410243210343710444110544610645010745310846010946711047011147711248011348411448811549111649511749811850411950812051212151512252112352512453212553612654112754412854712955113273104135166217268319371040114312481352145715611666177218771981208421872293231002410325109261132711628120291253012831134321381325374155186207258289331035113712431345145015571659176318681971207521802282238624912594269627992810313293124165206227258349361039114412521357146215641668177118741976208021862291239724103251072611227118122631041451762272582793110371139124513491451155816601765186719732077218022842389249325962610127104281092911130116311203212333129341313513336137371403814239146401494115442157431644416745173461804718348188491961314263941251461872413273134185236267298339381045115312253841351862572783293710421146124913531457156216661768187412263841251661972182692910311137122631241452162472883093310361138124413501226310414520623727833935103711431247135514591564166617721875198220842189229223982410425111261172712028124291303013331137321463314834153351593616337165381673916940172411764217943183441864519046197142639415518620726829932103411381242134514481554142731141652062272582893010341136124013471227312414518622729832939104111451249135514571561166614263114175196247298369421046115312581362146812273124195266297338379431225384115136187248279321034113812421347145215581664176718721977208121862288239224942596269927104281092911613283104175196257328419491051115612621368147515831689179218961910220108211132211723120241251229313415519624729832936104011441246135114581564166817741879198520872191229623100241071521131541952362873183794110451150182173264355466541327310412515618720829934103911441250135214551558166017661872122731041452162472983493910451148125013531455156016651769187419772081218622902393249725101261071328311416520623726831934103911441250135814651568167417771883198620912196221002310624111251152612212273134185226297368409421049115412601366146815731679178418881521031442152362973683994210441150132538413518623725831936103911431247135214571559166417681872197520811328313415520625728833940104511471252135414591565142731441852062372683193310361138124213451447155312273114165206257278319361041114412481352145415581662176418681972207721802283238524882592142931141752262873083594010441146125113561461156316671772187419782082218612263144225286307338419441048115112551357146115631666176918711976208021842291239524992510326107271131224394115136197218269311035114012421344145215551657176218671970207221752279132638411513617719822927103011341236133914421544164617511856196020652172227623802485258926961224384135176257318359401043114912541358146212283124195226277308349361039114712263114145196227298329371040114814293114145196237271226311416518621725827929103111351240134514481551165417601866142103144165196257298349381041114512491354146115651671177518791985208721942296231032410917211316419526631735841946105011531258136314701573167817821885198720912194229623992410325105261072711028114291163012031124321263313034134351381528313416519621723825927103111351239134214461552162143174215256277348369401045115012551360146215661671177718821984209213253841251461872182693110381142124513491453155716591763132539411514617721824928103311381242134514491554165717621866197220801327315417521623727833938104511481252136012263114155216277298371325310415520624727830935103711421249135314571561166417671872197420811226314416520622726831936103911431249135314561560166517671873198020832191152103124175226257331426394135156187218279301033113712411345144715511654175718611966207021722274237916212319427535162931241952262472983393510391142124613491451155616611766187119742079218322872391249625102261092711428120291243012831135321383314434147351533615537161381633916540168411724217543177441814518716293124155176247298329351039114212471353145715591663176918731980122639414521624728834142731141552062372583193410381141125013531458156216661771187619802086142831141652362973683894616210314419522630122539411515618724830933103911411246135114561561166717701875198020832186229323952498251042610927114281182912230125311321429314421526631733839946104911521254136014293144205286357418469481051115913283124145206267321225394125166207238279291033113512381340144215471426394125156177251327310412515617721823928103111371240134714551562166917761883198520902195229923103241062511412253841351762072282592810321135123913421448155413283114155196281224374135196227268309351041114412481351145515581662176418681971207521802284239024922595269927102281072911330119311233212912253114135196217288319361043115112541356146015641670122631141752162472682993210381142124513481450155316581762186719692075122531241852162873283594010451148125113531461122631141952463073483994510501155125813661328310413519621728831936103911451248135412253114135196247288339391225311413519623730837941104611521521031241552162673183593810431148125113571464156816731779132931241551862372582793210351139124113451448155116531759186119682071217522772379248425872691279628982910230107311113211514210312416521623728834132631241451662172783193510401142124413491455155716611765186819702073217722822385249025952698271032810529112301163112332126331303413535138361441325394145196227268299361227313417521629733838943104511491252135414601563166917731876198020852188229523982410425108261122711613273134185256327398419471050115212541360146715691671177418781981208321852288239224992510226106271112811429120122539411516620726832939104111451250135514601562166417671871197520802187229023942410025106261102711428120132931141752563373984695210551157126113671326310415522625731833937104211441249135314571560166417701872198020832190229623992410325107261122711828121291283013231136321383314613273104135196217291528312417520624726828936104211461251135614621226311414518623726830933104011481254136014681571167517791884199220942198221002310424107251102611427118281202912613273104175216247288319341036114212441352132731141552062373083693810441146125213591464156616701775188315211313418522626735841947162103124165206267298319371328313415518621728831935103911431227312415522624731835937104111471253135514621227312418521625728832934103911421247135114541559166117661869197320772180228323852491122831241552162472983293810401143124613501452155612283114145186257288309331040114312471349145215541658176518671972208021872289239324991328311415520622725828934103611441225394165196267318349371039114712253841151662072483093410421327312416523626730833937104111441249135114561558166417681873197620792182228623892491259912243741351562172683093510391142124413501224374135156207228269301032113512421346145115561659176318681971207712263114165186247298319361041114712531356146315691421031541952462873283794210451150125513581461156416681774122631141652162572783293510401143124813541821231642152463073784194510501152125613611465156816741781188719932098211012210423108241102511526122271262813029134301383114132146331513415715293124175206257328409461048115412601362147013293154215296317348369411048115412571361146513273114165206247298349401046114912561362146815711675178114293144205236277318339371043132731141752162672983393710411149142638416519621726830934103811441427310415520626734840942104811551260136314661569167517791883198620902198221052311312283114145176257318389401042114814293144175196247278319331037114112431348145415581660176418691974208121842289239424100251052610927116281242912830130311333213633140341463515215293114145206237288339371041114512501353145916211317422529637743845951105911611268137414761584132931141451762372883294012273124145186227298329391041114512491355146015651667177118771325311413516622728832935103911411246134914521557166317701873197820822186229223981226311416518624729831936103811451250135414561560166217651872197420812184228823942498251002610427107281132911530119311251226311418521628735842945104911541259136314671571167517801887198920942196221012310724109251132611727121281271228312417520625729835938104111471253135514601565166917711875197820842188132739413517625730836941104511491225312416518623728834938104211491257142931341752262673283694110471226314417523625730834940104411461254136013253114175246267318349401044114912531355146315691327311414518621728834936103911441247134914521556166217681529311416521623729837943132537412515617721826928103411391245142638416519621726830933103711421244134814531557166112263114165186247298359411047115112561362162113154195271721131842352917210315417521625730838944104811551521131341952663574084895010551160126313711629314419521626732837941105011571260136414701573167717801885198820902195229823104152113164185226277318339381045115112551359146215701225374125156217238289351038114112461354132731241652262913283114175226297318359411228311414516621724828932103811451248135314591563166817731878198220872192229423972410516210315420525633122739415520624728832937104311471252136014283134185206237258309331040114512511327310414516619721825930103411371239134214491552165917621867197020752178228123852489259526992710713263104125166197238279321037114012431347145315571661176418671971207721812285239124991527310414517622726829934103711431245134914531556166117641872197720802188132631141451662172582993210381146124813531457156416711774187919871621031442052462873483994210501226311416518624729834940104311501258136412263124155186261527311416521626729835940104211441248135014561563166817721876198414293134175196267318349371042115012521357146315651668177018751977208221862288239224982510326105271092811529117301223112632134331383414135145361503715238155391584016612283114165196227298359371043115012531356146115671670177218771980208221882293239724100251061226311413516620724829933103811421248135014561562166717721875197920812189229523972410025102261072710928112291143011631121321243312734132351343614037142381443914940151411574215943162441654516746172471754817749182501875118952191531955419755203562075721258215592206022561228622356324264246652486625067256682626926470266712727227773281742857529112273124165196247318359421049115312551360146415671671177518771981208521891226311416518624730835941104911521257135914641566167117741876198120862188229323962410125106261102711328117291193012531130321343313934144351473615337157142931141551962172483093210361141124413471453142739414518622728142831041451762072382692910331138124513471451155516591766186919762078218322872391249625992610327105281092911230121122831241551962272583193410361140124613481452155616601767187513263104125156187228259281030113312401342144615481651175318571960206221681428313417520623727829933103911431247135312273104145196237268321325394125206227258299341036114212461351145615631670177618831986209121932296239924103251071521231741952463073483794010421144124613491455155716611764186619692073132931241752462973383994716211317421524630736838942104611481254135914611565167017791881198620912195229923106241122512026122271252812729133301383114232145331511521031842452663373584094210491151125713621464156816741328313418520624728834936104111441248135415283134175196237328389401046114912511356145915621667177018721978182133154195236267308329361039114715213316423525628730836941104611521256136214651569152831141651862372583093310401146125213581463156716711777182133154195236257318349411046115012551357146015641428315419526629736842944104811541328313420522627731833938104211461250135414571561166417671869197520792183228712273134185266287338379411045114912531328313418522626729832939104311471250135814621566167017741225394135216247268309341037114112471349145415571660176418711974207921832287239224942598261002710428110291153012031123321293313534139351423614613283134195226277318339371039114312461348145015521655176218641969207121742281238524902598261042710928112291183012213263104135186237258299331037114312481350145515611669177318751980208521892295132631041651962372683193715210312416519624727831936103911451251135614611563166517701873197520792187229323972410025108261102711428120132831141451761972382893610421149125512253104155206257318349411044114812501355146015651668177118741980208621892293239916283154225296317368419471049115412571362146815711676177918851991209421972299231022410813263104155206257318389431046115312591363146915761678178218871991209321991227312418521625731833939104211441250135314601566166817741878198220861427315421526629731834938122437415521628733840945105011571521131542052663073684494610491157126313671469157316761781188719912095211001427394135186217278309381040114514283134195246317338389431048115212571360146615701673178018861988209514293114175206247278329351042114512471351145817210314417519623726830934103611391241134514501552165517611867197420762182228823902495251022610827114281182912530134311383214233144341493515636161371633816639170401754117942182431881227311416521623729142831041652062473013283134175206247288309351042114812521356145815611665176818711975207821851325384145176217268299331038114112451350145615591661176718721976208021852290239324982510126105271072811129115301211226311416522629736842946105111571226311416520624729831934103911431247135214551560166517701875198120852189229623982410625108261122711528120291251521231942252963574184495010571160126713701473157716821327310416518625732834937104011421248135214571562166517691872197820842186228823922499251022610627109281151521131842252562873183393610391143124813531458132831542252662973383694110491153126013661469157316791721431742052563173483994310471154125913661469157616821788189019962099211022210623114241172512026125271312813929143301483115332160331673417235176361813718616210313416524633740844947105011581267137014721575167717801885199114273134175236317408489511057116012641370152103124175196247288339381043115012541362146615711227313418525629733839941104711511258136316210312419524627729837940104211461249135514591563166517681871197520802184228923962499251032610827113281162911930121311243212633129341323513436137371393814239147401524115742162431654416845170461744717948184491865018951193521975320054202552055621157219582215922660230612346223763241642466524866252672546825869261702667127114273941251962172382692910321135123813411444154816531756186019622065216922742377247925822686279128942999301013110332106331093411235115361183712138124391284013341136421414314344146451504615547158481604916350166511695217253176541815518356188571915819359195601986120262206632116421665219662246722868230692337023671241722437324874250752537625777261782647926680269812728227683280842828528686291872958829913273114145176217278329361040114212471354146015641668177318791326310416521626731835940104411471251135517212319421527636741846950105311581266136814741577168417891891199520992110222107172153194265296337398469511053115712601365147014210313417522628733839941104711491253135914631567167217761880198520901521131642252963273583894310481151125413571461156416691775187819822087219322962310124106122631141651862172482693110371141124413511458156216641772187519772082218822932310124109251122612027124281262913230136311413214533148341523515713283154185226257318379431046115212551359146715731678178314211314418523626729834938104411491329311414520622728831933103511381241134414491554165817631429316423531638746851955106011651273137914861594169617103181091911520123211292213123137241392514526151271562815929162301643117032175331783418135185361903719638203392084021041217422204322644229452364623947241482434924650248512525225553260542651921131742052262673383794110461150125313551459156316651771187919852088219522982310624108251122611827124281292913230136311413214533152341543515636159371663816839172401754118042185132531041451862072483294010431145124913561458156516731778188219902095219722100231082411225117261232712928137291433014631153321563316234167351713617537178381823918840194411974219943202442104521246218472214822449227502325123652239532455424855251562565726058264142831341652362673183393810431148125313571461152931141552062573083694310451151125513601428310414518622729834122631141651862473183694310461148125213571459156316671770187619822084218822912394249913273104165216257308349381041114412481353122931441652162472883293910461151125613293114145186207258289311037114112441351145815621665177118781982208421882290239424972510026103271081429314417520628737843947105411601266136814721575167817801883198816212315421524627731836939104211461252135414611570167617821887199020932197221042311024116251222613027132281392914730150311563215933164341693517436176371803818339187401921327311417524628730834939104111461248135314591563166717731875197920822187229217211314420522626736842946105211601269137514771583168917941810119107201112111722120231242413125133261372713928142291443014731153321581521131842352963673884394710491153126013681473157816212319423528631737842945105111561259136214691571167617801885152103124175226287338409431048115212561360146315681226384125176207238259291036114012421346145015551427311413515618723828930103311381243152831341852362973183593810431146125213561461122631141651862473083594010431149125113571460156416671772187619792086218922932397249925102261052710728110291133011731119321253312734133351393614237147381503915740162411664217343180441874518946193471964820049205132538413518623725831937104411511253135814641529317421526630734839944122731241852362573183894310491154125713611467157016781783188519902093219722102231072411325118261252712928133291363014131145321503315434160351633616937172381771226311416522627730835940104311471249135214541558166317691872197920812187229023942499251042610827111281152912112263841251461872082592710301133123613401443154716521755186019642069132538413518624726830934103611401243134914541427313416520625729831935104013253841351862372583193710431151125813631468157316771779188419892094152103154195226267308339361038114312253941151662072282793210371228313416518623727829933103611411243135014561563167117751880152731041251761972182492810331138122731241952262873283694010461153125813631470157616781782188519902095162113174255326367408429471054116012641368147115751680178518921995201001226312414519627730835939104411471252135414601566166817721876198120832185228923922497251021226311416522626733839944104911531256136314651568167317761880198720892193229923104241102511526118271212812629132132538413519623728831935103911421246134814521558166017681871197820812186228823942496251012610827110281152912030125142731041651962172582993310391143125213571460156514273144195226267328349391045115012521357146015661673152103144185206227288339371042114512481350145615601665132931141551862372783193410381140124513511456156516691776187919852091219522100231051327394155186247288319361038114012451347145315571660176418711977132631141651862473083293810401146124813531456156016641767187119762078218422862390249425972610127107142123144185226271921432113263104175236257308349381043114512521361146915781682178718921328310414518623728122631141652062573283693810441149132731041651962673183493610401144124713491451155416581763142103134155196257288309331038114312471349145415571661176618701975172931341752262773383994610491154125613601464156916711775187919842088219313263841551762172583693810441151125913641470157416801782188519912097211022210723110241122511626120271252812829130301343113915210317419523627733838945104711511258136514711578168017831890199320981325384135166197238299361042114712531357146015651671177418781982208721922297231012410325106261102711628120291223012631131321373314134147351503615337157381593916340169411734218043183441864519046193471994820415211317422525629731835940104311481252135814611563166617701873197820822188229123932497259926101271032810629110301143111932124331263413235138361431227394135166207238289301034113712411349145415591663176818731225311414518622725829932103911441249172113154205226267298349381041114512491354145815601666177118751980208321872291239624101142113174205236257288319351041114412511356142931241451962172683293410371141124413501454155816631767187219772086219022952398241022510726113271202812729130301351527311415517621724828932104011431247134914521555166017651870197320772181228712263114155186207248289311035114012441347144915521656176018641967206921722277142931441952462873083593710411144124713491452155714263941251462272582893510371140124313461450155216561761132638417522627733836941104811501255135714601564166717711875197820812183228814263124155206277318349401044115012531360146215661670177318781984209221952210323106241122511626120271232812813283134165196247308359371043114712531355146315651672177718801983208721932298231072411025118261212712928135291403014531148321513315534158351633616816211317419526633738840942104611491255136114651568167017781884198920942110022106231122412025123261312713828143291463015131157321621326311413517622725828931103411391242134814521557166117661869197320762178228423872490259226952798281012910430108311143211833123341263512936131371343813939145401504115442159431624416645172461764718148184491865018951194521995320754211552135621757221582255923060235132731241852462873383794110451149125413581460156516701226311416519624726830934104111441250135314571562166817711876198220852191229723101241052511026115271192812329125301283113132135331403414735149361533715638159391654017012273154175256287328379471049115312571365147215751679178818961910320106211142211823122241252512926135271392814329152301553116332167331721528314419523627732837122731342152663273784094410491152126013621467157216751778188119852090219822102231082411425118261232712813213315421528636738846950105311591264162931341551962372783193510401328310414518621723828934103911431246135014521556166217651869197520772182228723902493259726100271042810829112301173112214293114165206257298319371039114512471351145315591664176918711979208421872291239614273114165196257308359391042115012571361146615741676178218871992209621982210323110241132512126126271342813629141301463114832154331563416335171361783718338187391924019541199422044320644209452124621547217482204922250226512305223253237542445524956254572565826059263602716127662281142931542252663173784194710511159126613721474158016841787189519100201061328310416521623729835940104611491255136114631567166917711876198020842189229413293134195246297328379401044114812511354146215671721131341752062573013283104155226287308349361039114112441349145417293144175246267308339371039114512471349145315551660176418681971207721821226311417521623729835938104311471251135414611563166517691874197913273114135176217238299331036114012451350132731141652162472883293610411146132731241451862072382593010331138124413491454152831241652262673183593710421145125013531459156216681770187319782082218622922399241042510626108271112811529119301223112632130331351225374115136197228249271032113412391341144615491654175718611964207021752279238324882592269713283144165196217258279321037114012441352145615581662176718711976208112263841251461872082592710301133123613401443154716521755185719622067122739413516621724829932103811431428312418520625730836182173254325366437518589611065116812721379148315851688179218951998201042110915212315420527630735152113154185236277321621131742553263674084294710541160126413681471157516781781188519872091219513211314419522628730834938104111431246134914511553165617601864196720721327394175196227248289311035114112471352145515611666132731141451862272582893210371140124713521457156116681773142638416519621726830934103711401245192113174195236297338369401045114712531355146015661672177418811983208621892296239824105251162611827125281282913430141311473215033156341583516136164371683817139173401781328312414519624726832935103911451247135214581562166817711877198320872190229623102241052510926112271152812129126132113134195226287318369391045114712521359146715701676178218851989209221972210213293124165196217258299331038114314263841651962172683093510401145125113531458156416661771187519782084218722902392249425102261052710728112291163012031124321291426384165196217268309351040122531141552062473083493810411144124912253941351962372783193710441148125213571462122631141652162773383894110441147125313551463157216741777188119832088219322972310124104251102611527117281232912630131311333213933142341463514936152371583816312263114165216267328399431046114912541361146515691671177418771981208621942299231042411025115261182712028125291301227312414519621726828933103511421246134814511555166017631866197320781321231541852362815211319425527630738845950105511581263136614711326311413519621724829933103711411244135114541557166317671870197620782182228623902493259826100271042810829117301263112832132331371521231541852162472782993310381141124413481451155416621766187119742080218522922394241022510726111271162811929126301293113332137331453414835156361611221131842252563173584094310491154125913651470157316791783188619911721031341551862372682993410371141124513481451155316581226311416518624732838940104311511258136014661569167417801885122113134185246267318349371040114513283134205286337408459481054115612641368147115751683178718921226310417519624730834938104311481225394145206227278309321035113912431348145312273114135186207258279301033113712401344144912273134185236307328389411045115012571361146515701674178118831989209221952210015273154185256337388431621131642152463073383694010451148125413601464156816731778152831441652062573083293810411146125013541456155916651769187319772084219122972399241052511026112271152811729123301303113632138331413414735151361573716216211316424529632738843947105211551257136214641569167517791885199014293164225276317378459491051115712631366146815711675178018861989209521982210317213316420526631162931442052462773183593910421147125013551459156216651768187319802083218622882391249325962698271002810329106301113111532118331233412812263104145186227278321325384145176237258289321036114312471352145715273124175226277328369391045114712511355146016211314418521627732837944105111591263136814731321131341852263173784094410481151125513571461157016761784189019992010421110221152312024127251312613613293134165226257288369381042114912521359146715731679178718921997201022110822115231212412625131152731441852062372883093610401144124813521458142103174215256307338379401043114812521356146115661327311414518622727832941104711511256136112273124175196237278299331038114312273124185206237278329351038114512501327311417521625729832935103911441226311413518624729831935104111451248135114571560166317651867197520812185228923942499122531141351862072582893410371141124413481452155816621765186919732077218322892392249625100261032710928114291193012231128321333313934143351463615037154381573916140167411694217343175441784518046182471844819249195501975120252206532115421612283144165206247278309381046114912551357146315701678178218871429314420528635741848950105411581263137114801587169217971810019105201082111022113231172412125124261291226311413518623725829936104111451250142931441952762973783994310461150125713611466157318210314420522629731835938104111431246134914521556165917611864196720722174227623792482258526882793289929104301113111432117331203412535129361343713938145391484015041158421624316644169451714617647181481844918750191122631141652162873283594010471150125213561461156416681773187819812083218722912393249712263114165186237288329351040114612491354145715641667177118761982208821922294239824105251092611427122281252913230136311393214133146341483515436160371623816839176401794118342190431934420045203462084721648222492265022851232522365324214293154205246317348379411045114712561365147415821685178818931996209821103221062310924112251172612027128281362914030143311483215133156341613516336168371713817739183401884119342196432014420745212462174722248225492325023651239522435324554250552535625957263582665927060274612781721131441751962272583293510401142124913551463156616711775188019832088219322100231032410725111261172712128123291273013131137152831141852362873383994110441151125313561465156716751784188619912096211022210423109241122512026126271322813529142301453115032155331583416235170361733717638180391834018541191421934320112263114165196237268329391045115212551362146915761683178618931996201002110422111231142411825122261242712728130291323013531138321423314434150351523615837164381673917240175411824218743191441984520546212472154821749221502255123052235532375424055244562485725558260592656027061275622811721131542052763173783994110451150125613621466156816721776188019861226311416521627730835941104411511255135814611564167017761878198220882194229823100241042510826111271171327312417523631734839943104716211317424529634740122631141652262673083593710391142124413501455156116641770187419802084218822922399241071427311416519626732836940104311481252135614591563166617711877198320892195221002310924116251202612427128281342913830145311543215833162341643516936176371793818239185401884119242195431974420145207142931642252863473984595010521158126313661469157416761779188319872090219522992310224107251112611527119281242912630130311333214113283134165216267338389411044114912511358146315701678178118841991209521101221052310824113251191225311413518624728831936103911431248135014561561166317671869197420762180228323882492142631041251662272583193810401147125013551460156716701774188013263114165186227248309331037113912421346144815521656175818621964206821742277238124852588269027952810029104301073111532121331243413035134361363714038145391484015041153421571521131942252763173884094310491156125813621465156816711775187819822087218922932397241002510826114271172812329128301341225311413518624728831934103811401245134714531555166017621866196920732176228123852490259526982710028103291071326310415517620726830934103911411244134814541560166517711873197520782182228423921225311416523627730834937104011461249135614641570152731141351762172783193310391142124813521455156116651769187513283104155216257298359411046115112551362146715731677178118881990209421100152731141451662272682893310371142124513491455155816631769132538410514617721825930103511391244135213283134185246277338359401043114612491354146214293124165196247268309361041114312491352145715591664176718741977208121862290239224991327310413520622725830933103711431246135014541556166413273941351862372883093510401144124813561527311414518623728830938142831341751962472983293710411145124813501455156016621766186919722078218422882391249625982610612253841351661972682993110341138124213451447155116531758186419672072217722802386249225962610127106281102911630121311293213133133341383514236145371483815039155401621428313420524630736838943104811501256135814641566167017761883198520892191229623982410325106261092711228114291203012431126321323313634140132831341551862072683193810401144124813521226311416521625732836943105011521257136214681227312414516619721823928103311381241134814501552165617591866196820722176228023842488162831441652162472683393710411145124917215322429533636740845947105111561260136413263841151562072382793110351137124113451449132739413515618726832936103811421247135014541559166217641867197112263124145196247318339381040114512501354146215651669177518781983208821942299231052410925114261162712128127291323013431137321433314934151351573616037165381683917040175411824218543188441924519746200472044820649208502125121652221532265422855231562355723758241592476025061252622586326164265652676627367277682811621131742252563073584094210461150125313571461156416691773187619802085219022962398241022510526113142113174245286317358379431045114812511354145915681329316420523627731834941104611521257136214721580168317911893199720101211072211123116241192512426129271352813829144301503115432159331623416435168361713717538179391854018741195162113154175226287348409461052115812641369147415811685178818921994209721102221042310724109251132611627120281242913030132311401629315420523627732835938104211441251135814651568167117751881198420872191229323100241042511026117162931641952362773083393510391142124613501456155816661721131742252763073383793910451152125613611466156916731777188019842091219422982310024104251072611227116281202912730130311333213733143341463515136155371623816439166401714117942186431894419345199462044721148214492185022151228132731241551962372683093710441146125213541457155916631767187119742079218422882392249625982610427108281142911730122311243212933136152133184215256277318359391045122631141651862473083894410491155125813611467157116751779188119852087219122962310414293114175206277318379411043114912541358146215641668177418761979208121852292239524972510226104271102811615210315421526632737840947105111561260136714741580122631141651862272682893210361140124413481453156016641767187519792082219022972399241032510726110271162812029124301273113032134331393414135145361503715438158142931341952563073584194710531159126213681327311417523628731834938104011481226311416518624729835940104411491251135614611567166917741881198720932197229923103241091421031341952663073583894310461148125412243741351562172482792910331138124113451450155316571759186219652071217712243104135156187238269301032113612401344144815521656176218711975208221872289239424982510026104271101421031541952262773383693810431145125013541457156216681429313420522627735841946105011521257136314210319427529634739845950105411561261136715211313417523626732838941104611481252136014641567167117781883198720892193229723992410225108261132712028125291323014031143321463315334157351633616737172381783918240188411904219543200442054520746210472181325384145196257318359421052115612621327313420528631735840942104611521254135914621565167117751878198420892193229623982410412263124155176217258279301033113512391342144615521657176218641969207121752277238124862594122437413517620723826932103911471250135414591561166517721877198120832187229123932496251022610727110281132911630121311291227312418523632740842945105011561261136514701573167617811884198620921328313416523630735839943104811521255135714611567167217771883198916293134175226277298329361041114312471352145615601665176918721978132631141651862272483093310371141124713491452155916651769187219772080218222862391249425972610127105281102911630121311243213233134341391326311416518622726831934103611391242134514491552165417601863196920742179228423882492259614210313417527632736840122831141551862272482792910331138124213471451155716631767187019742077218322852389249225981229311414518620722826929103211351239134414461552165812243741351562072282793010341137124313481451155316571759186219682073217822802384249013283134155186257288329371042114512491352145515591665177115273144165206257298319361042132831241852362873283493810411147124913521456156116641770187219781328314419525628732836938104511511255136014641570152831341852362873484094610521158126213671472157716821785189019932096211002210623113241182512026128142931141551862472783393710391144124713521454155816641768187219792081218913263841251762072582793110361138124413481450155516631721131441952362772983494110471151125513591467162113174245296347401226311416518624729831934103811411244135014521556165817611869152831341752262673283694010441146125212293134195216287328399421047115412611366147015761678178218841990209621982210423106241112511526118271202812329128301333113732140331453415235155361603716738174391784018241186421894319444199452051226311416520625732840948105111531256136314711576168214283154175216267338419431048115512611363146615701673177918821986209217211318424531634740847951105411601266137213263114165226307348389431046114812531359146515731675178018861988209321100221052310824116122631141652462873283493910441150125713621466156816731779188219872090219322962310024104122631141651862472983493710401144124813541459156216641767186919742078218022832386249025942698271042810629111301153112132123331263412935134361393714338147391504015441157421604316344166451724617647179481844918850190511961326394145206257288369401045114812521354145815621668177218761980208613273134185246297348409461052116012631370147215761680178218841992209521972210223105241092511226115271191628312416522625729833937122531141452062572983193610391145122439415521624729833939104511491251135514621567167312263114165186247268319331036113912441347145315571660176418701973207621792283238724922596261001227310412517619725828934122539411516619724827932103511381242134714521558166117651870197720792185142731041651962172582993310391144124913511456156016661770187319792081218722912394241001226311416521627729834936103811411248135114551561166617731876198020861226311416521626729832937104211451251135614591562166617681873197520802182228623912493259826106271112811629125301273113032136331433414835150361563715838163391654016941172421754317744181451844618847193481974920050203512065221313263941452062473083694310451150125513601468157516801788189119932010121104221112311424117251202612813273941452262573083293810401143124813511458156416681775188019822086219122991327311416521625730835937104011431246134914531559122539411515618722826931103511391245134714521556166117651870197220772182228523902496251032611127119281222912630128311333213833143341483515336157371623816639171401764118242189431944419745201462074721248215492195022251229522325323454239552475625157256582615926560267612706227363276642801328311420522627729836941104511501255136112253144165206237278299351038114012441349145415561662176518701974207621802286152931141551962573183693810401146125113561458156613273104145196237278329371039114512491352145615621668177218751982208621892297132731041652162472883193510391144124913511456156016621770132631041251661972382793010351142124613511453155616601763186919712075217722792383248525882690279328952998301023110532110331143411635118361223712538129391314013341137421404314344147451531225384115136197218239291033113612411345145015551657176018641968207521782281238724922596269927101281042910812283134185216257288329351041114713273104135176257308339371041114312481355146115651669177218761980208521882291239624102132631442052362773083393510381142152831241552362973384094610481153125813631469122631141351661872182592910331137123913431449132739417520625729833939104411461252132931141451662072482793210361142132831341652162573183693810431145125313273941551762272482793310351140124213441448155116581764186919752081218822922394249925108261152712228124291293013331138132831241751962473083794110461151125313561459156216661621031441852162473083493810431145124713531329313420524631736838944142103144165206247308359391041114612481356122739414516622725828933104112253749517623725828931103411381244135214551558166517671870197320782183228923922494251001325384105156227258319371226310414518622730836939104311461250135214551559166117651868197020742177228223842492122539411515618722825929122639414517621725830936132831241551862272482792910321137124113441447154916521756132931241752062673212243741151661872282693010361141124413471453156016621765186819732080218222842388249225962698271002810429106301103111232115331193412435128361313713715212318425528634741846951105711601262136813273104155186227268289311037114012421346145414210315417521626732835942104711511257122437413516618723828932103411371243142731241552162472883093510411527312416522625731835937104311461252135614591563166517681870197620792182228523902498251022610727112281142911730120311263213313283114175206237298329381041114713263841351662172782993410371140124413491453155816601768122538410515620722825928103211381241134514481553166016283104135196257288319391326384135166207238279301035114012431348145115571663176618701976122531041552062472783093610421146125113531459156216641769187319762082218922922398241012510426106271111329315418521625731837940104511501254136012263941551962573083293910431151125613601466142831141351762372682893310391142124713521455155916651769187319772079218222901326394135206237298319361040114212471349145315551661176818721975207821822288239124962599261042710628114142103154215286347388409441050162103134175206227258279291033113712401342144615491653175918611967132539411516619723827934103711401247134914541556166217641867196920722176228216211318420524626733835938104211471250135314581561166517711229311416520624726831937104111451250135214561562122631141651862372782993210381140124614210313416518622730838945105011571527312417523627730836940104311501252135714631428310415517622727832934103711401243134814511556166317671871197320791428313418523629732834942122831041351762273083493710431145124813511455156116631767187019742080218222842390122931141652062472883093410361140124313481456132731541852463173483794210451148125313561458156416211318423529632737843122438411515620724827931103611391243134614491552165417581861196320672170227223742479258526922796281031527312418520626729833936103911411245134814511555166017651327312417521628734840944104611501252135814601563166617681873197820802183229023952497251051529314418525631733837942104411491253135714621571142831341952662973383894110451148125213581461156316661770187419802082218522872391249625100261042710815293154235276351225394115156207258279301034113612381342144915511655175818611964206621741225384125146177238259271031113312411343144515501653175618591963206621692277122436410512620722826931103511411246135014591521031541752362672883393510371141124713501454155616601763186919722075217722822387249025932696271002810329105301093111313273144205256277328399411047115012551358146215641668177418761982208521892295132931241752262773183493710401145125013551460156316651771122639413519623726828933103611401248122431041251762172783393810431146125213541457156316651773122631241651962172482693010361224310413515619724829931103611381240134314491551165717611866197120742177228123842488259426992710514263104135176197228279321326311415521142831341952162773283693910451147125113551459156516721775187919822088219022952310313263114165186247268299331037114212471328314419523628734840946105011521254135814611564166817711874197620792183228623892493259626100271022810529107301113111532120331253413135134361393714238146391484015241157421614316444169451751227394125166187208269291034113812411348145115531658176218671974208221842289239424962510126107271102811529120301223112432127331313413335138361443714938152391601329315421524628732838132731041852462973383793910441148125213551460156316671769187419782083219122942310024106132631341852162673283693910431148125013541458152831542052863474084295014263104155186237268299321036113912421344144715541427312417520623726830933103611391241134614491555165717621869142731241752062372682993310371141124413461449155216561759186513273114155186267328379401043114512531529312420522626729833936104011421248135014531555165917621866196920722174227723812485259214283104165196257298359401042114412481350145515611664177218751981208321872293152103134195266307358389431046115214293164235266307348399411045114712501354145816283134195226277328379391042114512501355146215671672177718831988209221100162113164225246267341821431942452863373684413293174255356437468509561326310414516618722824929103211381242134614481553165915210317423529636739843946105111541259136214661571167417811521031341752462973183393910431147124913511454155816661328312414518620725827931103511381241134314461548165017541860196420672169227323772481258626932799281062911230117311233212533127341333513736140371463814839152401544115842160431654417114283154205246287318359411043114812511356146215681675178118831986208921952210213273104155186227268289311035113812411344144815511654175718621965206721712275237824812583269127932898291033011231117321233312934135351403614537149381543915740161411674217043174441774518146186471884819349201142113164195266297328389401047115112571360146315671674177918841988209221972210023104241092511226116271182812229128122631041452062472883093510401145124713511455155916631769142113154205246307368429451050115612621327310413519626729831936104011461248135314591563166913273134155186237298369381043114912531359132731141351962272983193510371140124713501454155816611764187119742079218122862391249625101261032710828116291233012931133321393314534148351523615537159381643916640168411724217743181441871629314418524630732836941104511481254136014631568142123184215256277308339361038114312471349145215551658176118651428312414517620722826928103111381241134414461549165312273144175216287318379431227312414518621725831934103711431246134914541559152931542352763473884414263104145166197218249271029113412361344132631041251862172783293710401143124813531328313418520623727833937104111451248135214561559166217671869197220762182228923922497251031721231542252563173484094310451149125513581462156516711775187819822084219015212320423525631733836939104511471254136013273124175256317378439481050115312571359146415711674177618801984208821942210015210313416520626731836940104511481251135514601565166817711874197620812186228923951621031542052262873584295110531155126215293144185216257298349401045115112581364147015731677177918821987209021952297231051428311415520622726833936104211481326310412514619724826930103411361242134514491552165417571863122537411513616718823926103011391528311414518622724828934104013263941551862172482893210351138124113431446155116541756186319672070217522812389249325962698271012810329107301161529314420522627733838944104711521259132931241451862172582993310371140124813541457156516741777188519892096142731141952562773183593710391144124713511453156016631768187219762079218722892394241001521031241451862373083794110441150125313601463156914210313418520624727831934103611401243134714511555165817621868197320782184228823912495251002610427107281122911813263104125176217258329351038114012441348145215561660176518691971207721812285238924942597261022710428110142831141852062573183594113263124155196227278309351041142103154175216257278359371042114612541356146115651671177618801986209121952299231022410525110261162712228126291293013131134321383314034143351473615115293124205246277328381226310416519624727831936104111461255135914641567167217771880198620922198221042311024113251192612327128281341325374105136177228269321038142931241752062372883193714293114175196227288359371042114412481351145715591663176618711224310413516620727122437413516623726830934104011421246134814531558166117631867197516293124155176227308359411044114712531357146515681671177918821985208821922295239824101251042610727110281172912030122311281528313415523626733840947105511601265136814711575167717821887199020961629314418521623729832934103811441250135414601566166817741877198120862192229623103241062511126117162831041451762472983694110441151125413571461156416671772187919842087219122951225310415522626730833939104111461250135614591563166517691872197720831327311415522626733839945105111551263137014771581168717911893199720100211042210923112241152512026123271292813229134301373114513210315420524627732836939104511501257136014631566167016211313418523626731836938104511481250135814611567167117761884199020942196221002310613283134165216267288359381040114812511357146115661674177618801985208721922296231002410325107261102711528118291223012631130321353313934142351443614837150381543915940167122437495116157188239261030113512381340144415481650175318591961206421692273237624782582268527892893299530983110232105331083411135114361173712038124391281429314419521623726829934104011451250135714601562166617731875198220842186229123952498251052611127115281221328311415517621726829932103611381243135115210316418521625727833936104211451250135214551559166217671869197420772182228723892491259626982710128108291113011331119321223312634129351333613637142122631141852162473083612253124175236257298329351038114312461350145415571661176618711976208321892291239724104251072611227118122831141351662072582893410361140125013561459156516721774187919822088219422972310324110251122611527119281222912530128311343213933143341463515036153371583816239167401694117442180132931241852162672883293510391143124913541462156816701774187819812086219022942310124104251072610927113281182912230127311313213633138341433514913263114185256287348399441047114912541358146315651670177512273114175226257298339401043114612501355146015651669177514283154205276337388441228312416522625732834939104211451247135414611228310413517622728832936104011431248135214541558166217671870197420772180228523892493259726102271072811329115301213112432130331333413835144122831141351962772983393610381142124513491452155516591762186619692071217522792386248825912695279728100291023010631108321153311934121351283613137138122731241752362773083493610391143124813511455155716631766187119771225312415518625728831938104111451248135314561558166412263114145176217278319351038114512501353145615581666122439414520626729831939122638413517621724832122631041451762072282492710301134123613391442154716501753185819612065216722702374248025872690279428972910413273124175226267318349371042114912511353145815601663176718731977208221861414283124155186207248279301035113712421350162831241751962372683293410381144124913511457132539417523628733835937104313263124145196247278299341037114012461721231642152863616211315418521627162113154185226297358379451326313419524629735838943105011561421031241752362673083594010421148142113134205226267348409441050115312581360146315651673132539412516618723826929103211351241134314461552165417571328312415519621723828932103711401242135013293124155211326384161327314420523628736122931141452062372883193810411148125113541460156613273114175236267308349401044114812541326310413518623727829932103711401245134814541560166217701529316421525627731836938104511491251135714621564166717731876197820832188229023952497251051821131541852617212316420526629733840945105111571259136214671575168017831889199120962110222106231102411225119261232712628130142831341952262472883193810441146125413293144185216257278329371042114512481327312417523628734122538410516621726831937104211471253135614591562166417681872197720831225384105176247278319371039114412481353146015671674177718821984209021922295239724103251062611127119281252913030132311381429314419524629735840945104811501252135614581562167017771880198420862188229412253841452162773083293610421148125013551458156316691528314416521628732838946105211541257136114681572167812253841251862172382793210391142124813511453155616641224374115156197238299371039114412461348145315581660176618721977208021872291239524101251052611112263941251962172482893110341140124613501454155716631768187019722076217822842387249325962610027102281042911014273104145176227248329361039114712253841151862172583093510401143124713521455155816631766186819741621131842753163674184694810521158132731041551862272682893110371142124813541456156216651768187419792087219222952397241012510626108271112811529120301243112732133331363414235146361513715713293114145166197218269281032113812401345144915531656176018651968207121782282238724912597261042710828113291193012431129321333313534140351433614637149381533915540161152113184215246277328349371043114912521356146212273124195286327348389411046115212551361146615691672177718791981208721922296231041325394135166217258309341042162113174255276317358389431048115312581360146415701628310416518620724826931103811441249135214561561166517681871197720812183228823922495259926102271062811129117301193112332128331373414035144361501521031542052562772983493610411145124813511456155816611765186819732076218022842389249125952699271022811015210312416520628732835942104817211315422526632735842948105311581260136414691571167817811887142831542052563073583994110471149125413621521031742253063774284494810521157126013641472162113174195256297348409451047115012551358146215681521031542052562773383894010451147125013551459156416661770187619792087152113164205256317378439491055115812621366147115741677178218891995142103154215246277308359391045122831141752062473083493910431145124813501454155716611766186919722074217922862389249125942699271022810629109301133111532120331263412935133361353714038146122631041451762573183393610401142124713501455155916641770187519802086219222992310524110251132611527120281262913130135311373214515293144195226247278351329311416519626732836941104311471251135514571565132731141752162472783293510381142124713521457156116641771187319782085218722892391249825102261062711228117291231621131542052462773283593710411144124813521456156216661772132931341652062472682993510391141124413461449155316561760186519692072217613283104145176227248289321325384115136187238279291031113916212315420523628730834936103811441729314417519623726829933104011471253135916214320423525630737842947105411581263136714711427312416519621724830934103611391241134414481552165713283134185206247278329341039114312481350145813253841151361872382792910311139162123154195226267301729314417519623726829933104011471249135414591561166417671870197620782183228723942498251022610727113152113164205246287308339371043114812511356145815611663177113253841351561972282693610381143125113551462156416671771187419762081218922922396249825107182143174225256317358409451052115512601366142831341852162372683293610381141124313461450155216581762186419682071217522792382248525912695279728100291043010731113321173312434128351321729314419521624727833935104011461248135414591566167217771884198820922195221002310224107251131328313421523627732840943104611501257135914641568167017731878198120842188229023961328316419524629731837162123174195226267328349381043114612511353145615581666172133204225276331529313415518621728833936104111441248135014551563152731041552162873083593810401143124513531421031642052262573183393710401146132631041451761972483193310391143124713541821331642252662873617212316421524627732840142831341852162372683293610381141124313461450155216581762186419682074217922872390249625101261082711128117291193012431127321343313834141351443614637150381561329312416522628730834938104011431245135314571564166617701875198120882191229423992410713263114155206257308329381040114612531356146015641669177218751983132831342152362773483694010461151125413561462156416701772187719802084218722931229312416520622726828933103611381243134714511554165817611863196720712174227623802484258826912795289729100301043110732111331173412135125361303713438139391444014841151421591429314419521625728834939104311461253172133204225276331521031541852062572983493910441149125113591529313415518621728834937104211451249135214551558166413293114155176207238289331041114812531359122731141752362673083693810401146125213591467157116741776188213253841351862473083594010421148125413581463157116741779188515283134155216267318349401528313415521626729832938172103144175216247288319361044142731241752262472783293410361140124713541459156216681771187319791328311415517624728834939104711501255136214651570167217751879198320872190229423102132831541752062372883494112273941451862572883393810441147125213551458156316711428310415518622724826934142739411515618722825929103111361241134314471552165517581865132538411515618721823926102811361529313415520624142731141351862613283104135186207238289321426312414519624730152931441952162873415283124161421031542052262573083293510381146132631141452215273114145166207248269301033114013283124175226267318419471051115517210314416519623727829933103511411428312414519625162113194251521131715293124201226312132831341551862072382692810311135124213441451155816621767187119771621231942152562773584115283114155221327310413515619724828931103711411245135014541560166614293114145196237278329391041114612511357146015651672177918851989209421100132731242052563273483994210481150125413561461156916761521131341651862472783093210371140124313471449155316581767186919742079218222881429311416523627729836941104714210316421524627730835939104511501253135614591563166917721876198020862188229416210315417519622729832935103811401247172123194265326407458499551064117012741380142731241752262472883193410371140124313471450155416571762186819702077218022832390142931341852162472683293510371143182123214235276327378449501054116017212317422530635740848952105811621266137014731579168217851892199520100211062210823111241152512026125271282813329139172113184235286317348409431048115112561358146215661669177318761979208321862290239324991227311413515618723825930103613273114175216247298329401321131341552062873183794310501158126413671471157516771781188517211317421530634737842945105111551259136314681573167917811885199020932197221012310914273114195246277308329361040114412471349145415581662176518701973207821832287239224962510026103271082811229115301183112232126331303413435137361433714638150391544015741165132539412519622727835942104511471252135514571565162831041751962172482993610391142124713511455155916651772187819812089152731241752462673183593910421146124813511453155916621765186919732078218022862391249425982610227106281122911730120311253213033137341433514736153162113184235296337408429471050115212571363152831241451862072582993310351139124213461449155116571760186619712077218322891427394155206247268309351038114012461350145515581664176618741427311414518623727830935104311451249135514581562166717741878198220862190229423972410025102261042710928118291243013231135321393314134148351513615737159381643917213253941151662372583093410381146122731341852562873083493810401146125213571461156916211318420525627732838940104311451250135514591427394135186217288319371040114512501352145715631621031441952363173584194710501152125413571464156616691774188119842087219422972399241012510426109271122811529117301213112632128331323413535140361453714838155391594016241170152831041351962372683293510391143124613511455155716591763186919732075217822862391249625102261082711428116291233012915211317422527631737843948105011571265137114791586168817941898191012010821113221182312524129251332613827146281502915430159311653217033172341783518436191371963820039204402074121242214432221224384135166207248299341038114012431351145715591662176518671971207621822287239324982510326107271112811629123301303113532141132631041351862372683218213317423527634737841943105011541256136014651570167717801885198920932195229823100241042511026116271212812729134301393114332150331543415635161361633717038173391794018341188421944320013263941551862472983393610401146124913561461156516691772188019852093142931441852262572983293510421147125113531459156216671773172931541952362873383594010421147124913551462156516701774187819802086218822942398241042510726112271181327310414516621725829935103711431248135314581563166617701876198114283104155176237288339351040114612511356146115651668177318791428310412516619723826931103511411327310416521624727834936104211451251135314561561166717711876198018210315419523631736839942105011581266137114771426311414519625731834937104311501255135814611566166917731879198220862191229623102241042510626112271152811929122301263113232134331373414335149361523715738162391664017216212319426532635737841944105213283134185226257308339371040114412461353145715641666176918741979132639411514617719825931103811411247135114561561166417691871197720802187229023932495259826104122831241652262472783193510371142125013531456156415293154215271429312416522628734838944105111551257136413273144175226267298349391043114812521357145915631667177118731978208221852288239324982510326110271152812029125301321327312417522629736841947122539412519622726832934104214293144195216257318349381040114612491353145715591665176818721976207821842287239224100251022610427107281122911430122142113174235266317368429441050115612581363146914293124175226257311621131842752963273484015283104145181421131342052262572782993210361140142103124175256317348379411043114612491352145415581660176518701974207821822288122631041351761972582793410401729315419525627731836939104211441250135614591561166517671875198120832189229223962410325107261102711428116291203012531128321323313634140351453614737153122438413517620723826928103111351238134114451550165817601865196820722177227923822485258926942798281041226311413516621725829934103911441248135414581562166717711873197720822186229023952498251042610927115281172912514210315419521626730836942104611491255172931141551962272813211314418521627733132931241751962673083594410461150125612273124145176217258329391049115212541358146414283134165186217248309331035113812421348145115531656176018661969207121762283238524902593269912263104145176237268319391621131341751962773283594110471329312417519625731837941104411461252122731141752262473214210312419522628733836940104412273124155196237258329381042114412501821531742152362573114263114155206247328349381042114412481351145315561659176418661970207421792283238914273134215236307358411528310414519624728833935104011461253135614591561166912273104135156237258319391042114817293164185256287358419451052115512601367147115771679178318891421231742052362773183794110451150125513611467157116751782152113174215286341527315418521626729833939104311471328311413517622725830932104011471821031441952362873483794210451151132831241652562973283894010431146125213561459156416681770187319772084218922932310114283134195226257331221031442152462773283693810461152132731141451862572783393610411144124613491453155516591763186712283144185216267318339391042114912511356146015631670177618791985209021922299122639412520623727833938104311481250135414591564166917761879198620932197229923103132831341752362673183594110441148125213581421031342152563012263114165196247298349381041114712541328313417520626731833939104211451248135114551557166117671871197520811321031441852362673083293610401144124713531461156416681772187419782082218614273114155186261221031341852362673283593810411144125013531456156016641769187319762080218322872389249712263114165226267328359401043114812541329315420525628730836122431041351762172683193310391326310414518625728834940104311491226311416524627734837942104511511258136014641568167117761881198520892195162103124175226277318359421044114812521358172931341752562773283894010471152125813641469157516771784188919951226311416518624728835942105011551261172113184265306337378419441048122631141651862372783193410401145124913561461156416691771187619821327394145196267288349361042114912541358146315661674142831341952462673183393710421145124813501453155616621769132831341551862172382792910331138124313481450155616581763186819721326310417521625728831935104111441252132639415519622727829935104111441249135614581565166817751879198520872193132631241552062372783393910451148125213581227312418525631733837941105111531257136214661568167417801885198820922198152931541752262773383794010431149125413601462156616711773188112273124145206247278299311034113712431346144915521659182113134175216267318349371040114612491353145615621666132831541752162773083694010461721131641852162472783193810421148125613651469157516771781188619912094211002210323108241112511826121271262813329138301413114332146331501226313419522629735841945104911521259136714691576168017851889199320962110222107231092411225114261182712328125291273012931133321363314034145351491228312414519624727833938104411531255136014641568167117741878198220881321131342052262873384094210481153125713611464157016741778188219881226311416519624727834941104511501255136117211317420527634739844951105311571259136713293154205226287328379421048115012541358146315661672177613263941652362772983393610411143124813521455155816621767187419772080218522892392249625100261032710628108291103011431117321213312534130351343614012263154215236297328349391044114712521355145915621666177018741326384135186237318379431051115712611367132631041651962372683193714263114175196247298349381044114812551357146115641668177413263104125146197238299321035113812441346145315561660176418681426311417519624729834938104711541261136314681571167617821224310413517622727830932103815210314416522627729831934103711391244142113134185226257278329371043142931141451962472983293610381142124413471455132831341852362772983516293114185206237268309351041114312461350145615621664176918711979208321892292239824100251032610527109281132911630121311263212833134132831341852162672983393610381144125013293114175206247288309341038114312531427313415520622724829934103611401243134914531557166017651868197220761226311415519622727829937122631141452262573183393610401145125113571463156616691773187719832087218922942399241042510726109271151427311415519621725829932103511391243134814541560166317661870197320792184228823922497259926107122539411515617721824928103011351241134414501555165917651870197420781428310414517622726831935103915283134185226287328349381042114612263114135166187248269321034113812421344145015541659176318661969207321782281238624902594132931541852362772983293710411146125013541227312419526634741843947105111571261136714721577168317861892199720100211072210923112241142512126123271262812929136301393114832150331553416135166361693717238175391804018641191421964319944205452091621131642252562873483794110431148125313571621131842552763173584194510511156125813661469157216771781188516211313416523630734840944104911561261136514691571167517791881198520882191229515273114175206257318339411628313418522629733836941104511481252135614641527311417520625728832938104011441248135014581564166717711874197720802183228923962410025103261082711228116291213012631131321351328314416524626728835939104211491254135814641569167417771882198420882191229814293154205276357388469521060116712701372147615791684179118971910220108211132211923121241252512926133132638416523628731835939104311451250135514581563166617681874132731541852162572983493710421148125113571463156616741777188619892091219522982310513263124175196257298329351038114512531358146415711677162113154195246297318369401043114512501356122831041451762072382993110391328315421526632740842947105211581262136813283154175206257318339381045114912541358146015651668177318791321031441952663173784394610521155125813661471157416761781188319872093172133174245306377428469501053115915283144195236267288329371041114512273941551962372783293810421145125113531456156016631768187119792084218922932396241021225313415521626730836939104511511256136014671570167517771883142831341751962272783393810431149125313591462156516681772187619812083218922912399162113164225286347378409451051115612611363146715711673177918821986209121932297231022411015210317424526630734842949105311571260136414701572168016210315418524629732836940104416210314416520624727831122631141651862473083894410461153125813611468157116771781188719892097122437413521629737845951106111671272137814841591169417991810119105201112111622118231232413025133261372714128146291513015331157321623317013283124145196247288329341041114712501353145715611666177118761979208321852290239612263104165196247288369411046114812531357146215671671177518831226310412515618721823927103211361240122631141652062873183494010461152125513601463156616701774187819842088219022942396249925101261052710928113162113134195246277338389411047114912521356146215651671177418781980208521902296239924104251102611227114281172912315211315418522627734840943104711501255136314701573167817831885198820942198221012310716213321427529632736843946105011531258136114681572167717791882198520872193229623102162831441752162973483894110431146125013531456156412263104155216257298359381043114612491352146012263114165186237258329401047115212571364147015721676178018861992209721103221062311424116251202612427130281352913913273124145176217268299351042114912521354145915661672177418781984122531141451862272582993110351139124213451453155916631768187119742079218422872393249725103261102711828122291253013431138321453314734151351533616014210315417522625727832937104311471255135914671570167217751879198520872190229423972410025103261102711528117291213012631134122631141651862172482793010361138124213461453155616611767187419802082218822912395241012510726109271152811829122132931542052563273684194410491153125813611463156616701329312416520622727832937104111461248135114531558166017641870197220762178228223862491259526101271052811029115301173112232126331303413535140361463715138155391574016341168421724317616211317424532639741845949105311561259136114651571122539414519624731835939104411491257136214641571167717811887199320982110222106231131327310412516619722827929103411391244135212293144205256317368389451053116012651369147714211316418524629735840947105311561258136314701329315421523626730833937104511511255136114631571122731141351962272783594110481154125913651468157316771786132931541752062672883493710401144124813511455155816641527311415517620725828930103611411244134814541563122631041551862272783393510401145124713501457156016651224310413515618722825927103311371241134814561224310413516620728832937104011421248135214571559166317651872197920822186229312283124145186207258299331037114112471328310414518625728832937104211491252135714631566166917741877198320862189229513283154185256297338379441047114912551361146615721675178117212316421524626730836939104512273114135196217268319351038114415273124145216247298339371040114212471351145415561662132731141351862272883493910431150125413561460156616691772187619821421131842753664174985595810641173127613801484158816941799181011910520110211142211815210315420527629732834937104011431247135214571565167017751880198420902195229923103241062511026114162113144215266327358379421044114912551329312414519623729832934103711411246135014531558166414213315419524628734837939104511471255135714611565166717731421031642052362773283494010461152125613641229311416519626728831933103811421246135114561561166719219324426529635742848950105711641270137414781584168617951897191051327316426533636740846950105211571263136714711575167916283134185216257288339391046115512621371147815811687179218941999201062111122116231212412625130261372713928145291523015831160321681328311416518623726829933103811421249135514591569167417791887199020932197221042310824113251192612519218323429532638746852954106011671273137914851592169617102181071911420118211202212423128241321327315424528632734839946105211561262136614681572167517811883198720912194229623101241071226311415521631736841948105211561262162113134185226277318369421045115212571360146215681671177618791981208721912297239924103251062611227114281182912130124311303213633140341453515036152371583816539168401714117342178431804418345186461901527311415518623725829935104211441252142931141552062272883193717212314420523626732835941104511471252135614611567132931141551962373083393710411147152113194215296317388449461051115412591366147015731677178118851989209316293114135196227248309331038114112441348145215551658176318681973207921842286239024952510313211318422526630736838945105311601262136614701576167817841886199020922195229923102241052510726112271181821332042552963273784313273114145196237328389411043114912521356145915661669177318771982208921922295231022410425112132639412516619723826929103211361240134514501556166217651871132831542352763173583794310461148125413591465156816741429313415520625732834939104611501255135914651569167217741882142731341552262672983593810401146132931542052362973784495010531160126613681476132731041451862072583293810421145125013561421231442152662973383894310471153125813631468157216761780132631341651962572883193610381143124513511454155716621765187119732076218422862390249525992610313263114145166207278309321035113712431347145215591663176518701974207721822284239014210313418527630736840943104911511258136214661569167517781880198617212315420525627729836938104211451247135214561558166517701874197920852187229223952499251042611227119281222912630132172123154185256307378419481052115612591366147015741677178218881629315419522627731834938104011441246135114591721031442052562873483894010441148125113561461156516691321031241651862272783393610431148125313581463156716711321031241652162773283793910431148125113551461156716701774187819812088219222942399241012510526109271131921631842753564174885495710611165127013731477158016841788189319100201062111022114231172412225128142931141852562873183894310461152125413601463156916761781188319882091219522991621332042552963473884294510491151125513601462156616701774122431141552162873183493910411146124913521457156116651329311415517621727829934103911461249135314551561166713293144185236297388459481052115712651372147515791685162113154195226287328369411046115012541621231742252763473784595210551159126313691471157416811783188819912097211022210623110241171225384125176207238299311034113712401342144615491652175618611963207021752278238614273134165206227268329351037113912421348145115541657176018661968207021732277238224842588269327101122631341752162572783393610381142124813531457156112263114135216277358389411046115312551359146315701677178118851988209021972210523112241152511926124271262813029139301453114932155331573416135163361683717418216324432540648755863971107311791288139314971510116109122531041652162373183994210471151125513571460156216661769187319782084132631342052562873083594010441148125213541457156016631767187019722079218422881326310414518621723828931103511381240134514471551165417571861122638411519625729834937104011421245134914511554165717611326310413518628736841947104911531259136114641566166917731877198120852187229023952498251012610527109142113164215246277318369411044114812531358146415691671177318771979208321862290239224952510026107271092811329115301213112712263114165216257318339411225394165196247268339351042114412481352145515611668177018741977208221842290239324962599261022710728109291133011731120321253313034134351403614337149381513915440158411614216443167441694517246176471784818249184501885119152199132931341852162672983594010431146124913561460156416661771187713263144215256307338359371041114512501358146015651673177818811986209121962210212263114165226277338359411048115212561363146515691671177814263114155206227268309351038114412481353145815651671177418821429311417520627731834939104511481254142831241852062272582893010351137123913451448155016561426311415518623726829931103611381241134314501553165717631868197120732179132831241452062472883093410381143125213561460132831141551962172482792910331138124113431448155413263104165221429313415521624727831933103711421246135114561558166117641867197020742177228523872490259526991226310414517625731833936104011421247135014551559166417661868197220752177228023842488259226962710328107291131421031541852262572883293710391144124913541459156516731779188519902093219722992310324108251122611527120281261226394145186247288339381045114812541361146315661670177318761981208521912295231011224310415522625728832934104211481253135714621227394145206257328389461049115512571359146515711521131641952463012273124185266327368449481050115512621364146815741621031642152863273684094610481153125613581466132731141652062973583994410491153125813601465157116731780188614263134175226277298349361041114512501353145615581661176318681971207321762280238324912593269827104142103164185236267318389431051115412591366147015741679178712293144165216237288339361042142831341952462773283493910451148125313561459156116651767186919732075217722822384248925932695279928102291043010831111321143311834120351243612737131381343913812243741151361872382693210341137124113451449155116551759186513273104155186227268289311037114012421346145417293124165186207258289341041114612531356146015621669177318761978208221842292239524972510226108271142811729123132631141451762273083593910431145124813521457156116641771172113154195226247278309341039114212501353145715591668142931441852062372783293510381141124313491451155516591763186519702076217822841226312414518624727830934103611411246134914531557166317661872197520792185229023922494259826103271072811129114301183112232128331303413535138361453714738150391564015841166142103134155206227278319351037114112461350145515581664176818741980208221872293231002410325107261131427313419523630732838944104611501255135814621567167517781881198520902196221022310524110251142612027125281302913530139311413214633154341593516236164371673817339177401814118742191431981529312415521626728832935103911451521131742352663073683994210451150125513601462156616721621131842252663273984294410471149125313551459156416691775187919812086219122962310124106251082611227118142103154175216267328389421050115612611365147215741678178318891429314419525627730832939104615293114145166217268299331039114312461350145215571663122431041251862472783193610441147125113551457156216671772187419782081218522902398241022510526109271141529313417522625729832938104211481427311414517622727831933103912243641351561972482693110331137124113461448155316571763122436413515619722826928103211361240134414481551165517581860196420672169227323762478258226852788289129971327313416519621725827931103311371241134314471551165417601326394155176227248279311035114012441347145115571663176518681971207321752283122831441652162673083693810451147125013541456156016661227310412518623727832938104211451250135214571562166517681873198115273114135186207228269281032113612451328311413517621726830936103911431247135114541560152731441852362773183493910411147152731141552062472983293710391145122638412517621725830936104214210313415521624728830936104411491251135414591564166917731876198120871429312416521623730836942104411481252135514571563142731141551862472783293810411143124917210313418520624730122438413516619723826928103111351238134114441547165017551858196620702173228112283104155206257278329361042114512531326384115166187228259291031113912253104155206247298319361039114212461352110213315417519623726829932103611431325384115156177198249301032113812451348145215581662176718731976207821841325384105126207268299311034113812401344145015521658122631141652212263114135196247268309351038114012461350145515631226310417522630732835938104412283104145186217238269321035114012461348145215551658176018631967207313253104165196237288319381040114412471350145315581662176818701976132739412515619722824928103111371239134214451548165317581860196620692172227623782481258326882791289329983010131103321093311234116351183612137124381283913140133411374214113253114155176207258289301036152103164211329311417523626732834939104511491252135414591565132831341552062372883093610421325384105126207238259301033113712421347144915521656176118631969207221762279238124842590122639412517624727834939104111431246135114551561152931341752362573083293410361144124713491454155616611763186819722079218222862388249025961224394155186227278299351426312414519625727833939104511481253135914293124155176207258279301032113512381343144815551660176418681972207721842289239724992510126104271092811429117301193112432127331303413613293124185206237258299321035113912441346145015521660162133164195216267348399461051115612631368147115741679178712273941351762072583294010431148125513581463156516671770187419782081218522931227394145186247278329371044115312591363146914293134155206257278309341038132731441852162673083393610401148152113184215266307368419451053115512601363146615701677142931541852262614273134165196237288309341039142931241651862272482993110351141124313471449155316561764142831241952262573313263114145186207248279301032113712431345145115541659176318651970207421772285142831041351561972482993410401142124613521629313419523625731835940104815211313418526172103144195216257328369411048115412581365147115751683142831241551962472983394010421148125413581464156616711775187919822089219422972310324106251122611527119281252913113253104175256287348389431045115117211318423530635741845950105311561261136614691573167617781881198420882192229423972410425108261102711814273114145186207281621131642152462873183493910411146124813541461142931241952362673483694310461153125613611466156816711775188019832090219422992310224109132638410513619723828933103911451247135114541558166217641867197020752177228513283104155206257298349361044122731041551962272483013293114145176217278331529313417523630733836940104311481253135714611566166817741880198820912194132639413515617722826931103611401245134814541560132631041251661972382793210371140124513471453122831241452262873183594110471149125213541460132103134165206257298319361038114612491353145515641226311417522626729834937104512243841351561972182392510291132123613411447154916521756186019642068217222792384248625902692271001326310415520623728830938132638411515617719824927103111341238134214451547165513283124155186227248279291032113612401343144615511655175718591963206521702273237924851224384135156207248269301033113812431348145315561658176318661971207421772282238715273114155206237278319341037114513273124175196237258289321036132931241652062372683093513211315417522626732837941104411471251135514571559166217661869197420782182228723912494259813273134165196217248281327312418526629732835942104811521254135914621568167117751879198513253941151661972282693110361143125213541456156016641327310418524626729833937104111441249135614601564166817721875197920862188229123962410225107261122711428117291203012331127142931341952262573183793910441147125013561459156516691773187619782083218522931429316419523625732835938104311471421031541852262673283594210451148125213561328313419527632735840944104815293124145186227278299331035114112451349145315561658176118641967207121742278238324862588269127951228314416521625728832939104511471254135614591563166517691875142123154225266307348389411043114612491351145415581664122539415521628731836943104711501254135614621521031341651862472783293610381143124713521454155916651427310414516619725829932103511391243134714521557166217681870197320772179228123882494259926102271042810629110301133111632120331223412535129361333713838140391461327310415518622726831937104011441249135614611566167117741878198120852189229223100152103124165206287328359421044115015273134195216267298329351037114012441346145215571660176618681973208121862289239424100152103154215246287308359411225394115176197271227312418526633736840945105011551257136114671321131842453163874084795110551161142103144175216247278319351224310413517620724829933103611401429314419521625727831934103811431246135014551558166317651872197620812184228723902495259726100271022810729113132538414516619722826928103111371241134314471552165717671872197520811326384145186227248289311034113812411344144915541659176318681972207721822286239213263841451662072282893210381327310414519623726830935103811421245134814511555166017651871197320792183228723912495259826100271062810929112301153112315273104125196257318369391044114612491351145913273134155196217248279311038132931341551962172582893010331137124113431449155116551760186612283144165186257298359391043114612521528311414516620722826929103111331236133914441547165217581521031742352663373584094510491155152103154175216247268309351038114112431349145215561660176418671973142103124175216267308349381042132639414518624728832936103811401245135014551558166017631867197220752178228123842487259026941421031441752162773483693910441148132731041251562272783093410381140124413461449155316571760186319652073132731041351962172682993110351140124213451449155216541757186119672072217622782386142639414518621725830934103911431248135414571563166717711876198415283114155176197238259291032113612401344144815561325384115146167208239261029113312361341144315461648175018531956206021622266236824761325384125146167218239261028113012331337144115431650175318551963132538412517620726830934103711401243134714541556166117641868197213253104155216257278309361039114212461348145115541659176118681975142731241651962172483093410361139124113441448155016541757186312253741351762172382793010331137124213461452132631441852062572983393910441150125613591462156716701776188215273104125176227258289341040114212461349145215541661122639415518624728831934103811421249135214561559166512263134185206227281328311415518623725827931103411361239134714491552165517591865132831141852062572783293910421146125113541460156416661769187219742077218114273124175216277328359401043115112531357146114273124175216267308379401042114612501729312418522626733836938104211471251135414581562166517681428313418521623726832936103811411243134614501552165817601865197420782187228923942498251002610327107281111527311413516620725828931103811401244134614501556166117641866196920752179228313253841451661972282692810311137124013441447155316551759186119662069217722802385132639413517620723829933103511381242134514511555166217661870172113174195246297338369391042114714273124175226287338369411044114712501355145715601662176718731429314420527629735841132531041451761972382893210351139124414283134205276327378409441047115012521355145915631427313415518622727832936104011451247135014531559166217651868172123174255316347388439481426311415519623727831935103711401244134815212314417521625729836941104411491252135614601427394165216277338409421045114812293144185221229313415518621723826929103211371242134614491554142831341752062372783093410381141124413481529315419522625730836943104611481251135614611563166717701876198020832188229023942498251022610527109152831241451761972482692810321137123913431325374951261571782092310261130152731041351661972182693010341139124313451450155316581762186519682074217722832385249125932699271042810829113301181427312417523629736841946104811521257152831141451661872683114283134185216237268329361038114112431346145015531659176618741977208221862290239424992510326106271101326311418526632735841946105311561261136314681574142831141451662072682993210371142152731141752262472883093410401142124413481450155716591763186619702076218213253841451661972282692810311137124013441448155116551757186419672069217522782380248425872694279628102291053011131114321193312334128351333613713263841552062272883193310371140124313451448155116531756186019632066216922732378192133154205246267298339371527311413517622725829933103811421247135214561563166617691874197913253841351662172382793610421147124913521455156116651326312415522625729832938104011451249135414571559166317711874197820821427312417522628733836941104411491254135914651572167417801886132531041451762172682993310371421031442152763113283134205236287318349391044142831141852563073483994617293124165206277308359421325310415519623727831936132103144195256287328369421046115112531356146015621665176818711974207721802286238924941528311414517622725830932103611401244122437411514617721827930103311381240134514491552165713283114155201326384125156187238289311036142931341652162472883293716210312416524630733835938104111431246135014531557142931441752262873283493810461152125513571460156316671770187513253741151461872382593110341137124113471449155216561763186919722077142931341952562873383794110431146125013551460156316651768187213263941752062773083393910431629313416519622725830933103611421246132931241752262873383693910411144124813501456155816601766142103144205256277328349411046115312561360146815283124145186217291528310416518623727831936103811441246135114541559166217681872197720822187228923952498251042611013263941451962372983513263941351862172682993510421325384115166217258299321038114212441349145515611427311413518623725829931103611411243134614501556166117691328310416522625732835941182113181427315421526630735838944104911531256135914641567167313263104165221321031542052563113263104145196227288329351041114412471349145315561664122539414516619722826929103211371243134914551557166313253841051461972282793410361140124213491456155916631521131442052262773583994410481152125413591462156716701775187719802087219322952398241022510613263841251862273012273124175206237288319351039114112461349145315571621031241852262572883193610431145124913531459132731141351962372983193610401146124913561458156216681527312414516618723826930103411361243152931241652162572783413263134155216237288309351040114512481354152831241752162572883193814293114185206267288339371044114812561362146515681670177616211315420152731241552062573183593810441149125413571460156516681771187419801629314417520623725829932103811421246135014551563166617681873152103174235286327358379411044114812541359146415681671177715293124175236297328349421428314416519626731836939104111471249135414581563166717721874197920862188229323101241062511026113271172812129125301303113232138142731141752162673183594317211313415520622726831938104311461248135114551559166217651869197420772179228323911427394125156197218249291032113612411344144915571660176218681976172123164215236267328379401045114912511355145715611666177018731975207921812285238913253124145186227268289331035113812431345144715501655175818601968132631141351561872382692810361427312414516619722825927103211341239134314283104135216267298329341042142831041752262873383894010441146125113541457156316651769187314283144195246307338379411043114812521357146215661671177518801986209121972210123104241072510926112271162811829121301243112732131142931341952262673283493810451149125113551457156116671774187619841325310413516619726830934103811411246134914541558166017681729312416519624727829935104112253841051361571982593210351138142731241752062672983493810421146125113541459156316661770187419782083218622912398241012510526107271151325312416523626733840943104511521257136014651568167117751878198120832189229423972410425106261121629314421527633735838941104311471252135414571560166217651869197420782183228723912496259826104122731241852562873083494010461228310414517622730834941104311471251135414561561166317681871197420772180228623892493259626101271062811029114301193112132127122731241552162672983393710421147125213571459156316661771187519782086142831041351662172783093310391146124913521456155816631766187014293124155186237278339361040114412501353145715631665176918741980208221872289239324992510515210315418521627734841142831141652162472783093610431150142831441952162472983393910421146125013561459156316691773187719802085219022961329312416520623728833935104011431248135114571226384115146177218269281033113612391344144715531226384115146177208249291033113914293154175216257318349381041114412501352145515611667177118771979208221882292132531041251862272482893110341137123913441448155016531757186219682072217622802383248925912695279928102291101328311413517623726830932103611391247132731141351862473083393510381141124313461450155414293154175246297338379401043114812531357146113293124175226257298331529314416521626730833937104111481250135414571561166417721521131441952463073514283124185226287318339391429316419525628731833938104111451248135214571561166417721325311413516619722826929103515211314418522629142113174245266327378459481055115812631368147414293124175226247298329351040114512491354145815621664177113253104145176207268299331035113812431346145115541658176614293154205276307358409421047114912531356146315661671177618811986209121972210023104241072511026114132531041451762272782993310401142124513471451155416581762186819712075217822802384248814263941151761972282693310351140124613491453155716591763186519682070217522782381248525902695271022811114293114145196247268299331037113912431345144815511655175718601965207021742277238024832589269327972810229104301101429312416519623727830933103611401243134814511556166214293164195266287318359371040114412491354145815651521231742152715293134185226257278309341038114012441521031341852062472983193610391142124815283134155196251521031241551762172482993310371145142123154195236257338359391043114712511356145815611666177018721975208021832285238924932597261022710428108291123011431116321193312315273114145176197218239261032113612381342144515501653175618601962206721722276237924841527311417519621724828933103611411246134914531555166313273114135176207228279331037114012431350142123154205246277338369421044114912511354145915641666177018731976207821832285238924922596261012710428108291103011331115321193312334125351283613137139162931442052262772983393610391144124713501455155816611766187215211315418522628732838942104611531325394125186227268309331037113912451348145315561658176418701529313415519622726832937103911441247135115210314418522625729833935103911411249132731141451962272683193310371139124113471225311418520624729832938104011431247135014521556165817611865196820732181142931341852062473083494010441149125513601464156716721777188219842088219222101132531041251762272782993310391529313417520623727831934103611381242134714501552165517601863196720692173227623841521031341752162672983293913253104155206247288319341038114616212315421524627730833938104411501256142831341652162472883193510391141124715210313416521627142639415520623727832937104011431246134914521556165817621864196620721527312418521627730833939132631241551862172382993514293124165196237288329381041114312461350145514293124175226247288329341037114012451350145215551657176218651968207121752277237924852587269227962899291013010631108321113311334116351233612737131381363913840141411454214843152441554515746163471691224310412517624726831939104311511257136014641566167217791884198920962110513253104155206247278309351037114312481351145713273124155196261329313415518620722825928103615273104125206267318369391043114913273134185216247301729315420522626730832938104411481251135314591225310414517621724829932103511411247135114541557165917671329311415518623727832934103711421246135214541559166617691872197720822184228923942410025103261082711328117291231326312417522626728833938104311471249135314561559166417661871197913263841351762272983193410391144124813531457156016641770187219752079218422882394142731141752262673083293510391143124713521454156014283114195236267328349391042114712511356146215641668177218761980208521892295231002410525109261151327394145186227278349371039114612491353145815631667177218781980208221852290239424101132831141952462673183594010451149125413581462156616711776187919822084218922912393249625101261052711113273114165206237288329351038114212471352145715621668177518771984209021952210023102241062511211021732042652963273483994610491152125513601465156816731776187919842090152103154195236277308329351039114212461350145315561428310414516620723827934103711421245134814521558142931742353014283104135186217248269291031113612421347145412283104135176207248319331036114012421346144815521654175818611967206921762280238424882592269627992810229104301073111032112331163411835121122631141652062573083694215210315424526631736843948105111531257136014671569167317761880198612263104165216237278299371040114412471352145615591664176918721975207721832286239024982510126103271071428310412520626730835942104811551224364145206227268289361038114212481350145615631667177018731975207721822288239524972599261042711128117291193012431127321323313734142351483615337158381603916440168411704217343176441824518814263124155206257318379421046115112551361146515671672177818821984208821912295239924103251072611127118281222912730132311363214033142341463515136156371583816339167401714117542182152133184245306327408429441046114912511353145815631668177118781980208521882291239724104251082611227118142831241652062272582993210341138124213471451155815210314418521627734162113134165206227248289341038114512481354162113174205246317378449471054115712641371147815841689179218961910114273154185216237298379451054116012651367146915721429312417521625730162123154195216247308379391042114612481350145415611663176818731976208221862289239414283134165206257318389441047115312591361146715701674152103154195236277308329351037113912431346144815521657176118631967152103164225266307338379411046115215210316424528631735838142113134165186217238289311036114112451351145515581664177118731975207821802283238624882592269727102281061325310414516622724828930103511371240134214481550165317581863196720712176228123832485258926932797281022910730110311143211933124341303513336138371433814539148401534115542160431634416745170461744717648180491825018651193142103144165206267318369381044114812511355142631041351561872182593110341139124113461448155516581760186419662071217322782380248525872690279528100291053011031112321183312134125351293613237134381363913913273941552162773383693910421144124813501453132831241552262672883394010451149125413571461156616711776188419891621331942552863273683994610481152125613581462156616681772187619792083218522892393249825101152123164215256307378429461048115312551357145915631665176818711974142103144165206267298359401043114612511353145715611664176818721975207821821428310414519624726832132531041351762272483193610401146125213581428311415520626728835940104411461250135514581562166813263114135186227278329361038114212441347145315591662176618711521031541852362572883393810421148125113551458156413273144185236287308379401045114912531356146015661672142831041251462272582793210361144124613501454152123184245276337398419451049115712611366146815721676132931141551862372783293510391143124513491454155616601763186919751421031442152362773183394010431148125413591463156516671770187519782082218613263104155216257298349361042114412461351145915621668177518821990209621992210323107241092511326117132731141451962773183693810431148142831041652062372583093510381142124613501328311416518623726829933103811441246135114531559166217661872197720852190229623982410525111261142711928122291283013031134321373313934142351493615337157142931241651862273083694210471150125213581465156816711775188019822086218922922397241032510526111271142811729121301273113332139331431427312414517620723828932103611391242134414481550165517581861196420662172227823812485258926932797281042911213263941451762172482993410411144124613541458156216691778142931442052863073583794310451150125513601464157016781921431642152462773083593910431921331541952312273114165186217251629313418524629731833937104011421246134914541558166213283134185256307358379421044114712511353145915621667177018731976207821842290132537411514622728833935103811441248135214561326394135181629314418525630738841944104711511254135814631566166817721876197820812186228823932497251052610927114281202912230127311293213233134341381421131441752262472883393610401147125513581461156316681770187519782080218622942396249925106261122711828120291233013031133321373314334146351503615337161381633916640168411764217943183441871521031542152963373783994410511157126113651469157516791783132538411515619723827932103611411245135114531559142931141451862272783193810431148125514283134185236287308339381040114312451349142831341852463073283894410471153125713611469157416781780188413253841351862272683093610411144125014211315421162931542152362873083693910451148125312283134185246307378409471050115712591362146415681671177318761979208221861428311419525630732838941104611481250135714611564166817711876198120832188229323972410025107142731241852462873183694316283104125196227278319351037114312451352145715611326313415519622727831938104211441248135512263114165186237268319351038114112461350145415581427312414519623726828931103411381244134814551561166617711873197820822187229423962410325108261141427311413517620724827931103411381240134314451550165317551861152831241551762072583293810401143124813541228312418521626730835939142831041752662973383913283124175206247328369421046115012531360162113174195236287338419451521031341952563073584094410491152125513591462156716721777188119872093219522982310024103251052610916283134185236297348379401045114812541357146413283134175216267298329371042114512511328312416520624726830934103611421327312415520629735838944105014212317423525632182103154205266311529311414516620722826930103613273124205226307348369391043114912531360132631041652162514273124175196247301421031842452963373913293114155186227268311226384115166197271628312416519623728831937122431041952162472683412263144175226257308339391326311416520622729142103124165186217281329311415518623725833142931141552312283104135166197261328313417519625730833939162103144215236267298361429311417522629737182103124175211325310415521625729162133204245296367408429441047115216293134185216257278341325384115166227258309331037114217213318425527633736847950105411561263142831241752162914293194235276327421326384145176217251429316418523625728833162123144175196227281326394175206247288309351037114012451429314417519623728830936142123164221328311413517619727132531041251461772182393113253841351762272482993110341139132831241652013273134165196241325312415518624132739417132631141813253841552162472683194010461328312420132631041351912273104125176227258279321034114113273144201327312415518622725830122931141552017212317162831041651862072682993210401227311414517619723830132831141452062613283104165221628311418122731141752262572883293715273114145196247281321231541752162672983515211316419522624732132631041251661972282913263114155231528314417520626132538411518624132931441852162914273941252013273104161527312415520623729172123164231429313415520625732835940104411471253135614621621031341852062472983494014273144221325310414517623162103134181529313415523132831341551962515293124185241721331916212318425530635737841122437412521152113151224374115191326311417524182123184245281427312417525182143204245301621231442052563017213319132731141351862413283164225256317348399421048115312581363146912253741351914210314416523630736122631141451662172382993310361140124513501455156313263941552113293124211521031642015213319132831415283124175196271329319152113134175216247288341428311415519622728142831141451662415283114165221326310413521627733836942142123184205246277298339351040114212481351145315561659176218681321131742252763073613210312416520622726830182133164205236297348401428312415521625731152123154185206267328359381044114612501355145916213320428533638740842948142831141752262672983293810441226310412518621724827931103511381241134714273941452262973784094210491151125313561460156416711427312419525631738844949105111531256136114651571132639411516622728830932103511391243134913273104155226257298339421045114912571361146615711674178218841988209421100152731241751962372683393810431149172143164221428311413517621727132831241651862472683093510391529311416519625162113134165206227288329351041152831341652262673215283124185206267338399441047115512253741151561772282593110341136123913491427310414518622727833940172143194225296327378429491053115612591362146415691225310412517621725832934104111441249135414561561166717731875197820802186122531241852362673283794110471151125413591464156916711776188119872090219815212320425531637742844947105111531256135914611565166917721876198217212316422526631735844142931441852262673183594010461148125113571461156616721775188019832090142731541952162673383694010421148125213561460156715212320425531635740846951105411581264122831141351962772983393610391143124613511453155816611766187019742079218522911721231441952362672883393510431429315417520624726831933103711391242134514481554165717621864196820702173227723802485258726922795289829103301063111232118142931141351662172382993310411148125313551458156216671769187219762083218922912396241032510626109271142812212263941451762172382792910321135123813401446172123154225246287328349381041114512491352145615601665176718731528312419522628733838942104711531429313416522624728830932103716212314418520623725830938104011461250135514611565166717721878152103144185251329311415518623727832939104211471249135314551561182143214255306357408429451050115612631521031542252462873283594010421148125413561459156116671228310416519621728122831141551862272783114283114135166207228259301035113712431351145515581661176714283104125206237258309321036114512481350145816210312417524626732142831041652162673083293510391144125113253741552162472983493910431148132638412515619721824928103211371243122538412516619723827932103817210317424528634172103124185236267338389441047115112571721031642252662873414273124195216257308339371628313415518620723825931103411371239134314451551165417571859196515273134205236287328379431046115212581328312417523625728833935103911431249135214551559166317661871197320812185228823961721031241852262973483693910451147125013521455156016651771152831441752062272683093310401147125013551460156416681772132931341952262773083494110441148125313571463152931141752062572783293510401142124413471451155516611326384155206267298319361038114112441347145115561661176913283144225286317358409441046114812511355145915651528311416518623725831936103911441248135412253749516622725828932103611381244134814531559166217661871197320752178228223862493152103124195246267298329361041114412461350145315561660176218661970207415283134165196217268299341039114412491352145415581665176818711975208221862292152831141351962572983293410411145125013561458156516741780188619902092219817293124165186207248279311033114112471351145415621329312419521625729834936104213273114155216237278309331036114212451349145315561660176318661971207321792284238724892595269727103142831241752362772983393610391142124413471452155716621764186719712073217822802383248725932696279928103291091427315421524627733836940104511471249135314551559166217641867197115211313417524626732836940104311481256136414691575132731041552162372583193310391142124613481450155316581762186815283114135196237278309321036114312481357146015651669177618791986209421102221072311324116251191528311414517622726829931103711431247135014561561166517721877198220862189229423992410425110132831341752362916210314416524631739142831041251562072282492810331138124113431451142731241752362673083493710391145142731241852563073483994610511154125813601464157016751780188419911629313418523626730832937104315210315417521625731836939104511481253135914283104125156207258279331038114012451348145315591663176918751978208121852290239524103122631041652463073283894310451152125913651470157516811621031441752362673283994210491152125713611466157116731777188119832089132931441852362572883193710431150125413591461156516681770187419762079218322892393249525102261052710828115291173012131124321311326310416519624728831933103711421244134814551558166217681329316420525629732835941104811531256136114631567167117751879198313293134175216267308339371039114212451347145115571227311414517621724831936104111461251135314581564122531041251561772182492810361140124413531458156316651770187614283144205256277348401326384135166217268309341041142103134185256317338359411429312416519624728831935104011441247135114531559166117671226394145166197248299341039114312481356142831241852262773083493810441148125313571461156516691227394155206247268329361040114412481429314419521627732836942104411521225310412515621724826930103511401248135214541557166317671873197620782182228623902494132831542152763073683994310451149125413621521031341752062673284094610481156122539411517619727122437412518620723825930103211381244134614491551165617611865132739412517619724829931103411361240134314451551142831241652062473083694110451147124913531458156316671774187819822087219322962310124107142931341752362973583894415283134175226267338379411043114712511357142731241852362773483794010441148125013531457156016631766186919722076218022841329312415522627730834938104211491252135614611563166817741877198120862188229414283124165201429314419521626730832935103811451249135414601566122437412517622728830935103711401243135014521555165717621867197112293124155206237288319331035114315211317422525629735172931541952362573183494212283124145186217288339361039114112491427312415520627730833936104111461249135614601565166817751326310413520628734841946104811521254135714591563166617681870197520782182229113293164205226287308349391042114512531528312415520623727832935103711391242134514511226384135186247268321529313418522624730836939104511511255136114651570167217781881198320892195162103164235266307378409461048115212571426311413516619722826931162931241952162773383594010451151125513601427310417522627732835939104211461252135614621566167017761227310415520629735840948105211571228314421524629733837940104311491256136214701576167917841887199020982110022104231101327394155186227268329361044114912253114155196217258309381043114912571359146215661671132831041652362973283794214211316421527631738843162113184235296327378439461052115712641368147015741682178518911998201012110422110231161328315420522626731833936104311481253135914293124175226267311227312417522625727832935104011431246135114541558166117641870197320772182142931141551962473183794110441149125413621468132931141751962272582993310381143124813531225394165216237278299331036114012421347144915531659176518711327313417520625728832938104111461252132631141751962372682993210361139124514273124175206237308349391044115012263841251661972483093614273104165196237338399421047115112561362146415701673177618801982208521922295239924103251081529313417519625728830937104011461251142831141351962172783393710401148125313253114145226267328359391045122103154205286327398439481429313419523625728834937104011441250132731041651962372683293410391144124913551225394145176217268299321038114312481329316420525628734840942104711501254135913293144175206257298341329314418521625728833936103911451248135314581564166717711873197820812184229013293124185216267288329351039114312491355145715621665177116211314418523631739842945105011561326384115136157188209251031113812401345144815511657132638413517620722826931103411381244134812253841251561872413263104145176197258289321034113812421345145015521656176118671821231942452663473984395010541159142931141452062773083693910441224374105146177238269331036113812431348162123154215256301426314419525628732835937104011431247135214561558166417711874197720822187142831441952362773283494010471152125816293154195216277308369401044114812511353145915631667177018771982132731041751962172883293510371141124313471455155716631766187019761427312414521626729837942162103134185246287368409451227312414519122639413515621729831937103911431248135114541562166617721879198220842186228923912495251001329318423529631736839944132931541952162572783493810431145125213551462156616711428311413516622724826929103511381245135014551428311413521627731836939104611491252135814631568122731241751962372683293510391143124613521521031542152462873583994310491154126113661468157216751778188413253941251562272582893510371144124913541457156016621768187413283104145216247268299321039114512491355146015661669177218761983208621921327394115146187248279321038114212481351145515601667177518771983209021932299231022410825113132731542152563173483994210471150125413581329312416520623726831934103711441251135614591564132731041451862172583193510411729315419524629734839944105111531260136814731576168117881891199612273104125176227268309351428312415520622727834936104011431246134914541428312414519621723828931103511391244134714511557166117681873172931341652062472683093510401142124413491452155712273941551862272683193610411143124813551458156316651767187219752080218222871429312415523625729835943104511521260136314671570167517811327394135206237278329381044115012561359146515701326384115156187208269301034113913283164185226287328389431047115112581363152731341651962372883293713210313419523629731833936103811431248132831741952463173583994110471152125513601325374135176197248279301036114213293144195226257308359401042114612511354146013283134155206227258279321035114012461325311415518625729832937103911411245135114561326310414520622728831936152731341551762172683493710411149125213571421031342052462873483894110451148125312243841151762272682993110351140182103154175226247278309331039114112461349145414283144195256297318339361038114012451350132739412514618721825930122531141652162472683193510381144124613511456155916621767187119761429314416519625727829932103611401245134814531628312414517621724826931103712263841151361772182693310391145122631241551962472883093410391148125312263841151361771982392510311134123813431446155016551760186519672072217522772380248325872692132631141351962172683193410361141124513491453155812243749514620725832938104311451251135514601225310415519625728831937104211471326310413519622726829932103511411243134714541557166417671873197720822186229223962410025103261092711413293144195266327368399441050115412621366147114283104145186217298359391042114412481353145715601664176618691972207621842287239212243841451962372682993610401147125113581463142931341652062573083394010421147125113531458156116661768187219781326310412516621724826934104011451249135414561561166715273144165216297328359401527311415522628733837940104311491253135614611621331942252563273584094616212318421526629732839945122739411513619721826931103611381242134514491554165917661870172123164185216247288351621331842553012273114135186247278299341037114412501353145715631666177118741979208221852290132831141551762172582893110331137123913441447155016521755185719612066217215283124165196237298329361038114214293134185206247298379421048115612581361146515691629313152103154195236271225374951261572282693010341136124313451451155416581529313416522624726832936104211461328310413518622725832936104011441421131341852362712263841351862573083293810421225311414519625729833935103911431247135014521557166116293154175226267301229314416523627730835939132631041552062472883393810451148162931541752262873283494210481150125413561460156416671771187419781521031641852262673083594010461149125213561459156416671771187513213316422525629734837942104611491253135514601565166817701875198014293124165216237288319371041114512511354146015631665176918721975207721812285238724902594269727103281062911030113311163211833122341271721331642052763073684094610521156126213691471157616811786189019952010121105221091521232142652963373783994410491154125813601463156616711775187919822087219422992310524108251112611827124281282913230137311443214833151341583516136166371693817314263124175246267338359401043114912521356152113164235256287328349371043114512481352145415621667177218781983208821942298231022410525108261132711828121291263013231137321421721231842353063474084594910551162126613731478158016831787189319952010121104221082311124115251192612227126281312913430139311433214733151132831241551962272513253941351862172482893110341136124113441449155116541758162831341752162573383712263104135186207238319371041114312481350145315551659176118641967207121732277238114263104145166207238259291036113912421344144815541529311416521625732838944104811511254135914631567167117771883198620892191229723101241032510826113271172812129125301291327394135166197258289311037114012461354145815621665177218751983208921932299231032410925112261182712328129122731241852662973183593810401144124815283124155196217268339381042114412491351145415611666177018721976208321892293239624103251062611227117281231528312417522629734836941105011541260136614701421131441952262672983393910461150142639413519622728831935103811421246135014283114155206237258289301034113712411326312417521625728831936104011441250132531041351962472983393510391141124313471449155316571426310413516620724828152731141551862072382792910321135124013421445154816511754185819631427394145186207248299341040114212481353145815621226311415518624726830152103154195236267288329361039114412471353145815601665176718711975207913263841151862072382793010331139152123154195216247298339371528311417523627734836942104811501254135914641569167417801884198820912193229623102152123164225286377458489511054115912631367142831441852362873683994410481152162931241551862572883593810411143124813511455155816631421031442252863173484194310491152125513611463156816731776188119842090219622982310324108251112611527118281221327315421525631734839942104411481252135414571560166917751881198320872190229323962499251072611112293124205266297328389411044114812551359142831341952462973583894610491155126013651421231742252663473784294610511429311414520625727829932103611431247135014541326311413519621726831940104411471249135514581565166717731879198313273154185246317378429471054116112631367147415791682178818921327310413518621726830934103611401244134714521555166117651867197320762182228623892494259726102271052811129114301181421031241852062773083593910421148125013531457155916641766187019751429317420525631738843132631041551762172482893210391141124513491428312418522628733838940104511491429312417521627730835937104211451249132831041551862472883293710401147125013571459156416691774187619812085132638411514620723830934152931141752362772983494110431147125113253941151661972182692910331137132638414517621142831141351561872082413293114145186237268309321036132631341652262472783093410361139124317210313417519626731834941104611511254135714611565132639412514620723827132531241551962272883093410381721031341752262773083593910431147125013531456156016641326394115146167228259291325310412515620723830932103611381242134617210313417520624731836941104311511256136014651569167117751881198420862189229523992410313263104145196257318339351040114412481321031542252863073584094210481152125813611465156716721776142103144195256317338409461051162831542052462773183694014210314421527629736840944104711511255136114661571167417761881198720952110122105231072411025113261182712028124291273013231134321363314034144351481821031241952162673183493813273941151662372582793010341529132639413518623727829932103611401245134914531555165717641867196920732177227923832487259113263841151562072282592810311137124213461426394135186217258319371039114112461350122631013263941351862372783093310351139124213441449155314273124155196231226310132639412518621723829933103511411247135115273941651862372983593710421145124913511455155816601764186919752078132539412515618726830934103911451249152831441752062472783493710431146124913531457156016651769187319771321031241852162973183513263104125156197228259281032113612401343144615491621131642052262572983193610441148162103154235271529315417521623727833935104311471521031541752362873083494010431149125313611465122431041952515273124145206267298359391045114915210315420524630735842945104911521255136214661329313416521628733838942122731241852663073383794410481621031241752162512243741251762372683093510381140124413491452155516591764186812263941251762172482893310361140124313461450155416571763186719722075217922852388249215132731041451912263941351713253841151661972583093410371140124613481452142731441652162673283794010421144124813521529311413518624726830122731041552062472883093410361138124113451325384125146187238299341037114112431348145213273104135156187218249291031113412371339144313253941151461772182492810331137124113451427311413520625730832937104111461226384145186257308341628312417521625142113144175226261529312415519623727831934152731341751962572783293710421628313418525630735840943104711511427311418521623726830132731041451762172382893214273114135176207268299321034113813273104135156187218289311036114112441348145215571621331542052417213316419525629731836938104111441248135214571729314417522624727830934103814283124185236277318351421031441852262672883393710421145124913551459156216661771187614263114165216237278309331037114112253104125156197238269291033113612401621031541852262472782993410381326394135186247308341621231541752062773484194310461149142113144205256291721031341752162572983393613273104145176217258289341225384105146167198259281031113512401344144615481653132731041552262572983516213315420524629734836940104311471427312415522625733838940104411481721031641852162672983193510381140124613263941451762272883415273134205236267318351225310412515617721823925102911321236133914431546165012253841051561772282492610301137124113461450122537411518620727830936104012253841251461872282493010351142124613283114135186207278309321036114312501354132731141852062372682993110351821131641852162573083393610391143124813511455142113144205226257298349361041114712511356146016293114175236267308339371527313417520623728832937104118210314419525632736162831041652062572915273134205236267308359391044114814283124195266307338369411527313418521624729833172123161521031441852362573283493810411145125013521455155816621769187719812086219422972310124106251102611627120281242912914263114145206267338409441049115213253841251662172783393810411147125114273114145206257318349371041114612283124165196247288339371041114613283124165186247268299331328311415518620722825931103411391242134514481551165417571861122103164195256317378449461050115212561521231641852062472883114283154185246267298329341038152133224245326357398431228310412516620723826932103612263104165186227258291327310416519622725829934122631141652062873283614283134195246277328379421047114912571360146515701674132931441651962172583093512243749516622724830933103611391243134514511554166017641870197820802182228423892494259815293144205236327408439461049115412581362162103134205246307348391429311415518624728132831041451862072282893115273114185221729312416520627730833132103184255306331325384145226257338389411327312416519622725132731441752362715213316420524122831541852062472783393716210316420132731141414212318421526631735841944122631241613283144165206241224364851662272582893410381329314417152931241952312273124185266317348409431521131742252463173683894210451329314416519621724828930103311351239134214461212283124185231328311415162931241752663116293144191224364145176197248279331036113912441327313417521625730142639412514616723829132731141512253941351862472783193510391144124813521454155716601765186814293134155191326394145196227288349371421031641952314273114135166197228299331039114412283124165226277298329351039132831241451662072382893210371326312414518132539414519623726829933103611401244134813283104141721131341652013273104135206267321528311416520625727830933103611401527313419142731241551813253941151514263101529311416162101527312414518152814263101628312122731216211132639414132531041451662014283124155191228311414516620122831041752462673083694010471152125513571461156316691773187719802086218922931226310415517622725827932103911421245134714501555165817621867197120782180228423902495251002610427106281092911330115311183212133124341263513018213142731241852162572783115283134165191527311415519624726830142831241651862272782993110351325310414519623727162113144195226277318349411044115012521357146115631666177318761978208221871325394145166227258279301035132631141351713273114155176207248269291326394155211328311414516620722825928103111351427310415519623726830934103911411247135014571559166517671871197414210317419521624729834939142113164225276337378411421031642052462813293164185236287308341821231642152663173683894310461149125213571460132931241852162573083315210314418520623132631041551762372683093410411146124913521454155918213318424530152731141852462673383594010471153126113671721231441952262572983493610421527311414516620724826930103311351239132531041452062673083493610411145124915273114155191426394125156211426384135176197248289331036114012431347145315561659152113154205246277328371328310413515618721824931103511401245135214581565166717711880198220862191229823102241052511026115152731241551762272483193610411145124713501453155716611764187019761327312417520627730837941104311481253135614611325384115166197218259271031113512381342132731241451762573183494110461427311413518625731835939104311451249142103134175196227288339361041114312481352145415581662176518691721231842452663073283714293134165191225312414522624729838942104711531259136414681575142631141352062372883193510401144124713511455155916621765142931241551962372883093513283104145166201325310413517622726828933132739413517619723829936142831141552062472782993210351140124413481452155716621767186919742076217922842387248925932610027105152731341852462973484094210461151125913641468157515283124165186227288319361040114412481428311415520624727831934103711401244142731041551762072282592910341136123913431449155716641768152731141552162472883393713253104125166187248281328314418132538410512616722825930103311371239134314471550165317601863196720711326310412517132731041251862072582993110341140124713521456155816621328311413515621723827929103311361238134314451550165517581862196620692173227823852487259426962710028104142931341751962272582793010321135123914273114135186207228259281034113612401344122639413517620727831162931341651962673013273941451962773283618213315420523627132731041651862272883393510401143124718210316419525628732162103151225394135166201521131741952262472983694210451149125213561527311418521623726828934103811401244142639415518623726832934103814210314420523626728831935132739417520624727831935103811421521231742252863173383994410491151125513581462162103154195226267338359381040114412481352145515571661176514293124155176207248279301032113613273154215256317348399421527310412515618720826929103711391244134912243741151561872214263104145176211529316419521624726830933103711421246134814521529313417524629735841943104611511255135814611565122831141551962313283124175226267298339401043114612491353145715601663176618701327394135166187238279331036114312471325374135176207238281327311417524629734838152931141551862272783093610421145125014273104125186237258319361038114512471349145215571662176715293134155186227278319351528310416520624727830934103911431249135214561561166517711877198120851327312415517622724830934103811441250135714601564166717701875142831542152662873383794010451153125916210316420522625729834938104011421247135313263144195216257318359391044114912541359146415661669177118741979122439416524626731837942104511501521031641952162573112283104135156197238269331036114215211317423528633735838941104411491256136114661572132631041551762372983293810441227312417519625727829933104011441247135114581226311413517625729835132931341652162573083794010451147125113531459132103144165226287318369421229314423526630737845132931441952262773183713283104145186237308359391044142931441751962372912283154185206267298379421048152731241551862413273104165196267318371328314420523629735122739413517625727831933103611421226311414520626730832936104011451248135313253741552162472883093810401146124913571621131842052612283124145196217271225310414517621727833937103911441247135212263941351662212283104145186207258329351038114012431347144915531655176118631969207321762282132931141551762172482893210351137124013431446155316210316420526628732838122931541852362914263941551862372683293510381143124613481453155913263104135166187228269311035113912431351142631141651862673283794110501156125813631465156816701774188016283134185206247278339371042114612511357162123164225256277338391327310415522628734836938104111471328312414518623727829932104012253104155226277338379431049142731241751962672983393710411145125113541458156416661772132103124155216267298371721031341852062473012263114165196217268289341039114212441350145315551661122831241952263073483793910451421031441652062473083593910411146124813561224310416523625731833935103711401244135012253941551762272483293510411144124613491455122731241952262573083593910431146125013551461156316701774188212263124185216257298359381040114614293134155196227288309351038114112471421231742152863173583894210451148125313561458156216671770187419772083142931341952663173684315210314420523625731837142731241952562773314293164205226257298319371225310415517620728832936103911451521031641952513263104145216237278311521131641852162373113253941151962572983493810411145124713551621231942252462973516211314419522627731837152731041352062372683415210313419523625732152103124155196247298351529313416523625732132539415518626728833939162931542152562973712273104165196237258309361321131341652062272483093410371142122539415517620724828934152103174235256297351426394135176237268331729313421529172123154205246307348421628313419524628733839182123174235306357388459501056116212681374147715831521131542052762973583994310471154125813631466156916751821031641952162915273114135166247268339381040114512511729314419524631735840943104611551261162133154215236287308349371040114512491355146118214318423527632738840945105111561262136614721721131541852562773283593910451821331842252763073583994510491153125613591465132113134195216287328359381042114512511527311414517621725829933104118210316418520622724831935104111451249135114561561166918214317422524626734192113174215236311328310413519622724826930103411391241134814501552165517581861196720702173227523831821031741952362873284016283124155176197248289321035114318210316418522629731835939104411511253136014681572167717831886199215210315421525627732840946104911571225310413518622726833172123174195246301327394175206247278329371041114312491528312420524626732132631041552162472682893110371621131541952162673183694110431148125013531455155916611764186619692075142731341551862272582993310361142122531041451662272582993513273114145186207261227311414517623728832938122831441751962172683293812283134195276357388439471051115713273134165216267298349371040114512491354145715601666142931141751962272782993410391144125212243741351762313210313417525122631041351762272582993210361142132831141752062472783193610381142124413501327312414519624726832132731141551862372682913253941451962573383693810431226311416520622727833936104013293134155206237288329341037114012451349145415591662176418701974207821822286132831041551762172582893310351140124413273104125176217258319341038114412263114135176197228249291033114012421346144815501654175618581962206421662270237524792584268927922896299830105311073211133114341173512136123371293813339135401424114742152431544415945164461664716948172491765018151186521905319254195551985620257206582115921660220612266223163236642416524566251672536825569258702621326310412516620724830934103711391242134613293134155186227258299331035113712431328310415517621725828931103411371241134514283124145186227248269321035114112441351145515611326310414517621724829935132831041451862172482793210351140124213451451155516601763186719702076218322862388249525101142639413515617721824926103111341236134214481427310414516620724830935104112263104155206267348389421044114912561358146215661668177212253841051261772182392910361142124613491455155716621768187019752079218122851521231642152462873283493812273124185236327408479531059116112651369147415771684178618901993209521982210213253741151561771982192910321134123913451451155816651771187819832085219022952397241012510726110271132811729120301223112432128331303413435138361403714414293164185226287338379401044114612491352145415571663176914263841051662314293114151421031241852262472683293610421146125212263104155206267348389421044114912561361146515671672177418771983209021942298152831341552062572883293812273124185206247288359411045115112561360146615691675177818811984209021942298231002410425108132831642052562772983393510391143124713551464157016761426311416521626730832936104111431245134714511721231542252562973183594210451147125213541459156616711775188219882094122831342052663474084613263104155196227258279301033113812411348145115531657176218701975207721842292239524100152831141751962272683193710391141124713531458156016641766187119732077218113263104155196247268309361327312415518622724829932103711431427312417524627731834936104111431248135514611564166817711877198120891528311415519625734837939104511531259136314701576162133164185236277308349371044114712511356146015641668177418791983209021962210323107241142511726122271281226310416519625729834940104411481253135614631567167017721877198120891226311413518623725829931103411361240134413283154205256287328359401045152113134195236257288309361040114412491352145615611666177018751980208421902296231002410425107261112711628123291273012931134321363314034144351481527313415520626732837943104911571262136414701574167917851329312416521624727831936142113154181621031441852463273484094410471151152731141952262773083593810441148125313571461142103124175226257298359381040114412501353145815601664177118751979208521892291239711021732042452863273583994210451149125213551460152731141651962272782993510391145122438413517620723827931162113174255286337378411621031241852563073584113293114155176217248279301033113712411348145015561661176518671971207821802284238824932598261022710615273114185226277298359381046115212551363146615701674162113164215246287308339401042114712491355145815621666177118761979208321891327312417519623726829935104111451247135314571560166415210313417522628733839947104911531259162113174245306337378411621231441852262472983193610441148125213561459156316661769187718213319422526631735132631041451662072282492710311138124213441448155216561326310414519621727832938104011451248135214561560132631041251661972182692810321134124013431447154916541760132537411515617723826931103611411243134714511555122436414517619724827931103411391245132537411514617719821926103211361238134314481553165917611864196720722175228023822486259226972710113273134155216237298319381043132631141651862472783493610411145124813511454155816611767132931241652062372914283134165236277318349411327394135176197218279331035113812401344144615491652175618601729312416518620724826932103511381241134314461549165717591863142831341952462873083493910441150125613611467157216771783188519932096219822102231072411225116261212712628130291361226311414517625727829934103911411244134814501556166117641871197320762182228823922494251022610527108281142912212273114135176197238279311429311419523626731833937104111451426394155186237278319351041122631141652262973684094710521157126317293134155206227298329351040114212471349145215551660176718691974208221842287239024932598261042710928114291213012631129321343314134147351523615837166381713917340179411834218943193441991226314152739415521162831041552116283144201628315421132631341551762172883393610421328312415521623730162831742352816283114185251527315152103174195236291429316418523625728122831241451862212273134175236297338399451050115612621366146815751679178218881992209621104122639412518122639416522142931441752262572883093510411729315418522629731836940104311471249135617210312416518622728831935104011451250135615293114145196237298339401326384155206267298319371041114512501355146015661621031542114210314417521625727830936104011421245134714501554165817631429314419521625727830933103611411245134714521557166017631867197220782180228523892491259726104122437410512615722824927103013253114145191721131341752262973583994210471151125713621466156816701775188019852088219022932397241022510626109271162811829123301283113232138142103134165196227278309351038114212471349145415621325311416522626729837122437412515618725122831041551962417211316420522628732834937103911421246135014551429311415520625731836942105111531259136514671570167317761881198520882194229723102241052511114293134185226257321621031341652162673283694215210313419122437413519623728831934104212243741051561872282692910321134124113253114145191326310416522172133184265306357408481228310415520625122638411516619727122831341751962172482793310381145125013541462156816731777187919851228312417522629735839132831342252863273716211317422529632738182143164241429313419524630162931341752062973283693910431148122631141551762473183693910421148125213263114145196237278331721231742152362672983493915273134165191721131641852062372815283104175196217271227394115156197251628313417523162831341552116211313417524628732835939104515212314421524627733132731141451962572983393810411143124912283104145166197238289301033113612381341144713263114185256287308361228313417520622728122631141552062572883594118210315421142103154175226247268299351042122431041651962172712283104135156207258329361042132731141852363173784094410461153125913621464156916751228312417520623726829937142113144185241328310416523625731838132103164185216237258309321039114514211318421529634737844132631141652062272683093310351138124413273114145196277358409421048132731241451962473013273114165196257308379411047122731041251562215293134175226287328401328311418521623726828931103411401247122531041351761972382917210312416522122436414519622727833172103124165211224384135156187218259281032113612381342144817210312416522122931441952612263104125156187218249261029113212361338144115441647175218571960206321682272237524801429317423526632122437412514620122531141351862614273941351562072714293114155216247288319361325394115136187261527394115171326394145196227248301428313417521624728832934104011431249135314561559166514273941451762272783293510431327314420522630132631341952462973583794110471421031541852262813263114155206257288341529313418524628732837142103144175216257311329313416522132631041251762372783193610391146125013531461110215318424528633737843132931441752262672883613253104125176207241521031441651962272783413253104135186207248289341721131842252763273484016210315419521624727829931103611421326384125166197218269281030113512401343144615491651175518631325394145186217291421232042753163574084595117214321423527632736840943104911531257135914621566166817721878198320892194221002310724112251142612216283124155206227278359371043114612491351145515591662176518731621131942152362873483994710531157126013661469157416781784188619941328313415518621728831935103911431621131842152462773283594110471152125613621467157016731781182103144185226247278299371529315417521625731836939104211501821031341752262472782993715283124175236267308349381227312418522626728834937104011421244134714501553165717611863196820702175228023842488259226942798281021426313415523632739843949105211551259142931341952462772983494210481151125513571465152831241752362573183894310451147125213551459156312283164235316337368399411044115212561359146215661670152731441852062472782993410381144124713521456152931141752262672883293815293124185236277311227312414518625727832937104011441248135014561563166817721877197920851528312417523626730834938122631141651862472983693910431148125513591463157116781783188619902095211012210323106241102511226115271192812329127301313113332137331423414635150132731141652062672883393710431152126213641468157216791787189019952097211012210523108241132511726121122731242052863674184394910561160126413681327312419526633736841947152113154205246317338379391043114918216325433541648756863968107411771283138614911595169912263114165186247298329381041114912561359146415681671177418791985132531041451862172883193510381141124413471453156016621766186919742077218322871328312414520625728834938104211451250135414561561166417701221031541752463173784094410471149125313571460156613211316418525631737840945105111541256135914631570167617791885198820932199221022311024112251182612027124281312913330140311423214733154341563516336165371683817539177401804118742189431954419745199462034721048212492205022351227522335323554241552435624857253582555926160264612696227563278642836529066295672976830269304703107131672319733237432875331763397734478350172143184275296357428449501055116012641366147015751679178318213315420525628734838940104411501256136214651569167617841886199120952199221052310724110251142611827123281262913230139311423214833150341543515936166371693817539181401844119042193431974419945202462094721348217142103154195256307328379411043114812541361142731542152462873483894310501152125713641469157316761780188219862092219822100231052410825113261172712228126291293013131136321393314234145351483615237156381613916340167411724217643183441884519346196471994820312263941351561972482893210361138124213481455142631241752062372582893210371143124913551461156516701773187919871721131541752262973183594010441146125013541458162113184235286337398429451048115212541358146215661670177418791984208921932299122831041351662172482693010331135123913431448155316561759186219662069217122742379248225842688279228942998301013110332105331081325374115156177198219291035114112461348145015531658176518701974207721831427315421525629735132537411515620722826930103211371242134614511555165717621867196920752177228123852487259026952797289929103301093111132113331173412135124361283713238140142831342052262472783293710441528310414516619724826930103311371242134414481551165617611863196720702174227823822484258826902794289729993010231106132931341952462873083493710411147172113164245306327378419451047115012531356146115701428311415521626731834938104211481326394135186227281329312414521623729831935103911441250135214571559166714273104185216257288329381043114812501356146115671673177518831326310416520624729835937104517212315422525631737839941104711511257135914631567167017761228312419525628733838942104411471253135514601563166917751878198120872190229623102132731241752162773584594710521155126113661468157316801783188819922097211002210923111241142511926123271312813329139301413114532148331513415435157361633716538173172133184245316377428481227312417523625730837942104711531226311416525630734841947104911551260136414681572167417771881198620902195221012310324110251132611627120281262913030135311383214133146341493515436158371633816939174401794118242185431894419345197462004720648211492155021914273144185236337368429471049115412581362146615691674177918831987182103164225246297348389431047114912531359146215691674177718841987209021952299231031326312415518621727830933103611421245134814511557165917651867197320752179228523872491259826100271042811129113301173112432126331303413735139361433714938151391554016241164421684317544177451794618447190481924919850201512065221053212542185522356225572315823559240602456125162254632606426465266662696727368279692837028771291722957329874304753097631514212317422527633737842945104811511255135714631566167417761881199020952110022106231112411725121261292713328138291423014531148321523315934162351663616837172381763918012283124185236287338379391043114712521359146315681674177918861988209221942210023104241062511226116271201325384105126207268289321034113812421346145215561663176618711976207921822286152931241952262673183994414263941752362673083493710401142124613481453155716591762186719731729313417519625729832938104111471254135714601564166717731877198020842187229214293144165196227258319371041114412491352145715611666162123194265296337378419471227311415519621729835938104111461251162931241852262873383594210461150125413571462156516701226310413515619721824928103211361244134614521555165917651427312414521626729837942152931141451761972382592810321136123813431450155516571762122731442152462773483913283104145186237268319371429313418522628732837942122731241752262873383812263941151461972382693310371140124413501327394155216247278309341040142103134195216247288339381044114912541356145815621668152113134165216247268309321036113812441348145415611664176818731979208321871329312418521629733836940104311471251135514601565132931341552362673083794310491151125813641469157316771784188819912096142931141652262673083594310451148125213551463156516711776188019851327315417521626734841945105116293114165186217288329381521031541852462973414283144215256337391521031442052462873183994414273134165206247268319361038114412491227312414518623728132831041551862072582993610431148142103124145166207268299351041152103134165206227308349381043114914293144185216257318359401044114912511356146315691329313416521626731837152113144205236277328349391043114814293134195256287328379421521031341852362873584394914273104155206287368419441051115912641369152103164205266297328371429311418522627733142831141752162672983493810441150125213571459156416691428310417520624728832935103911441225311413519623725830935103911451248135214581560166317681527311415519624728832937122638414520622728830932103511431245134714501555132538411514616720823926103111361238134314481552165712283134175221327310413518623729834938104411491327311417521624727832939104111471250135515273114155216247298359411046142103154225266307358389431327313415517621726132631442152362873313273104175206237278319341038114212481353145815641327310412517621726830935103911421247172931241651862072682993410381144124713501455132103134185241224310414516619722824927102911331236133914441528312416518622726831935103711421247135214273154215246307328359391041114612491354146015651667177214273104165226277308369411044115012561361152931241452062572983393810431148132731041552262672983393510391141124513501521131642152462973383794310511156126116212317421527162123164205236277318339391042114714283144201629315417523626732836939104211471628313415519623726829935104011441247135114541559166217671870197420772180228515273134165236287318361325384125166207258319351039114612511355145915641669132631041551962372683093516283144195236277338379421629314419523625730835938104516212316418521623730838941104511521259136415210316419524630734838944162103144205261224384115146187248279321036114012451313273134191428312415521627122539414516622725829936103911451329311414516622726829934103711431328316421523628730838142831141651862472883093210351139122437411514617723829132639415521132731041451661972483213283114161325384125146201529312417522627730835142731041551762313263124195226267331521031541852262473212263104135201326310414519624728830934103815210314418522624732132931241651862515293124175216237268309361038114614283134165186227258321328311413521132531341952262873083494013263104135201327310416523132531141551962473013253114185216277298339391326311415519626728837132731141551913263841051361572315293134155206241427311413518626132831241451762272614263124145196247298351529314419521628734152831241614210316419524142931141552215293154175226247321427313418524627730835937104011431251132631141451762513263104155176217261621231842452863373684094815293134175196237258311521131715293124201226312132831041351561872182493110351140124513501456156216681775187719812090219615273104135166207271327394135166207278299321035114317210314416519625729835152103124195251227313419152831514293151921131542015210314142133164231821414293164195246287318381326384115146201721031441652062573083694010421145125113571729316172113144175231228315122437411514617723829132639415521142931241912253104155176231529315419522628132531341552012210312417152731241852262813210312416522142113191528310413515623142931241715273134191428311416152113134181529311415517623726831122436410517626152731141451662317293134165221529312415517624132831141713253941251561913253841251662016211318152113181427310412516622122539411519621728172113134211521031615283124191527310413517621122831141913283114191326384141327311132538411516618726122437411514617723829132639415521142731041812253841351661972413263104141621031713293134155186207248279301032114016210317152103124185261326310413518624122831141451761972513263114191225384125161528310414516619725827936132537411516152931541952462773083294018211314416521628122831141812243741151461772382913263941552114273151225384135166197241326310414162103171329313415518620724827930103211401629312415521172123174231429314420162103171621031541852415211316152101327312416519623152931441952162372682893612253841151813263131621531741952262672983293810441326394155211428316122538413517620725132631041416210317132931341551862072482793010321140172931141652112263111529314418172931542052616210317132931242015211313418521627152931241452212253841151661972382592810301138132631041351662072382693113293134205246277311721432016212314416519623726829935104113263941552114273104181225384135166197241326310414162103171329313415518620724827930103211401621331542316283114145186207278299331036114115283104145166197258279351326312414521122631141452017212318132831041812273141721231642052363112243741151461772382913263941552113283144221225384125156201326310414162103171329313415518620724827930103211401521031341952162915213321132931442152462973183694216210315422529152931241452213263941251762072482793515210314416522624727829937132631041351916212316419524627730834937104112243741151461772382913263941552114210312420132531041613273124145221529313142731041714273104135156207258289351329312415523152103124175196251421031241652412283104135176237291721131441652217293124181921716283154191227394145201226310412517623132931141551862172714273104161328310418132831141452214263114191326384125166197248269341521131915210313418520628132731041351762072615283144201428311415162831613253114171228311413517625142739413517152103174231821432113253941151361672215211313415521132831341952763373784295010521155125713621468157316781780188519921225394155206241328316152113174235296327398419471227394155226267298369391045152103134165226257278339351043142931541752062472812253941451762172583193510391141124613511454155916651429313415519621723828931103611421246134814561226394125166227281428312416520625728831936103911431245134914511554165717591863196620741325384105136177208239271031113515283104145186237258289311033113612401343144815531657176218661972142103164215266297328361629319425529634739842945105011581429314421525630735838942104711501254135614611569142103154195216257308359391044115112531355145815601663176618711977142113164185226287348379431326310413516621725829931103511401246135314551562166817741877197920851521031241752162372983193510401144124913521456156116641768187319782085219122932398241061521031441651862072382993110341136124417212317419526628735841945142731141551962272482792910341136123913431447132731241852462672883193510381142162123184235256287328369391046115312581360146615691671177713293124165206257278359411046114812531356146214263941251461672182713283134155186207281421031341852362572883293710411147142631041551862272582993313253114155186227288341328311417523142631041552162372782993210371141124413501528312415520623727833937104311471253142631241552062473183794110461150125513611429314419525627731839142731341652362773083593910421145125013521456156316691429318423525628731834943104711511254136013253941451862473083393510411147132831041451762172382692810321134123913431447155116551327311414516622725829931103411361240134414481552165517611865196820712173227623792486259126932797281002910330108311123211733120341233512636129371323813613283114165206267288329341039114112471428311416520624728830937104211441249135314591527311415517620724828932103411371243132631141652062472983293710391145124813511454155816601766187019722075217922832389249125972610027102281101421031341752262772983593910431145125113581325384105186257288349381046115012551361152113134175206237298329361038114212451351142631341752062672883393610421521231742452963173784294410491153125713611468162103164205236257311528311416521624731837943142103154185236257278309341038114417212317423528152731041552162873383915211317421523626732834938104111471326310414517619724830932103511371243134714511558182133164225296317391721231642052363112273104155186237288339371040114312491326314420525628730836939104611481253135614601562166517681870197620812185228723912493259526982710413263114165206267328369391044114812511358146315671669177318751981208321891327313416520625730837942104711511253135714621564167013293114165206267298339391043114612491354145815601664176918731976208213273124145196227288309361042114612481352145415591666176818721978122438410512620726831934103811411247135114571227312414520622724826928103211341236134014441429314418521626733837944132831141452162372682893110341140124712273941452162472783294013273124155186207238269321721031341852062473012253741151461772082493213263941251562072483093210381326311413516622725831132531041251862472782993310371225311414517620727831935103711401247142831342112253941451962272883415283124155186227281325394155186227268329351039114513263114165186257278319341036114012471350145614273124175236267308329371043114512501355146215641670142831041251561972282693310361142132631141452062672983593810421147125113571429314417522625727833132731041552062773083794210441146124913541458156414283104155196217238319341036114112441346144915531656176018661421031642152462772983593810421146125013521455155816621765187112253124155186227258279301035114013263134175236257308329371040114212461352142831041451661972582993410371139124213471449155316551763132731341652162673183693910411144124813511453156113283114175226317348379421045115113132731341914283104135176237288329381227310412517621726830936104111451249135614631569167217751877198515273104135186267288339401044115112591528310415519624730838942104411491255172103124165186247288319351041114312471350145515581663176618711975208221842292172931441952262673183393810441152125713631521031541852162372682893410371139124513471452155616591761186715293114155206227268319331037113912441347145215571659176715210314419521623726829931103716210317419522627729834937104011431250135314561558166417210313415518623726830936103811411245134714511557165917651427311417523627732837941104914211314417521623728832936104111481251135314581562166417681876198020822187229023942496251002610527109281132911730120311233212533128341353513836141371443814813253841251662172382792910321134124013461325384135166197238289361527314419524628732839945105211551257136114641568167214263104125166217238269301033113512391344144615521655175918631969207121752278238024842589269127962899291033010531109321113311914273941352062472782993310351140124713491456156116641766186819761428313418521623727829934104214283134175206237268289341038114414273104145176217248269311036114012421347145415601663176518711976207821822285238924952510126104271081428310414517621725827930103311381241134314461550162133174205276317338369411047115012521356145915631667177018741979208221842287239124932598261061421131341652362572883093710421148132631041251762172683193410361142124713501453155816621765186919722076217822812385249125932696271002810229110132631041551962673083393810411146124913511455155914273114165206257288309341039114312461351145715601664176818721977208121852287239124932598261032710914293134155196247308329381046114812541356145815621665176818721974208213263104145186227278309331038114112451347145115551658176118641966207314273941351762272482793010351139124413461451155616631765186819712076218122852390249425100132538412516620725827933142931141551862372983293610421145124913511457132731141652162573183493910451152125713601467157514293134205256307328359381041114612491354145815601666177314283114155186217278299331036114012421347145215551657176118691429311415520622726829931103411381243134514471552165517601865196720712175227923822485258926932798281002910817293154175226267308359391044114612521721332142352763273583894310511821231742052562973683894419211314420524628735837939104814293134195216247268329381044114912541358146315681675132631141751962472783193610391142124413521521131642252763273583894310451148125213561461156716721775188113263114165186247288329341037114212461348145315551659176118651970207715273134185216257318389421046115112561361146615711676177818861429313415520625729833936103811421246135014561559166317671869197220772182228823942497251002610612273124145176217238279321037113912431349132531341552062473083794010431146125013541458156116631767186919732075217922842392142931241752262915212318420524626728834142831341852262472783193310371140124313451449155515210315420523628735842948105211591265142931442052362973283994310501154125913611466157413253941151662072482893010341137124113501628312417520625727832936104011431247135114551559166417661869197320752179228323892491259713293114155196267308379391043114512501353145815621665177313263941351862172582793110361140124513511454155716621767187019762082132931141451962573183894110441148125113561460156614210314418521626729835939104511511253135514581565166717751421131641952563073484013283104155206247298349401048115112561362146615681673177818841429316422525633736841947104911531258136414211316420525633152103174225256277351426394135176227268289321034114214283104145206227258289341039114312491352145814283104135196227281327394125156177198249261032113912421347145215581228310413517622727832935103811451247135014531557166317681872197812283104135176227288339361039114612481351145415581664176818741977208121871328311414519626733836944104611501256136214211316419525630734840162831041351862372883594110431147125013531457155916641770122731041251561972382893510371143124513471453155816651769187419762079218122852387249125932697279928102291091529313417522628731834939104111471252135514591563166717701873197920812186228823922494259726105132731341651962372783193310371139124313451449155116571759186119642067217022752379248225862688279428102142731141351862172683293810441146124913521455155716611766186919722074217814293144195246287328359381041114512501353145915621670162831441952262572782993210391141124413481451155416561765152103154205266327378419451050115312571359146415691673177518771981208621902293239924101251052611313283144205256277338379391044114712521360146712253124155186227258289351038114212471352145915621664176918751226394135196247278319331036114012421345145115541656175818621966132631041251662072682993310351138124113461451155913283104145186217238289321036113912421345145015521660132638412516619721824927102911311234133814411545164717521857196313142931141751962572983293410401428313415520627731836941104811561225310416523625732835937104312253941351762072382793010331139124513273124175226247288329341042162113174255316357428519551059116412701621332042452763373884094210451147124913521455156116641770187719802084219016211317425533635743132831041451862372783193310371140124413491454155816621765186819702073217922822385248925942698271032810629108301123112017211316421528637142931441952463073684294910521154126113631470157216751779188617214321423530637740847950105511611421031441752162572983293510381143124713531460156316691821432142953264018210313418524628734838941104411461250135614210312415519625732836938104311491251135414581560166617691873198020832187229223992410625108261122711813293124155186207258289311037114012461352142831141551962472683193310361139124313471227394145216247278329341038114212481354145615601663176518681972142631041551762172683213273144165216247268329351038114012431347144915521655175916211316420526631736838943104911521256136013263104145176197248309321037114312471349145415561658176118661970207614283144165196237298339381040114612521354145715641668177318771982208721912298231032410625109261112711714263941351662172482793010321138124416283134195256277328389451052115612581364146815701676177918871527310415519625732834939104211441247134914571521131742453063673884495010531156126013641467156916741779188419882090219322952310313253114145196271428313420527632735840943104611521254135914641570132539413518621725828932103911441247135314571559166714263104155196227258299321036114212441347145015541657176218671970207621802282239013293124155186247288309361039114412501429313416520624730142831341852262472783393710431148125313561461156316681774162133194265286337391521031341752062272983393610431150125513571463156916771621231842252763173984895010551158126313691429314419521627731836941104311481254135914611566166817731878198020862189229223962410325107261122711828124132831441651962372983394110461150125313571463156716751777188219881226310412517619723825928103111371243142113174225256317348421327315421526628730833937104513253941351562172583193310391143124513521459156416681772187719812083218913210313419522627729833936104111461250135614601565166917741879198420902196221002310424106251121521131542152763474084694810511156125813621464156716711778188119891326310412516618722825929103511381244135212243841351561972482993410371141124813511459162103144185226247278299331039114212461351145415581662142931241852262873283793910411144124913541458156412253104145206257298319331041114712531358146515711676178118831991110217322425529635741850954105711591265192163194235296381329315417522625728834939104411461250135612273124175196237288339401225310415517622728162113174255336357408449481050115512621368147215751678178615210314418525152731141351762272683293810411147125314210312415523629733838944105011541258136414283134165206227278329341036114012431346145014210312415517623726831933103811401243134814541558166017651868197020762178228413263124185216247288319361042114512521354145915651429311416520624730832937104111461249135314561558166417210317426530636142831141652062473083593710421151125713631467157313273104155186227268289311036113912431347144915531657176516212316424529632736839947131429122631141451661972483112253941251761972282592810341138124614283124145186217278331327394135176217258299341036114216211313419525628730836938104414211313419521624728836942104511511254135914631567167017751877198220872191229814210312417524627730835940104211471252135514591562166917741881198520882194221012310624114251172612027124281312913530140311463215212253104155216277298349391043114912521360142831341552062272683214283144185261326394115186237298379431428314419526142931442052863173383794314293144205276327388449461052115816210313418522628132831041852462973383914283104155206257278319361041114412491354146013283104155176217238269301033114013283104135166187248309371042114612511355146015621664176718721976208313283114195256327398479491051115412591367132831442052763673884294410461149125413581464132831341852262773283494010431148125013551458156316651767187019752079218513283104145206267318339361041114512471352145515591665132537415521623725831132731141651862372683093410371142124813501458156416671773187913263104125186207238259271031113812401345144715491656176118641968207621832289239324972510326107271131226311416523627730833937103911421246134914521554166014283134185226267308339381043114512501354145815611666177118751979208421862292162103164235296327388409481227312417523627729832935104011451426311413517621727831933103611421245134914521556166017651871172103174245286341228313419522627730835937104314293144185236267298349381041114512511354145615621428310414518623726830935103711391242134714511557132531141452262673283593810431149125213561462156416721328310413518620725830933103711401244134714521554165817641867197120772179228714283134155206227288309361038114012471349145315551659176118641970207621792285132931141552162472883293710441147125113561461156712273941452162472783293710391142124513511457142831341852062372582993210341137123913411445155016561225310414517620725833939152103154215296317358389401043115113283104145206267348369411047115212571365146715711677178314210312416520623728835943105111531258136414681571167617791887142831241852362873483694210451149125513591463156816721774187919832087218922912395249725102261052710728115132831041351561972482693010371528312416520623727832935104011421245135014561559166217641867197114210314419524629731835941142631041651962372783393610401146132631041551762472683093310351139124613491455142831341551862072382592810311134123613391441154416471751185619602062216622692375248114283144185266287338369401044114912551429314419527630735837941104511481251135614601563166817741878198020861628312417522629732834942142931441651962572782993210361141124513511456156116631767187019761428312415519624726832152731041451661972683193310391313273134191328316152113174235296327398419471528311413517623725833132831041551862472883093410381142124513521456156116641768187214283124185216287318339391042114412491353145815631667122731241852662973383916210313417520623729835132113154185246297318369411043114712501353145715591661176518721974208021832290239424962598261012710513263104165206237288309341036114412461350145414293144205226267298329361041114512501353145615591663176618701326311416519623725828930103411391241134614501554162133204255286327358389441046115112531357145915671670177613293124145186207228259271029113212351341144915511657176318681972207421782281238324862592269927102281062911212253941151361872182392710311133123713391441154916511753185819612064216822702374247825821225384145186267308329381043114612481353145515581660176318691327310415518621723828932103411381240134314451550165415273114165186227248289351039114513273941351661972182393110341136124113461451155516601766186919742076218122832387249125942697271002810329107301111427310416518622726831933103711391244134814541558166117681874197720812187132731141451862172582893410411147125113551460156613263941451862372983693910441146125013541458156416211313419522626730142103124155236297358399411046114912511357145915651325374155216237278299341040132739414516620725831935103711411245134914511555166017641866197020742178122731041551862272782993310371141132537411515620722828933103911411246135014551561166317671870197320772180228423872493259713263104125166197218269281032113812411345144715521658132537412516618723828932103811401245134714491552165717601864196814293124185226267328349391043114812511355146015651668177218791982208421882292122631141652062673083293610401142124613491454155616591761186619702072217522792381248425902696271022810529111301163112212263104135196247298349361038114512481352145515591663176618691973207621792282238624882592269627100131521131341651962172383112283144165186227248279321036113812431345144915511655176018661428311419525628734836939104311451250135314581560166317651869197120742177228123852492142931141752062572783193510371140124313491452155516581763132731242052663214283104135176217248319331036122539411516618721825122631041351561972382693110391147125213541460162103154175226267298329361038114012451349145512293124175216247278299321036114213263841652162773083493810441150125713611466156916751327313415518623727829934103711431247134914541560166616293144185236267298369421046115112541358146414283154205236287318359391045114912531356145815661621231442152663073483994310501156132731041251661972182492810321135124013461427312415518623725831132831341952763173584194510481153125914293144215266307368389441048115412581362146515701674177918831987208921951921131742352663273884394913273104135186217238279311034113612441351142931341952262572783193310381145124813521459162103144195256287338399461052122537411516619726830935103811451427310412518620725827933103811401247134914511554165917631869142831141552062372883393810401144124813511458156516691775172103134185206247301225310412516621726833936103811441529315419526122631141451862172483294210441148125113561461152731141551762072282692910321138124315283124165216261225394135156207228269291032113912451352145615631666176918771984208821932210123106241102511426117271212812716213315419522626729831937104311511253135814661570167517791883198920912195229723102241082511226116271212812615293184205266337408459521057116112651367147115751677178518951998201002110622109231172412325126261292713128137291431328310417524628731834942104711521255135914651569167517801521331542052463273784212263114165226267308359371043114712541359146315691671177618801984208721932298122831041551862272682993310401145125113581464156916761521031842553163613273164225246307338359401044115012531358132731241651862172582793110341141124813521456156116671769187519792082218422892391249725100261051327312414521623728834940104311491252135514601429315419521624726831938104211451249135512243104165186237258309321037114112431349145215571224364105166187228249281031113512371341144415481651175618591961206421682272237524801226310418522631739842947105011551260136314681429313416521627733837941104711521256136014621567167117741879198520912195229923102241072511226114271202812529129301363114032143331463415035155162133154215246277348399411045115012521359146515671674177718821986208821942297231021326394115156197238279301033113712411347145215561660176514273154225276307328379411047115112551361146415691672177818851221031441952162773183594010421145124913541456156116641769187515293174235286377398429441048115312551359146215671672132731241752362573183593910431151125713611465156916741521031741952262873083794110431149125413591465157216771721231942753263474084494810511153125613611226311413520622726830936104211491256136214691574167913273114155216277338369401043115112551359146412263114135166207268319361039114512501354145715601664176913273114145206257308359401045115212551359146412263114155196217278299351038114312491354145815601664176718711975208114263124155206247328389431049115412601365146915751679178318871992209621101221042310924116251221628312414520622726830937103911431246135114561221031942853764675586497310821191121001310914119151291613817147181561916220171211802218423189241982520126205272082821329218302231326311414519622725829935103911411245134814541556166117641867197120772180228223872492132731141551962372983393710411145124913531458156016641766187019752080218522902393249525100261042710728110291143011831126321293313134135351383614637149381513915640164411674217143175441794518346186471904819612253841351561872282592910311134123813401445154916511754185819612065216922751521131742152863173684094310471151125613611225394125156177238279311035114012471351145515581661176612263114165226267308351621031612263104155236307328399421047115112601365162931541952362673083512263114145216267328381629313418524629142123154185206247288331326314424527632737840944104811531258122631141651962473283494210441147124913551458156116661768187119792086219322982310312263114145206227288349381044114712511356145915631667177118761979208421892294239824103251092611527120281232912930134311363214033145341503515236156371613816339171401764117842180431834419145193461984720048205492105021251219522225322654233552385624257246582495925360257612626226714263104145196237258299321038114112451348145215561659176318651968207421772281238724902596261002710528109291113011331119321233312734132351371225374135156187218239271030113212371340144515501653175518591964206821722275237724802585122631141651862472883393610381142124513481452155516611765186919722077218422882393241012510426112271172811929123301263113032135331423414635151361533715938161391654016941177421824319044192451964620047204482084921550222512255222853231542335523856242572465824959251602576126362265632696427365275662796728268285692897029412273114135186217258289311034113912263114135196227298329391042114712541357146215691672177818811983208721942210023104241062511026113271162811829121301261226314419522627729833938104311471251135714631227312416522627731833939104611501253135814631621131942853263474184495110571162126712263114135206267318399441049115112591362146615681673177618811985208921942299132539418524626732835944104611531260136314651567167517791882198717212317422528634132739414518620723826929103311371243152103124185206247298329361039114412471353145715621226394175216247291621031441652162572883313273134155206267288339381042114812551621031341852463273984614283134155216287328371226311416518624730834938104311471250135514591562166617711226311416521625731835940142731441952262873183493810441147125013541459132831541852663273984494610531159126313691476157916821787189215293184285376467518559581066117512791383148815931528312414516618726829931103611391244134614521555166117671426394115166197238279301034113612421345144915531656176218681429314416522628730833937104511491254135614601563166817711873198120842186229123942498251002610327106281102911330115311193212315210315421529634737842946105016210312418525630733837939104211461429314419523627731833936103811421247135014541560166614293144165216247278339361041114312471351145415571661152831241651862072382593010321138124513471453156016661428311413516622725830932103811441246134914531556166117631867197220762178228423862488259126952798281012910514293144175216237278319341040114512471353122631241651862373083593810411147125118213318421528631737839942104711501254135614601563166717711874197720802184228623912495259726101271071628310414516622729834941104611521258136014651569167417761881198714293134185206247278319341038114312471353145715591664176818701972207721832288239024952597261032710913263104125186217268289321037114112431346145015571659176318671970207417214319422527635742847952105511581262136614681571167513210313418521626729835162113154205246307348379421048115212571362146615711677178216210314417524630736844950105811601264136614681571167617791883198714273124175206277308359371045132638413515620723828930103411411244134614501552165417581861196320662170122731241751962272682893410391142124413521455155716621765186819732075217822812383248725892693132731441852162472782993210351138124013461451155516581762186719712074217922851224310412520626728832936103811431247135014521554165817621224310413519622726829935122631141551762172683193410401146122731241852062572883093210361142124813210313417522627733837941104611481254172103134185206247301225310413515623726830933104114293144165206247308339381041114512481351145315611668177118751979208421872290239524992510426112271172812529129301333113732143132831642152963374084294710501152125713591463156914293174225306327358409471049115712591363146815731675178118871994209721101221072311324120251222612727132281372913930144311473214933154341601329311415517621724827934103711401246134814541629313419526629732839122437411516619723828932103611411243134913210313420525631736840943104511481252135714631566167017751878198320862188229523100162113134195266317338399451224374115166197238259301035113712401346144815511654175918621965207314210315417521629735840945105115211314419521626728833939104311491252135816283124175216257288319361041114612511355146015641668177118771428313419524629731834937104011441246135114541557166117671873197520782181228423892493259826103271072811029115301173112032123331263413013210312415523626732837941104311471429311416519624729831938104411481252135514591226311417519625728832938104011471249135614581561166317651868197220752178228123852489122431041251561872182392710301133123713401443154516481752122437411516620726122539412516622725829122438413516619723826932103611401243134614491553165713263841351661972582793110351621031241651962672883293613283104125156227288309341038142931341552162472783593710401144124913511453155715283124205266307388429461051115512601365146915711676177818821984208821912293239624100122631041551762172482893110341138124113451447154916531756186219681226311417521625730832934103811411245135114531559166517671870197320752179228513293124165196217258299331037114312263114135166207228259311037114312461352145715631229312415522626730834938104511471252135815210313417521627732838946104911541258136214273941251662072482793110341136124013451447155116541758186219672072217422782382248525911529313419524629735838941104411511253135814611566167017761225394145186237288329361041114612521358146315691675178218851989209321972210223104241081521031241651862072482693110371140124413461450155316561759186419672071217322772380248425862690279328952999301013110432107331113411513283154185216257298349381041114512481350145615601664177318771985208921942297231022410925111261152712128127142931141752262873083593910441150125213561460156416681772187619782083218922942396241002510226108271102811512283104165226257308329401043114712541360146615691674177718811226311415522625729834936104111471225311415519623132639413518132631141451862172482993210371139124313461449155216551757186119652069217422792383248925962610227105281092911430119311243212833132341381328314421132103134181327310416132831541852562773183593710411144124713521454155616621225384121321031542052662973183493710401144124813293124155206227278339381046115312611367122631141652062372713253741151561772382693310351140124613531456156216651768187219772084219122941328315423528634738842946105011521257136414661570167417781227312416520627733840943105011531260136514701572167617213320422526629733837152113154175236257298349371040114412461350145615611665122831441952662873483994310481153125813631467157516791783188619882093219914273154205246267318339361042114912531357162113144185226257308329361041114514293124195216257278329361039114212471351145516211314417521623727832939104211461250135214581562166617681872132103144185246287338369401043114712511357145915641667176918731979208521912294231022410425108122631041352162773083493810441226311416518623726829934103811411245135314581561166517681872197520792187229223952410012283154205256277308349391043114812501355145715601663176518731975208221872290239324972510026102271042810729115301203112432127331321226310418524626731835940104211491251135414561560166317661871197617212315422525630734840944104611501255135914641568167017751878198318210315419524627731836941104411491252135814611564167117741877198120852191229423972410125105261111421031241752462773083594010421147125313561460156316661769187319792081218422862394249725992610427107281102911530120132831241752062572783093310381140124413481454155716601764186819712076217922832386249225971217213132631413273131521131715293114155216247301325310413519622724830132831041752362672983693910451628311417520623728831940104311451251152103184205226287308361428310414519623729835940104611501254132631041652162372883593810411148125013541458152831241752362573083812283134185266327378439461051115715273114145176227258299351037114012421346144915551529313416521628132831141752315283144175206227288369441047115112551521131541852362572983293814263104175206247278299321038114616283104165206237291325374115156207258311527311415517621727830932103511381245134914521558132639413517132731241913273124155176207248301326384115176197271329312416518622724827929103511381241134712263941351862272483012263941551762372582993210371139124713273941552062272883293710391145132538412517623142731241852663373784094410501621031441652062673283693810441729313416521627731837152931241952362673083593810441148125013561427312416519625729831937162103164195226277338391621231742052363173712273124155176217268299341038114412471349145215581427310415521623728835162931141551762313263124155196227258279331327310416519622142731041551762072682993410391145132931141451662072482793210361142142731041651962472883193610411146125113561458156016641768187319752079218222842388249217210313418520624730122831141552062672983513211316419522627733142631141551761972682993310391527312414519621727830932103511411245135312263941351862272482893310391628312415519622727830932103611421227312417519622728122103124165196267321327312416518623142831041251618213317425132731241451762072282493010371140124313461450132103134175231427311415520624730836132731141552116211314418524152931241952663273784394610511157132731341652263073684094613273154185256287368409431049132831341552062473013293144175226247268289311034113912431527310413517622725833142831141651962272683293810411144125018211316422527633142831341952362917293124165206257311221031541852162473013283134165206227278309361426313416522624728832934103811421427311415519622724828934103711411228312418521624727830933103714273104125176237278319351038114415293124205266317348369401045114812511357146314283114155196217258279291034162103144195216247298351821119213192131227312122103164195256287351327313419524631152739414518122831141652262973183393715293134171325384145206247281821131441852062272783093710391142124612263131429311417142831141916283114145176211428312417523627735182151225310416152731141652062272816283134165196241326311415519621727162113164245276327381225394165196237291621031712253741412243941715210313416524152931342052262815273941552113263941451662172382793110361328311415518625192123154201521031241852513273114201429312415518620723826930103817211317423528633122531041452214210316422132831141351762313273114191528311416152831412263121326314142931341551915283161226394125146187241621231742015283131521031341652413273114145176197231428311419142831241752362773413253941515293114155211328310413519152931241651862614273131329315418521628122538413519142731342114273114135176231321031442214283124145176231529313421152113154225266321224374125176197231224310414520142931542013263124181426311415522142103144201528311416524132731141914210313418526172123144195251621131342016210312419142731041252013273114191325311419122831513253104181225384125161225310415519625152931241652213273104181428310416142731116293151427313417520626122537413142931342017211316132103124181521031341915210312418524626732172931342152914273114145176231224364851617212316142731041551862072382692910311137124013451450155416571760186219652069217122752381248325862690279228100142931341918210312419122631241551962373112253841452017211315162103124191427314142831613253114191721331741952717211315420523630734839944104814283114155211921631842352918214316424192153231921532316212314421142731141713273114191527313421132831141912253104135181621031642052814283114175241621131813273114191621031241914273941413273114191325311419132731041812283134191328310418122731415211316422172113171327310418122538413520152931141917212315419152831141352114263104135166221721431742117211315417522182113154185206261621431742018213319423529122731542052362913273941452113273124191521131442012253841414210122531041415212314418524162103144195236277318369401047152931241713273114191528314122631041713253741051613263941151562014283151428316132831512243941351562214283124201628312418142831442152914273161328311419142831141417211317192171427314418522630142831141415293151528310415518623152831616293114191128310415122731241451762212283104155176207268309331037162831341752162573383694010441421031441952162472883216211315417522629732838940104311471251122731141351862472682993210381529314416521623725827929103111351237134014461550122731241651962573112253841652262573183994110481325310415517624142931241551962572783415293124185246297361224374105156187221327312415519624726829931103516210313416520623726832142739415520625730832937104011441328314417522628736162123144165201621031742352763313273104155176237301227310415519623728830933103811411246134914521557166217671870197420802183228723931225384105136197238269301035113912471352145415601326310415520623728831936103811451250135514581561166417691874198020882193229523972410025105261092711428121291243012731132321371628311414516621726830933122731041652162372883393610411146124913531458156316651769187319752080218522872391249525982610227106281092911330116311221328314420523629734837939104411491253135814631565167012263114165226307398419461048115212591366142113154205276327398439501621231842152662973312253941552362914273124145196217248279301035114215283124165226301428314421524629733835939132539411514616720822927103111331237134014431549162831341752262672983319211315420162123144211329314416520624728132531041551962215210314416520623726830937104111461429312417521626162831241852262672983493910461327311416518621725828934103911421247135014541521131842453063474084813211317421526152103134215281521231842152662973183813263941652062314273124155221621031541952563073516212317422132531141552112253114135156177211326313416519142113154211321131542014263104151326311415517622725829933103815273114135186217258329351039114515293114145176207248299331035114016283114135166217248299311038182133154195236301225384135166211226394135166187218249281034114012210316419525631737122437411142731312253749512618724826933122639412516619723827122538416519623727829932142931441751962372883093614212316422132831441852062813253104125166187228259291033114012421345144715541326394125186207238299311034132831241652013273124155186231325312415518624132739417132631141813293174231328312420132831341716210313417521625731122431041451661972282592710361224374105181721131441715211313417523629132931341952462973383894010451326311417523629731835941104311491252136014631567167117731877198120862188229023922495251022610427108281102911430116311183212233126122631041251662072682993310351139124513471451155716631321131742252663173484094510511154125913631468157416761780188419882091219322992310515273104155176207248299341037113912461352145715631665176918761980208221852288239024952599261032710728111291133011831120321233312634128351323613812283114155186227258299351040114312491353145615591662176718701974207621792283238924962599261032710928112291163012031126142631341551862172683093210351139124313461449155116541758186219642067217122742380248425862691279328972910230107311103211233117341221325394135186237298339391044114812511353145515601665177118771979208521892294239824105122438413518623727832938104011431249135314571561166617701874198220872191229512253941151561972482693115283124155231225394115156187228259291226310415517621172931341551962172383193610411147125413571464156716701772187919851325310413515620723828931103411381242134414491551165517611621332042252963673984394610521156126015212317424529634739844948105411561260136714263104145206257298319331038132831341752062372583093310381142124413491456155916631765186919732080132537411515617723826931103711391244134614501552165617621868197020742179228423862491259626982710028103291083011331120142731141552262572883193310361140124713531455155816621767186919732077142731141752262973483994210461151125613601462156616721779188219852089219222952399241032510526107271112811429118301223112532127331293413214283134165226257328369441049115112551361132831041552162772983293410401721131641852463073684294610481153125914293144165196257278299321037114415210313415518623728132731141551862373183694010441146125313571462156516671773187519811326311416122639416519623730132731041351662072483093210361140124213461450155815283144185206257278341325311414518621725833152931341752162673383894310471152125814283124165246307328369391043114712501352145415571326310413515617720824928103311351241142103124155236297358399411048115012551357146015641666177218761979208121832289239224942510026105271072810929115301203112232126331303413435139361481224374135166237268309341040122731141652062472883213293134195246297328379431046114812531356146115641667177218771429315418523628730833935104111461250135314581563166817741877198020842186228823912496251002610712283104135176227248289331035114112451348145412253124175196227308369381042114814273114155216257308329381045114912521357145915631666176818761227311419525629734842945104911521257135914611566166917761325310415517619724829934103711441246134814511557166017671871197420762180228223842490259714273124145196237268289331035114314263134155206227258319351038114112451351145415571659176118651969207521772283122731241451962272683093210371143172123144195256307328379441049115112561359146115681421031241652062572883293710391141124413491453155912243941452062372983193710391143124713491453155716631768187119732079218517210314421523625728830936104211441246135217211313417522624728830933103511411247135114561558166412263941151661972182592710301134123713401443155112263841051461972382593212263941251862072282492710321134124213253104155206237318359371045142113144195246277318379421046114812521356146515293144195276297348399421044115014283104135166197218249281228316422528633738842947104911571227311418522626734142831241652162372783093510411145125213541462122631141451662413283124145186247298349371044115312591365147115771680178614263114155176197278309321037114012421345144915511654175718611965206721712277162113154195236297338419491053115812631366146815741527310412516619723826932142931441752162572883193710411148125213551461156416691772187619812086219022942310324107251122611527120281232912730130311343214033143341511329314418524628732836945142931441852162673083393610421147125413581461156716711776188019882094162113144185236277348399441046115112541358146215651673142123174195226277338379411045115012551359146415671669177712152113134175236291429314419523629731836938104111441246135014561227394135176207258309331038114412461352142931241552362573083493610391146125313601467157416761780188719912094219815283124155186237288329371042152113164195236297338379441046115512601365146915731675177818821987209221972210223109241142511826122271281421131541852262873183493610421150125813611464157016761421131441652362873183694010421147125312273124185226267308329371043114512501353146015671529314420528634742849952105511591261136514283114145186227278309341036114212481351145615621226311416521624726832936103911441247134914531621031641852362672983714211313418522627729833936103811421244134914541557166313253114135176207248289311034113912441347145315591529311414517621723826931103311371241134717210316418524627734840942105011521256135914631567142931541852262815293144205256277318339381042114412481350145615621421031241752462773083594010451147125213571459156216661769187519772082218822922399241022510526108271102811429116301191328312418523631737843947105011531257136314210314421527631132831442052663073414293144165216267328379421047115012581364146715701678178118831987142931441852262773083393710391143124813501452155616581763186914283114145186237258279321034113812421348142731141351562072483093710411143124713501454155716621770187219762079218122862391249525982610027105281102911330117311223212433128341303513436136371383814239146122538413518624726831934104011421245134914511556165917641866197120742176227923822488259126952710114283114135166197238289311034114113263941251662172782993410371141124513491455132639413518621727132831441651962172582793110341138124213451447154916521429313415518626729833935103711401245134714501553165617601862196620702172227623812485258826922794289629100301051521231441852262673183693910431146125013541459156416681772187619792081218422892393142931141651962172582993310401521331842152462873283794210471150125613591463156616681774187719802085218822902394142831141351662272783193712253941251862472883193710391142124812253941251661972482793010351137124013421446154916531759186519702076218022842388132638410516619725833936104117212317422524626729831933103611401246134914551561122539416520623725829931103711401242134814511556165917631866197420762181228618210314417522626729833935103911431250152931441652162572883393610421521131642052562973383994510471152125513611321031241752262973484294510481151125513581462156716701775187719821328316419521625727831933103611391245142931141652162573083493810411145124713531529311417522630735838943104911521256136414671569167313283134195246267328389421046115313253941752462873483894110461429313418525628735841132831342015273104145166237288329361039114512531227314416520624728833938104011421248135114541556165817651871197620792181228723931421231842252462773283694010451147125313283144215276327388469491055116012621369122831341551862272683093510371143142831441952262472983793910451152125613621428311414519626729836941104311471250135314561561166517691874197620821428312416518621723826929103111351241142831341852362773314283114145196247318359411046115112571359146615701674177818841988209021981226384115146167228289301035114012431345145312253941151562072582793010341137124213491451155416591761186519682076122631141351761972182592710291133123513411445154716541759186119682073217822802385248725902698271022810629112301181226310415519622726831935103711391244132538413520622726830933103915210317421527629734838944122931141852663212283104125176231225384115136177231225394145186217238259281032113412371341144515481652176014273114175196247288329361040114616211315421525629733842152731041451662072582893210371139124613521458142103144165206247268319351040114212441348145215551658176318651969207321762280238424882591269427982810129106301103111532123142831141452162873283794314283134215266307328389441048115312591621131441852262814210312417524627730835940104211471252135614601564166717731875198020832187229123932498251041421031542352863173683894310471150125213571459156714283134185226277318379401043114512511325311418521625730833937104111431246134814531557166217701215273134191428313418523627733152113164225256277331621231441852162773183494010431146125113561460156516691775122639412517621724828933103611401249135314621566167415273124185216287308361227312418526629732835940122731441952262772983494110431149125213541462142831341552062572983393710441146125113551459156712273104165196237278309361041114512471351145615611667162931541752262772983193510401145125113571464156916721777188319891329312419524627732835940122831341551862472783293510411144124813531455155816621767187319772080218622882394142731641852362773183793910421145124813521456155816621766187119732076218022832389249625102172123164215236277328399431048115012561362146815741678178118831989142831642452963273784494910551160126313681474162113164225271428313417520625728834132638414517622727835942104511501256162133154205256307368409441048115012531356146115641667177218781327314416520625730833940104311491253135814601564166617701875197820841529313418523629736838946132931541952262573383693810401148162931442052362572883493710421145125013551457156016621765186719722074217822842388249325991429314416522626732838941104611521721231742252763674084494910551327312416521624728831936104011431248135514611429314418522628734836940104611531256136314691571167912273124165206227308359401048115112571360146615731679178318871993132113134195256287348389421044114912551359146315651670142631041413273114145176207248289331037114112431351132831441752362773283493810421146125013551460156416671771132931241752262573183493610381142142103124195226287338369381044115013283134205266327348409451048115312601363146715721674177818821988132113174205236297318379441047114912551328311414519624728834939104411491253135514591565167017761879198220842187229112273134155216237288339371041114312481351145315551659176318661973207921812285238824912597261011227312418521626730835939122731341551862272582793110361138124213461226384115136157188239251029113112341337144215451649175313293144205266307348399451050115212541359146415671672177818801986208821942297231002410525108261132711928121291253012914293134195256287338379411043114612501355146015631665176818721225310416519623729832935104011461427310416519623725830932103911421246134814521555165817611866197020772180228623912496259826101271032810713273941451962172482993110341136124012263134155196247278309341039114314210314417519622726830936103911411244134714531558166217661869197220742176228023862493259826103271062811129120301223112632130142103134205246287348389411045114812521356122831041351561872282492910311133123613391441154316471751162123144205236297328379401043114712511354145815611664176618691973132739413515619723826929103211351239121314283124165216237278319371043122436414517619724827932103814212318420525634740844948105711601262136714701572167617781884199016212314418524628732837940104311481253152113154205256307328379401045115012531358146015631666177018721977208221842290132631041651962472883293410381140124513541456155916611764186719711228310414520625727832935103911451248135114531556166013210313415518623726830934103811411245135014551559142123184215246267328389411048115412601363146615711674177718831989122831642252663173483894310461149125213561326384135156187208249291035113912421347144915561661176618681974207921822289239224952598261062710828114291183012231127321313313334137351423614637148381521329312414517619724829933103811431247135114531556165917621866197020752178228323892495259726102271052810729110301141529315418522625729836939104311461250135414561560166517701875197920832188229123982410225109261112711428119291253012931133321383314334149162123144185206237258319331038114312461350145615591663176718711428312418523631734839942104811521629314416522625731836942104611531257136114641566167117771879198520882192229614283144185206247278329381225394125186217238259291032113512391342144815521656175918611963206921712275122531041551862072582792910331135123913441448155316571762186519732076218022841321131742052562873283594110461152126013621467157316761778188419872091219422962310124107132731141552062573083694410461148125413581462156516711773187919822087219122942396241002510426106271102811429118122831341652062472783093410381141124513491453155916631767187419772081218522911327311417519624729831938104311451251172123174235316387408449531056116012641326310415521626728833937104111451247135114541560166417681327311416518621723828933103811411246135213283114195256287308359371041114412471352145515591663132931141652062473083593710411327314416521624727829932103611381241134414481328314416521629122539414520625728832934103611391244134714511555122831141652062272615210317419525627730832936132931141451962573183493710411144124913541459156316671774162133184235316357378429441050162143194265326387428479511058116416293154205226291529313418521624729834937104111441246134914571429312416522624729831935142103134185246297358379421046115012551358146215661427311413516619722828132731141451661872182392710311139124213461452155816601763186619682072162123174235256297358379401043114712521357145915671672177718831990209321100221032310524113251152611927123132639411517625727830934103711411245134814501552165618213315418520624727829932103411361240134214451547165117561859196220642168132931241952462973183593810441148125113561463156616701773187619792084218822912395241012510426111271151326314420524626730833936104011451249135214561562122831442052562773183693910431147132631041251762172482893010321136124013421446155116561761186319672070217322771521131541952162672883193510371143124613531457156316671771187319752079218122872391249625992610327109142831241451661872682993110361139124213461450155612172131329314419524630142638414519623727162103154195216257298351329311414516623132931141451762272483217210314418522625732142103124155236297358409461052142731041551962372683093410391145152831041651962373083293610401144125015283154195236267288339411043114917210315417523627731834941104511521257136114641567167017731876197820841427311419162831041551962172883393712263941351762473114273124155186247288309341039114212461428310416519621727830934162143194215256317368429471052115912661628311417519626728831935103711401242134414471553122931441652062372583312273104155216247278319341040114615273134155196217258279311034113712441347145215581661176418681971207721831327312417520625729835940104311461252135414601821231742052362873613263134185236277318349401327312416522162103154175216267321226311418521626730835939142931341852162472883093616210313416522625728830938104213293134165196247298369381044115012561361146415671672177718821986209121962299231022410525111152731141651962473083393710441151125513571460156616711777182143194245301629311414517621727833940104311461253132638411517621723829932103411381521331542152863273813263114145166197238289311039114312491329314416521625727833940152931341551962472783093210361140142931141551962612273114185226277341721231642052362673083614283104165206261527313415519621726832934103711431247135314210314421524629734838941104511471255142931641952162573113283104135166187228249291037114412491355162831141752062372682993210361140124714293134195226247301521031241651962172482893010331136124013471451155316571761186712253841051361771982392610301134152931341852062372582893110391146162103174215266307361421031742153063618212317424142731041451862172582893316213316418520622727829932103611381240134314481224374105166207278319351042132731341752362573083614283144175226257328359391045132931641952262572914273114195226247298369421045114812521359146215681672177912263841151662372683093616213315420524629734836940104311471228311417519625729832934104017212317421524627734122638411516621724828934152103174235291621131542352914293144165196257308329381044114812541359146315691429313422525629735132731241752162712210312416520626122631041351662213210314419521629162831241652162472783193713293144185246287341228312416522122831141351762172883193710421148122437413516620723831152731542152362873183615211318421527632736842132739415518621726829932103811441621031241552362973283894310461152125713631327312417519623730833935103811431246135214210312417523627731837152739411516619721827152931241652062612172131321031241652262572883414283104135171426311414517623142639412514620726122103164195256277318371225384105146197238269321039122436485141629313419524628142931241652014283114175206261326312415520624728122731041652062513283144195236291327313419522629142831341652162773183512263941351762072382793113253104135176207258319351427311416518624132531141352114273941451762314210314418524152103144185216271227394135181521031415210314420142133174221326311417523626731837142931241952162773312273104135186207281421231541852162918210316418521625729122731412243741351962272583215212314418524132638411514620722827935103911441250132831642252563173712210313418522628730836122531041752313253941351561972382692810341325384125156177238291226312142101621031241814210142113144185241226394135156197251225384145201225374115136191229311415519122631116283124195271421231641915293124175221228312417520626732838942104814263941251461972515211317422529162103171215211313417523629122431241852363113283114145166207248289341721231942252663073283894010431148125013551458156316691775187919832089132731141752162673083493710411147125313263104141428312416520622725832935103711431248135314571427394155196257298349371041114512283124155196237258309341037113912451347145015541660176418681972132631241752262672983393510381142142831141451962472983293710451147125113571463142739411519622724829934103711391241134414491553166012273124185236257308349381043114712501355146112253104165196237298319341038114414293124195256317388469481055116312661374182133154205236307338359381040114512501354145915611664176818731976208321872292239524102122831141651862373083393710421147124913551426311414516620724827935104011461249135414571564132831341752262673212253104175246267328389431049115712611367147415771679178514283164225276337358389411045114812501356162831241652062572983293510391142124613511455155816621767187019752077218022842388249416283104135196257298349371043114612511354145715611663176618681970207321781428313419524626729834937103911441249135614581562166812263124145206227288319341041114312461349145315571662176418701427315421525629735840944105214263941451661972382693210371142124413481454132931341852362672983593710411147142931442052863573984194610491151125613621429314418521626730835944104911531259142739412516618725827930103411381240134414461552165417571860196320662169227814273124145196237268289331035114314293154185236277328359421047115012531355146114293154195236277338399451051115312591363146615681676142931141952262772983713211313421527630736842121521131341752362912273154215246307338389421046115212571360146615721228310415517620724829933103811401245134714501553165517631869197420762179228223842489259126942796281002910613263941351561872282492610321134123713401447155016521758186414273124175206257318399451428313419524627732837941104411491252135514591228314416518625728834936103811421246134814521555166117641867196920742178228423872493259912243741151361872182592710311133123613391441154516481750185419572060216322662370247412283104135156187228289301034113812401343145015531657176118701972207621782282238724951429314419524626729833935104111451248135014561558166617691872197613273114155206257298339371042114712521357146215671675122731241652062273083393610411144124613521521031542152562973283794316213320426531634738844948105311591265136914721575167817821886199220952198221002310624108251122611727121281262912930133311383214133145341503515536160371623816439169401724117542179431834418545193152103154195236257308379391046114812531358146115661670177518811528315417521629731835938104111471249135314571565166917731876197820812185228723922494259726100271062811315210312417522624727829932103411391241134514511555166017661429312417525632735837943142831341852162673283994110471153126213651471157616801785188819922010021102221072311124115251192612327129152831141351762172983293510401142124513491452155616591765186819722075217922842388249125951521131842052663173483994110441146125413273124155196267288339351040114512491355142831341952663173483894410461148125013581460156316671771187514263941351762472682993210391143124713521460142103144165226257318349381045115112541358146215671670177718801987208921922294239924105251102611427118281212912330128311303213814210312417519624730836941104715210315421523626730836940104211461250135414591562166717731328312416518622729835939104411491255135914621566166917741880152731241552062572983193410381143124613491453155716601764186819722078122731341752162772983393610381144125013521456156013253841251662072582793210361138124013441450155516571761186514283104145186217298359381041114712521355145715611667177018731976207821812285142831341852162673083393810431146125113541460156616691773187915283114155206227278309361039114412471351145315591661176718701974207621802284238724912594269927107152103154175216257288351621131742553163473784094410471151125313571460156416711776188113263114165226287318369411047115112531357146115651669177418811429314419523629732835944104911551259136214651569167317761879198420912194229723101241052511126115271192812429129301333113932144331463415035154361573716038167172123171721231742012263114165186247288349391046162113164195236301328313415519623728835142103124175246277308359401042114712501354145915681675132631041451962472783593710411144122631041552062673483894210441149125613621467157416811784188819952010121105221081527311413516619721826930103611441247135114541427310414516619722825927103011341241134813283124155226267318339361039114212481350145315551660176418701972207521782286239224942597261012710528109291113011331120321263312834132351353613737141381433914840153411564216143165441721527312416519622727829933103811431248135314571560166417691874197720812184229023972410416212317420526632132931241852062673083393610431147125013531459156515283104135166207278329411050115512591366147315210315419523627731836940104511491253135914631568167017761879198520892192229823102241042510926114271171428313417520625728833937104111451248132831041651862472683193810451521031541952563073714211317419522626733122731341652362572883093410371142124913521455156016631328313418523625728832939104111441249135414581565142731342152763374113283144165206247308369411048122531041251862172382592910331140132731642453164074284595010551159126619212316425529638743850122731241751962372783393910411144124613501453155816601765186919732079218612263114165226267338399421048115512273124175196237278299341037114112441348145215551328314417522627734839943104611511258142103164195236267328389431049115212581365122113174235286351226311416523625729833938104011441247135114561560166217661871197620812188229123972410325107261122711428116291223012913283104145191527311413517619723826930103411391243134914541561162103144191226310417519623731839945104711541258136214701576168017841889199415213322426530632737844950105411591263137014741577168017841888199315214324433542649754856961106611711276138014841589169517991810219106201112111614283164225266307358401321031542152717212318425532639743849122731541952663073283693910451148125113561460156316671770187419772081218522892396241002510515273154175246307378449511054116012681370147315751681178318861990209321952299231032410525109261122711528117291213012431128321303313334137351403614637151122739411516622731834940104411481251135314591565166717721877198120851325394145206247308389431427315421525628732837939104311471251135614611521331642352663173984495010561158126413681472157416761783188819912095219722100231082411025118261202712528127291333013631141122103124195256287318359381042115112531359146215681673177718811985208821942297231032410525108261142711928124132631241551862172783093310361142124513481451155516611766187019742076218122882391249525100261052711013263104125206227308339391043114512471353145815651670177718811986162113194235276327371529314419527631734837940104411491253135914621570167717821889152731341852062472883193510391142124413471452132931441952463173383594010441147125213273114135166187218249271031113512411327394155196267308349371039114212441350145515591663176618721977122731241852062673283894410461150125413591463156916741780188219892091219722104231082411225116261192712428128291303013531137321413314334149351553616037165381693917440179122531041551762372983394110461150125613591464156816761783188719932099211022210523111241152511926122271252813013263104155216267328389441046114912531358146415701677177918851989209121932299231032410525108261112711528120122631041552162572983593810431146125013551460142831241852162672983594010451150125413581464156816701774188119872089219522972310024106251092611427116281232912930131311383214233146341503515536162371683817139175401794118542190431934419945202462064721148216492225023051234522395324454249122631141651862472783093410401146125013521456156016641226311416518624731834937104211451251135314591563166817721874197820852190229223981227312419522626730835940104511491255136114641569167317771227314416520627733835941132731241551962472883293510401144124812263114165186237278319381040114612501356146315661668177318791729313417521623729831935103711421247135114551558166317701875197720832187229223972410425112261172711928127142631041552062472813210312420527634740843946105311561262136914731577168017841887199020942197221012310824114251202612727129281332913630144142123164235266327388429471053122631141651862272582793010331135124113451449155216561758186219652067217022742378248125872693279628103291113011431119321253312834135351383614037143381493915140159122631141652362873083493610391143124613491455155816621767187119752080218222862389249325972610527111281152911730121311253212912263114145216237268319391044115012581360146615691673177918811985208921931421131541751962572983494010441148125513571463156616721776188219842089219122982310224104251082611227116142123174225276337358379441051115912661368147215761681178318911229313419524628730832940104311451250135514581561166515293114175196217268299361038114212451350145215571664176618701976122631041352162773283693910451128314122739414518622726834937104011441428312417520623727122739413518622728832936122731241552062372582893214210313419524627734841944104711491253162133204245296367408429441047115115210313416520162831441752363073283693910451621231541852214210317419523627731837142931241552162573014210316419162123164195216247298329361721331842052262472782993210361429316421523628730834938104211461248135114571227316418524627733837122638411514618722826152931441952262472783093414263114145176231527310414518623132638412514617723826931103611411245142931241451762115273114135176211429313417142739413517620727829935104113283124145206247278299331037132531241551862272783412263114145176207258311327312414520625727829933162113184215251325311414518622122531141752162572917212315418524132531141552162513293144165196217248289321038114012461348145015541224374125156187208239251029113412371341142931742352663273483794110441148125013541528310416520624727830934103911431249132831341952516293134195216257291329315420523626732132631041552162713273124165216247278329361327310416519622727832936104311451249135319213192131921319213142103151328313172103151427310415142739412132111527394135181621031341813253841351915211314418522624732122931141552015273124165206257288319371521031241751962519211319132103124185261328312420132931341913293144175231421031641952262572783193712263104135206281227311417522625729832938142731141551962315210313416522152931341852062372983493816212314417521626731835939152931241551862072683213263114155231528314417520626152103154175201528311419172931241651862613283124155186207281621031341852463073613273941651962473083415210314418520625172133214235276307341326384145196247301225374105136177208259321327394125156217248271527310414521628731837132113134175206257321427394125166217258311721431842252916213317425132538413518623729152831241551862172582913293114155196227258289311035113914263941451662172382793010351139124113461729311413516621142831141451914273134175251327311417520627122631041251561872282493012263841451662172713283134185216257328359431429314416521625731161521012243916213162131621312263941412243641013273134171521131514293171527394125181328311414518621132831241651962515283104145166221621331541752362773283694110431147125312293114155201629314418524628732838142113164195236291629312418526630733162113194255316377408469491056115812631365146815701674177718801984192153194225281821231641852162572883315210315418523627732152103134165241528311414516621727132731241852262813263841151661972182593114273104155186237268311228312417519622728122831241651862712283154195216237268311228313415517623172123164185236291227394125156177198271227315421523625731122731241551761972812253841551862373083694012243104145201228312415517621727122731241552112283124185236257331225384115156207248279331327311413519624730834939152831441952362673213253941351862272582793313283134185216247288349361042152931241652362773183493710411328313419525162931212243104135161327394141224374105141428313122531113293151225310142731241451815283124145181225311413516192123144171427311415132731415283141226312414518122531041351613263841251562117212318152123181429312418132631041412243741252062473183393710411144124613511453155916621766186919732079218322882390249425991229311415142103171325384105186207248319351038114012431345144915531656176018651227394155226287368419471326384105136157218249281031113512371341144315471651152739413515620723826929103511411329311416518621723827930103211341239134214461549165414263841651962172683193610421145125013551460156616731521231742253063373884094310471154125613601463156516711773187819812085218922912395241022510526110271162811829122301253112916210314152103151528313416519122438411513616720182123151326311414518132631341651862113273104131227313419132639416142631041514263104151427314419526122639413132731341914263104151426384141428312418152831214273941251662172382793219213162831114283114171327394145201421013263841151562014273134191721031515211172103171621231742213273104165236267311621332042352663114293114185206237281429312415520142831141451962272582814211317419526631735840162931441852662973283514293124155216267328379431427310415521162113174215261621131642252763073383593817210313418522142113154185216241421131441751962314273124161429315420523625729142731141451962313293144185236257288319361429314419522627142731241614293154205236257291428314162113144195246277308339371041152103144165216237258299321721031241852313283144185216297351628313417522624727832162123184221427312416132931441852362973484114293154205236257291427310416132931441952262472783493814263114155196217241421031642352914210312416522628734839943142931341752216211315142931542052362572914273941451915212316424527631736172103124185206237288309351228311415520152103164211228314421525629122103124165201329311416519625730832935132538414518132831141652062614210317420522626132631141351813273124171229311415519122639412516621161329132101421015211317162123181721231642313283104171721231842152763416211317142931541852515273124201428313419132103124175241429311415517620142831341912210313421142831341913210317162103124181428313419142931542314283134191329316418523631142831341912243941215283114135196271428313419152739417523625728830932103514283134191528311418142831341912263104165186257278339351040114812541361146315691672177814283134191421031441651962472783414283134191429315420524631142831341916283124145186217248271428313419142123194245326401428313419132731141551862616211315419521142831341914273114145191428313419152101428313419152103161428313419152739414519142831341916293124195216277318389411428313419142103154175236267318349371428313419152123201428313419122631341652314283134191329314142831341918142831341915210317142831341915210314419142831341914293131428313419132103124181428313419122831141651962214283134191629313416522626142831341915283114135196271327314132103151521013263114141421031315293141521131616213315420527162133154205271921715213122631213253121527314132631216211319142931442016213317419523122831241552116293161427310416142716212319142731241812283124165196251327312417162123144195251225310142913281429162111228311417142101321131618214142101621213253121426313162123144195251226311132531012263941314293124155211621131441952516212316420524629735839947182151224311419182113164195241226310417525162831141351717211317172113134191721031513283114161321031542117293141521231441752513283134185216247321325394165236257278299351429315421526632172931515212314417525122631341852362913210122531217212316422152133154205226257331226312417522628172123164211521131741952263013210315421528142831141713273134191428310416520132831212263111226394171527394171621231642217212316422152831241915210316142831241652062272815273114145201821031442014263941151914210314418142639411516622152739414520142639411519626142631016210122538410516142831141713263841051862472783393912253134195236287318349361039114312273134205276307338369401226394175236257288329341039114212471351145315561658176318661970207421772281238324892592269627100281032910730110311123211633121341243513036134122531341952362773183714293114175226287308359381042114612521521031642352663173984294810531157126413671470157413263841451962673283994410471150125713591463156912263104135176217268339351042114512501353145715601665176913263941551762172582993410421148125013551459156116651767187019752080218522892393249525100261062710828111291183012231125321293313534140351433614937153122438412516620724831933103611391243132631442352763273584195010561161126513691471157616831789189319962098211032210913273164265316367438489501055115812641370147815821686179118951997201002110522108231142412025122261262713218211314418523626732837943105011571263137014731576167917831888199320991628312416520623725830935104111461248135414581564132631141651862272883293610391142124413481451155716631768187419762079218322882393249725103261082711228118162831241652162472983193510381144124913551221031942653063473884394610501153125716211316421526628736844947105111541259136514711576168217891894199920105162103164225256297348409451051115312601368147215751679178518901992209621101221062310824112251172612027126281302913430140311423214633152341553516136167371703817439180162931441652062472983393910451149125413591464156916721775187919842086219022952397241022510812263841351562072382593110341136124013421445154716531755185819612065216915210313415520623729832937104211441247134914541558152113184235296327368399431045115012561329314422529633739847952105711631270137614791582168617921897191032010721109221142311924125251272613127134281381421031442252863073784395010551159126413681474122731041652262873383694010471154126013621466157116771781188619942010221104221112311624119251252613027134281372914230144311513215733162341673517136176371813818539191122631141652162573183794210471149125413591462156616711773187819812086219022941428311417520626729832934103711411244134914521556166117631867197220742179228512253941251662272482993510381142124713511459156116651769187315212316418524626728835937104411471253135914641571167617781883198820912195229923103162133154215236297328379431047114912521354146015641670177218771980208621901325384135186267288319331039114212441349145515591665176818751980208621902294239824107251112611512273134175236287318349391041114612491355145915641673177718811329313418525628733838942104711521255135714601564132537411515617719827930103211371239134314451549165417571859196520682172227523772483258626902792289529983010231105321073311134114351163612137123381293913240137411404214743149441534515646159471631325384135176197258279331036114012431351145715651671177718811986209021932295239924101251052611227114281202912430130311343213733141341463515036157371613816712263114165196267298369421050115612621369147415811687179118951999201051421031241952462973483894410481151125513591463156716741782122631141651962272583193310401147125113551458156216651771187819822086219122962310024106251112611627121281262912930135311391226311416519625731837940104311491253135614591562166717701872197720802184228823921729315418521627732835937104311471251135614631569167417801887199120972110222106231092411513253841351862272582993410361138124213451449155616591764186719731327310415520624727829934104016213316421523627731835939104312263104175206277298339371042114712521354145815641329313418525627730836939104611501253135614591563166517731621131842552863273784094710501152125513621464157212273134175236287308371327313416521623727830934122539415520626731837939104211461252135514601566166817751877198420862193229823101241032510926116271222812629129301363114032144331463415135158361643716838171391754017941184421874319244195451994620247204482074921150213512211326384105186217238289311037114312263104155206227258319331039114312481350145515571663176818721979208521872291239724101251032610627108281152911930121311273213233138341443515136156371643817239174401784118515273104145196257318339391043114512511355146013283134175236267308349371041114512511227394135156237288319371042114612521360132731141451962372683293610381141124413481452155616601764186719692073217822812383248625901226310413518620723828932103911431249135714661570167617781880198420882191229923103241062511126117271222812529130301333114032146331503415235156361603716617216321427529635743849953105511591266137314771583168817901898162123174255276327378399431048115112561358146415681671177618831986209221952298231012410625109261122711428118291243012631134162113134185246287328359441049115512631366147015721678178118861991209521982210223106132538413519625733838943104511481254135714631569167317761880198420882192229523101241092511426118271222812913293114175216257318339411045115112561363146515671673152831241452062272682993410371139124512211316419521624729831933103711401245135014541560166517721875197820832186228823941429311416521626730835939104311471421131341652362773183493710401144124713501454155816601768142123174195246307348389421050122631141652162573183493610401143124913531455155916631766187213293154195236307368419431051122731241752362873383894010481228311417520623729834940104211461250135414611567167217771884122631041251561872082492910371139124513511226310412515618720825931103711431250135614621569167417781881198712263124185246267338399431045114712491357146315661672177812263114165186247288349401045115012571360146515681673177518791985209121972299231052411025114261162712028125291303013231137321443315034155351603616737171381753917840184411874219343196442014520546208472104821449220122931541852363073584194910551160126213681228315418525628735839944104911521258136212263941351761972683293510371142124813511455155916631769187119742078218322862390249525101261082711628120291233012931134321383314134144351513615637164381663916940173411754217743181441834518646190471944820049205502105121552221142631241652162673183493810411144125013561326394135176217248279311035114112461349145315561660176218671973132739413518622727833937104111461250135514591563122831241451962172983193610391146124813541456156216691774187619802083219114210314416521628730835943104511511258136114681570167617791885199120932110112263114165196247328399481052115612641367147515811684179118941910020102211042210623109241122511426119271222812829130301363113932143331483415035157361603716838174391774018341187421944320144203452094621747219482254922950232512365224053245542505525456258132831141352062372983694110461150125713601462156816741778188219862088219412263114145186267338369381040114512501354145715621665177018731978208521882293239924106251092611527122281252913130133311383214533152341553515936161371653816939173122631141651862472883193510401142124713491455155816611767186919742080132638410518621723828931103711431226311416518624726828934132731041451662272482693212263941452162372883193610411146132631041551762072282993210381141124513491454155816631767187119772082218422882393241011326310413517619722829932103611401245135014531556165917611868197420792183228523892493259726101271062811429119301223112532129132731041551862272783093410371144124913511455156016681621331642052863373684094310461154122631041552162572983593810431146124913521460122631141651862372683193710391143124716211317425527631735843950105411571260136214661572142731342052462873083594210481152125413581461156416691775152123154175216257298339411226311416521626730833936104011431247135614581564166717711874198320862191229523100241052510726110271172812229127301333113832143331463415135158361641427394115196227248299341040114612521226394115186237278319361041114812551361146815711676177818811984208821921621031341952262573183713263104155176217268289331039132831342052262473183594110451151125413571462156716721777188119862088219222972310512243841351862072582993510381140124313481454155916611765187113210314417521627732836945122439413518621725832934103911421246135114591566166917731879122631141651962372983193410401146124913521456156116661770187319762078218222881428314422524629736838941104511521256136114661572142831341551962573083694110431145124813521455155716621765187219772080218813273164215256287338379421046114912551360146415661675178216213316421523627731835938104011451251132831341552062472783393610381144142103154225256317358419461049115412601362146615711673177818851991209521982210414273104165226257298339371043115012551358146614293164195216237298329341038114212451347145115531657176218701227313415521624726829933103711401246135014551563166917731882198420901629314417524630735839944104811531260136914731582168417901226311416518623730833940104211451249135214561559166517671875172931141852062372582993410391144124613501456155916621766187119752077218513273114155186217268319351038114414273941151962272482993110361139124413471450155216551759122631141652062572983493710431147132113174225286337388439491426384165226277298349371043114812521356146213283114165216237268329361041114512491353132731141752263073684094710531159126613701475157816821328313415517623725828932103811401246134914541558166117651869162113174235276337388419471051132931341852162473183493810431148125313571460156616721776188019822087219422100231042410825111261162712216211317424529634739845949105311591226384135166207248279311036113912431348145115541658172113184245276337388419471053115914263941251461872282993712263114165186207278359391042115012531358146515721675177918831987142113194235286327358391621031241952663374084495110541157125913631469157116791228312416520626729834937104211461250142931742352912263114145196257328389441049115512591363146515721674178018831988209121932298231042410925113261172712128124291283013231136321393314234146351483615237155381593916340166411694217314283134215276297368429491052115512591366147315761680178418861988209121952210023106241112511426117271212812529127301321628311413518621726829933103611401242134614501554165617591863196620692173172113134195216277298359411046115012571359146315691676178118831987209221952298231022410625108261102711428118132631041552062372683093410371143124813501454172931241751962472783494110461149125113561459156616711774187819832086219122942310024106251132611827124281272913430140311423214615273104125166197228269301036113912431347144915531657176118641966207121762280238324862590152731141451661972382893710421147125513601464152931441852362873213273104155206267308329361043114812531355145915631668177215293144185226287338389431049115712591366146915741677178118861991209621101221052310924111251162612327129281332913730139311433214733149341531428311414520623728833938104311481255135714611564166617691873197620802182228623892492259612263114135176197228269281033113812441349145315571225394125166237288349371043114913263114145176237288329361038114412481352145515591664176618691973207821802284238624912594269727102281082911412273104145176207278309361040114312471349145415601665177318821985208821921326384135156207268309341040114612521358146415701675178212263114165196257328369421047115512601366147015741676178118851987209221992210123107122631141651862573083493910411145125112263114165216247288329371040114412461350145415611668177218761978208321902293239524992510326108271142811929122301273113132134331403414935155361593716338166391714017641179421824318544187451904619412263114155216317368419481052115612621327311416521626729835938104311461251135314591565167417771882198720892193229723101241062511126113271211428312417522627732834938104011431245134914531555166017651867197220772182228423892497152931441852362873483793910441149125513591464156916711779152931341852162472682993314273124195266307348389411047115314273104165216237268289311037113912441349145415561659176118651226311416521625730835938104214283144205276357408489551058116212681621131642052462873413283124175206257288321428310415519623727830935104111441249135315283104155196257308329351039114112441346145015531655175918631628311415517621723826928103311391821431942553112273124165226257308349381621131341952162472883293813273941251562172712263941251762272883093710421144124813531459162831041651862272583093410361140122739411517619723828933104111441248142731241451962372683014283114165216267328349401043114912521355145815621326310412515618724826929103511371245134814501554132631041651862272682893210341137124214283124155196237268309341037114112471224384145186217268349421047114912551224384135156207258311721031341852062473012263114145186237268309341428312416520625730834937104111451247135212283104165206237268289331036114012481350145415581224310414516621727835937103911411245134912283104145196237268329361040112731041612253104135191325310413518142831141516213162131225374115146167188239261030113913263141426310417132638412516142831314293134171326394131225374105151327311417520626733152831513210313418523628730836944105013210142931341551862172716213172131227310415517621727182113191224311416521626152831141714293144175231225312132931241551862272815210314417520626152103134165241527312415518623132739415519623726829933103914210316422526628733839122931241652062616214323122538414122539412518122538411517122531041552062372683393510381141124714283124161225310417525627732838132739412518621727830938152123184215246297348379431046115215283124165226317338369381044152831041451812283124155176217271227312415521152931241551862372883093410371142142631241651862172583293510401721031541752513273124175256337368419461053115612621325384115191612281328310416142831242014283154231427314418522627152103134175246287338379421046115012551360146315681326394115161429312416526634152931341952362813263941452162373017210315421524629142739414518623152103174225256301621031716212315420525162931642152462773283794315211313417521626142631041552162673083694213273104145201325394141225310162111421131641952562773384014263104155216267288339351038114413263841412273114181226394141326313142912283121224394145196247311326384125176231326394135201426311416520132731041251712273104181327310416132531113273114151325394135186207261327311416518624152739417132731241552316293161228311417132739412515621142103171429311415521142931242014273131428311417132731241618211313417122638415142123184225246277308369411044114715293141429314152101327313419152113171327311416182113174195246267308359401721217211316132531041551762213273101521014263104151429122931241713263104151427312417132101527310416522162831541752216214162123164211628310414518624122631041351816283154211326313415517621728833936104213283124155216237301628317423528162831742316283114175241527311417142931441852412283114175211527311415517621724828132631341652213273104175256287351325394135176207238311521131842152763273684213293114185236287318349401521231842152462973383894413293134165206227268309321035113712431347145113253841151461872212283124185251427394155226257288329341037114112441347144915531655175918651325384125166207261328313416521142831441952262773483694210501156126213711479122531141612253104135196227281421231641952262714210315421172133184235266307358389441225374125156201328314132731041351762072683114293134175216267311521131341852312283124195251528311416521172113154201326384125176247268289321036114112441349162103151628312418521625728831936103911431248135313283134165196277308351321131742452863173683994110441148125414273941151461772282493210371325310415520623728831936104112263841551962272683194010491152125513631466157112263941251762072282693210351140124513491427312417519622726831935142931141551762172682993314273114175206247281428310412516621726829933103714273114135186247298319351042114615293124175196217258299331429315423527631736841142731141552062572883393710401142124713511426310413517620722827929103311361240134414273154195226257288339371428310412516620722827930103511391427312417521623726830934103711411245134814521427315419527630734840945104914212318423527132531341652363273583917210313417519622725830935103913210313416521623727831142731041351762272783393710411226310413516620722826122537411514617720824122537413515619722825928103011341240132831041452262572883293810411143124613501456156016641326310412518626728832937104111451224384135156217238279291032113614293124165196237271325310412516620724826929103311361240134415273941552162573083393810431145124813521226312122731041514263104135181224384125186241328312416521122731241451762172683012243641251662115283114165206261228315417520623725831936152831041652362773215214318424530635122731341916283114175221327312419524630735840132931441952462973283894110461151142931542252663114293114165206247318351621131341652062612253104135166207238269311225394125166207228269311036114112471349145415571662176618711978208121832285239024942599261062710828112291143012031123321253313034134351383614437150381523915740163411654216843172441784518546187471914819549202502045120852211532185422455229562355724258246592506025461257622636327064272652756628067283682876928970293712987230273311743157531776321773257832912263121227142816210162111327313152101427394161429312416132113144181427311416152731141715210152731312263841213263941652116211132631014273101225384111225122539122631314263941251561912253841151616291328310413122639412152101529312132831341852162773083594010431147125213571464156916741780188619912096211022210523110241152512026126271352814129146301483115432157331663417035174361783718238186391904019341197421994320344208452104621447217482214922550228512315223353236542385524156245572501329162831216293131429314152101326310412517619724122538412517132831412263141221012273941215273941151813253941614283104181428312417132831413293144221326384155211528315132531012263841251661872282693113253741351913263111326310132931241451862272482793310371144122631041713273134201521231541952413293124145186231226313418523142831141814273121429142931514211316419524132538132631141814211316419522626122931241652113273141226384135186201227311417142103154201224394141325310417162121429314132731215210315132539412517132631041714263913263121621131713263114171326394121427312122538412517142631112263841315212314418521132539411514618122539413517142731441952614273124155176217271225384155186207258279301034114013283154175216267328399441049132931541852362773213293174225296351229315417520623729835142831141551962773315211318422525628735172133164195256317371421031441852062472883293510401327394135176227291621031241552062673083616293144175231621031342052262673083493710441621131742252863415210315417520626730837162831141752316210314417523630142831241915210315421524630736841947142831041451962472916210314417524629734836939104511491254135912253841151561972483013263114155216271529312415518622726828933152831141552113283134155206247291227312419525631735840132103164215256297348419471225310413516620723826931132931241451862272482893110361141142631041251762672983293710421921319213192131921319213142631014210315142103141421031414210314142931313263101429132831041351813283161327314122831514283171328316132931141451817293134171326311162103181328316132731241715212162103154215306337381328316172103124165186241721031241451862112263941351562014283124181429312132831613263841413273104181328316132631141852613263941251813283161229311415520162931514211316419523629132731141913283161421131642052613283161427310416518624132831614283124181221012273131426394161321012253121327312417172131821416211316162113161621231716211315420162113161729317420525152731041615211122531041351913273941452062615211316422152113164211226310416172111621031612283124165196241328314142914293114165211621331813263134181629315418523122931415212162121521012283124165196241426394135181221031641952563173383994210471327312421524626733836938104111431249135314581328312415518622725828932132113164215246287338359391043114812541356146115641669192131921319213192131921313273141621314293141721216210318420527142731241615283114145191527311416142631412263104141227310416522625142731241551813253741051261616293124171521031614281226310142914273114171529313419526122437412515619152831241452062513283141521031542016293124171428313420172131528317142831442013283154175201521131441714263914210316132931141714263941351662072582793213283104161729315419525132638414132631314273114135191528314416522625729831936132812263121328312416122631241813253111426310132731041414263104141327142731113273121326310122531016211152914281321031241712243741112263104151228312122731312253841313263941151516213316421132831341612273124151721131415210172121621016210152831714283141326311413517142917212132731141651962414293141521215210315419162101527313419132831214210316142103141421031414210314142103141421031414212316132631014293131421031414210314142931414273941413273131621116293131629313132731141512253841051561914263101329315142731341913253841351813253941451814210122437410518132631041251813293124145186227248321329315142113171421031414210315142739413518122631341551862272814283134181224384105136171325311417132831515211162831412293124161329312416172103151325394161328310413518122439411514619132539412516620726831934132111528315418523630142103124185241326311415522142813273124155231325394155186221328310414142913283161521131542013273941251461872213273114175206267331325384115176197248301327394135186261226311417122639413517619725132539416519624132831041514291521312293124161321031614263124165221527311416152831141452263216283131428311419122731341852062573083614283114191421131441952663114293144165216271329314420162113164185246301321031612253114135186241329314152103141429312152731141615210314122631341652062372683093714263104155211429314419162931341914263104155196231428313152101326384125181325374951313253841151361813273131629312162931316210312415132638414142731241852062612273124181529312417162113151328313419527630733836941172103161621315211132831515283141224394131326384145236271328312415517623728834940142639417523628731833936104012273124205296317338399431047115112551359146512273124185266297338379391044115112541359146512253841313253941413293151227313142731112263104161521012273124145191527313417122438412122531017214132831041615211122437410515619162133154181325384121426394145221326310415132731413253741051361717210315162931413273101325311142103141529142123184231326394151427311152831215293151529313162931313253841251561972482793116212142631041615273111821414283134191224384125156191226384121427310414122831442017210315122538413519132103151226310417142931415210142831314263941313263104135156191226394135156181429314162111225310122631041514273121427313162121621216212142103134185216251421031341714210313417142931241614283114151328314132539413162103164221227313122439415161528162121629312122437410513616132538411514618132631214263104155176231521031542052616283151529311417172113171328311414518122531414211314416522625731836941104411491427394155196237278329351040132537413519132931241652317213317420162113144171326394145176201427313416519142931441952463173583794314263114155211628312417520132731241512273124201528311416521162831316210122631041514263104151528311132831541752015273941351762014293134171527394125151327394141621217214132831413283104161226122739412514619152731212283104151225374125176247308379451521031716211318420525632152831316212162931417210315162931517210315162931414273121721332012263841313263841314283151227313142731141551962373016213318423527633739132731316293131721031413263114181227311142631041514211172131426394161421117213132731041451762112273121326312419182123161228311417142731218214142831241713273114135176211329312415521152916162931212263941251517210312414520152103134181327312416152931315210315142103134171421031341714293124161327394131629313142831216283121325310414122439413142831314273121621414291429315132831541752162612283124181328313419527631734837942132831141714283134211428311415518132103124151428314142731313210312414518132531241712253111225384141529313142731015273104135181225312152731041513273104145171326384125186261521031515210142121325394145201321031241652113283104145191429312414517620142123184225266307328349371426394135181225310415517620726835941104411501256142631041451862314273111327312417523626728831933103911451328311418522628730835940104711531259136514691572167812273124145176237328349371041114712511356145815601666122731241852663173383694216293134175206247268319381044114812521355145915631668177118741977208021831328313420162113181421131341615293161326310413152931442052563213273124155196221327312415518621192131921319213152731115273111229313418142731041514273124171428311415517619725142638414122639414519171229132831041713273124195261521131742414263104171325394141426394161429132831041313281621313273141326312122538414132531141452015211122931241812283134155211612293124151328313419527634739846952132631041414273114161426310415132931141713283104161327314142831141814293141225310132538411514620725132731241451915210314420162123144181621031516210172113174231821031341814210312415521623726152931341914283114171326394135201421115273941552015273131721413210316132731212273941512243841612263841413273134155191326310412517132731341551913283114141326394135191521031641852162573114283114195226257301326394125151226394135166191529312415172123171227310412515122438411142912253841213263841251512263941412243649132539412515132531341552013253941251512263941413281328122431141714293114155201227313”
6.2.1.2 Abjad values per word and indexes from Basmala verse
This is the third known coding pattern on Basmala verse as mentioned in Chapter 6.2.1. In this coding pattern, the Abjad (geometrical) values of each word of the Basmala verse is concatenated with the word indexes as follows:
x<- nQuran
tmpl <- str_split(x$text," ")
tmp <- c()
for(i in 1:length(tmpl)){
tmpi <- unlist(tmpl[i])
tmp <- c(tmp,paste0(paste0(1:length(tmpi), AbjadSeqofaWordSumValue(tmpi)),
collapse = "" ) )
}
print("The coded number of Basmala verse: ")
## [1] "The coded number of Basmala verse: "
## [1] "110226633294289"
## [1] "Test for mod 19 to see if zero: "
## Big Integer ('bigz') :
## [1] 0
In the coded number of Basmala, note that the first 1 is the index of the first word and the following 102 is the Abjad value of the first word of Basmala, which is Bsm and calculated as 2+60+40 = 102. You can follow the rest yourself from this example.
We observed that this coding pattern is multiple of 19. This was discovered by Arık but neither he nor anyone else considered it as a key coding pattern. As you have seen in Chapter 4, my book has a unique approach such that, I hypothesize this kind of easily testable codings in a few special verses, like Basmala, as potential key coding patterns and expect to also observe them in the full text of Quran if they are evidence codes. I call such evidences as the key coding pattern based evidences as presented in Chapter 4. I did the same hypothesis for this particular coding pattern on Basmala too and witnessed that the same coding pattern also exist in the full text of Quran considering all the 6236 numbered verses and so discovered the evidence code of this chapter, Evidence 6.2.1.2. Here is the proof of this code being multiple of 19 in the full text of Quran:
## [1] "Coded initial verses of Quran: "
## [1] "110226633294289" "18326532024232" "13292289" "191256395"
## [5] "13221263384640" "16123313681"
## [1] "Coded last verses of Quran: "
## [1] "1130277732044142" "1902142" "1362142"
## [4] "190250031644742" "1741214239043005142" "1902893148"
## [1] "The number of digits of the coded number of 6236 verses:"
## [1] 316555
## [1] "Test for mod 19 to see if zero: "
## Big Integer ('bigz') :
## [1] 0
Here is the 316555 digits length big number:
“1102266332942891832653202423213292289191256395132212633846401612331368113002791356141555121061879715583799221711750245433142125956197660179121623104542225157687740382961797216234348856164778889091521084511451222216721103194905247673745824515127913307477515561397741870913951031111621104026631104183511662157116833991312108111773121020196214239041465926687958832947104511198174126637974985476740732823694710636190218331040413756661041781877398110431178127881708214037543155516907103281389921010811224132296345427151066317636170821403754985616917142813891471061119112187133214961545161871710618311920617082137379149851386927708863794110425111381252131701492151081657816624923474105590611157181167279139084897552612176108104994710781150916152590374145715252615171212841949107071166123031367114901513711631173581130262312041255316339172122390414259561371728083089169102091190127971390142981590816477177218671939413523333699433959168127758347995107081197112155131481442153111666177371821719345205121662211023502432025314111217314248452626741779087979901019211190129561741210339041032558261487638949901014211511288413714901511721630817901811119510206521612249723596157251039042125816138711081279488102731190125751388143801590166017661851195102025511312703587486558765887282844191221014211254124751342115082791398415355616517758454961310901181412288139114314159616901774518308191382070621741223582390241322541426727749288129963018312593251339634691151266331449855161012757184198831012111192121221379114981528616561713918901924720482179122307232822474225206266627708285712984030731731323533734731354736840377383239332179121016379466590676765682519411024111661271351141361521616901710321867194520948111027563684516544961607540852095401098115401246137291112741373049054169071032812495401047711411214213202141321550816171752183201915017072131322241665616104790810329725101381150412961390141541596161761786181141912020742122022502313124612514126412731285961146245314345655406111571108137921110129111141252135114510152551138214133141405816327418591971104511118112109113121134541085159615179981599131107111131129013611414115101216539171038181471941204622147225102391617072181316647557561547328103913106891177129013392118721134541315451642789857996101205115181275113371470315710165391755718901910621164240131264930581672795818792410932119021280139614901510321680017517184119681620245390420754916483711585691110440112891181224396412451226531710081991701047211201211113686141551537164517131179723073735446556761027282845996106911112623312492855706441756181709100109111871214113281434411042433488423557161707378483937103011171237131307144241559116171172818637137249931394755873613974978596116421573414464530461107382169821423235457252516497788684549112106561604232531634635267632711081062179121016396417752476102746833011126233124928557064417561817096710137011110122321514257331442051906120719083219371014211961245613371413161596161041737184519406170721743904315406623277688049776101241155012181139614790154316901726218102017072431362424152556135873184069497101606170721323116433357565407214181349901081114971210271540220731804905766750719089761707246231164454546861907865170721313116418151161467111814109251101764111341249513411427315618162511779018810199020124212732248323170245625112644027289170725703114116580614675084189260106611213121841132971449715160615402683390476550661907976110172170311124145517061217143857990104221141124181347141027151061678172361810361707218136424710534661377968518975010120511648123613681414915221613301790186811913720249111627913977413751210674171408759219101101179112977132111490151421643177818306170726313116418152616100371838242981410951195212575131311410415140165017112185871957205162190223072366243725977269027103228244170725703114116580634271108120919101551181122221381314811581168521710321890191382062321138221462313424131259532674127112865297433011318103224333313413135903641375313814083915540766412124226431804449045664675047984878493665041451665260253153541212551395675057435816759846054015127913984797517638872008909911068119312832131461413015155162491712418247193720686211552237234524131170721352371144075246624671307841952210113119341241139514190159561540288639047657506147791086691701065911540129013952114025803791448251506907493826197510831130912731124021023714625306477716810279660170721313116418155166673118519111710307111381221521319141311577716681751187719902013011382753814222572681741815913110561114612571330714311510811637172221812719622075021268224123702113827538142225726817418929131105611146125713307143811525116921766018124211382753814222572681741815951103331170812161135814511531116661753511312563146457530763177668111091032103711570127391317514311531516961713818821941320141218022247233224246170729703191472759667278438419510109161261210143880477053866674878286941710190116561540256031984905766750795826897103051117112571390142481571166931795182881957209621712251023893249525822657279628712926309031915326633473466351113361113759616562513113490511067173908135923610911166125401335914901576164117211185119206170821373791498513869277088631991710411187212138131014144315488166617170181181972012421262221122365613822063514665150641732684792161141210733142065454632710285794510321110161126282034884454572654072028706990101241166129471371459115171161261775188119822207021522275238124148114428035514282532653712981309214110124116612801316014720156616841741185921911020662141223123596142290382485542567710348147910210282114512961369117972983153456156761027898459961069117072135236514625312631753283296610140111211271613343144981521816149171711811919164201572141422642354024886253226171271502849729116617072135237114315616611573781259925110901127512540139411449715765154024913524986525161265739181509901026011156212155135741416815571647717272185361917202882117022850236332487425454267622787428121292130903119032750331503432356173690375538963962401874127042414330544804454746664711134811149596167279139084555966839711187709165108041137124513406114024623116445452476907818323946810150115312290134941477152161619517172187419296204321312242123251241123254712611622739728986114421893111043251956667347825194110162177259342349051246667234871915510841190121321310141411015791163071715118591941203572130722723235246625110263921113290837423655163177438889661010131151129713661490159151611017901832119902082211002218042311024180225427267732710517082140375498543688766813891461043118812161133721443152221617171391823519712015521130221502398624742566269027132285129510301961140274311644965540621417134890981104971110271707213523711440752466246713078419522101131118412138132211422715516169017183181341934720130211132231123724162255126510271961130251347149052366837712486697261090116012142135771447715511651017255186251138443554467077281509106415382299314241105246967791852892010581136123201311114115154716111777189019804205121320227223302244325206113029037148152756136792811091521075311661223513711462152916251751818256190271381465551263017251810791311066118012421114021393614412546364773108893210328198287380475753906135732876693110162177259329649051246667234871915510752113901290137911441415454164231766182171911562011621312220614862413836441151106907191847930010191111061241113307142061514216299174718881911020181213722612236532447252012690271328418291473092311083253533111347003568636136374138446397406241281422743474445451063467479048134932507535166526125341541055553756255571405814759120609076141623563906483765906673167108684169507707712367236737874206142296398451455836907124866981010361178122061112173791498531654373228149912021018411427127731381141220379143075906367454837965110511197121701390148101590162621772181100196552090213212272237062494125105114127603904165761667451881299610711576127113540145115661611017501832019314171254035146653569075398103894710901190126013661490154616371735014126703514498535666171008116990101321196124461333114135151841683017771813311027303904365454636733089097610162113021273139014124152361690177618411946220752113922238231922441825421266627248285129663011031503232033314116421573414464547655172818909810104181112412661351146615431659617302114428036444895326907718169710351114501214713130144131531816511751018255142290313141956561771588115920910124112071237136861415515371645171311537256350043825110632075378382950010561111012320135114496154541677017131187911931202062157022181231462478251072656271872813129783095311176196297131304160510866675189309961010611146129013809146715411671177518511965620322175122752390249625617268127902883729773301020171267131279418254436620714866951106611137121501144217013664415126632735841990105391110381250133514607186253931038470859106242717281469351070111661137279133142065676151766879862101611770121311379114901517716570171811811081918320104216322443231762422215223623141451359676377491812091021092186214103140456537638274188872951510130115112191366141115501696178731868197620741213422902317124412550269027662890294630373135017912507345445015108684276781629710961131012713147144515948111262331249285570644175618170967101370111101223215142573314420519061207190832193710142119612104133714606154561637174518406170724433259420754936576713186191241017111831213113961413201513116311791188919106217072154344345485171698717148909181102591117012136134114259152181651172151842219220202682132722104170721313259420251046706737892931410411190121172139014911513516681793188321913120962130022596231712454025101526412777328282297830371170723603259421259064437218825395321091117112451132111418112532161323045059661361746817595010258112221240813161147115451164401728912532579313542975135644671558432920110454111101298137114451151251610919621212312047552596327908145919510140112461290139614621590168371712018220170121313354207513161317531823292321112283259467519461176285196610190119012951311114896153216497172261412510332047015100861887477870191311097114112532139014861513816126175618421934202592121822176233724202511426352722614502463104410305366417482896941105221137125471311114781520611442833164753516816713083297510259111491247137114901565111432923684475886927478889411025911218121761319414110154716417171161815619472041721149229023247243125430266227132813529114303531226113129835724415531677184841795710443111721245139014501153251666171718211191811109726639641195906667109781149351013311302520390466517625372688879193109611202121141335148161412592351425952186176719481109781016117123511313014492151411641176618961997120130214602231523129249025662647276628111329111305961450246310441030536641748289694110522113712547131111478152061206218739041425416827120857794411078111161213013651467115127916291790183211941203002165017762214346476551363207110814299210327111701232013471415415168164411747018116193220220219022482233272413025192261102718728572947130267313232110337913419356636473771386639920401624151426643144443264525811042260353243459061427276813791407101161134125091313814280155241641175101812319802051421572279123414244542523626562713928902924730473166321113331113420619628113791441454546527168419479105521147124511347514577154716917174751813719872209621873226823902476254126342790281712971307023112032106217912507345444215616416710985793911013511556121391351142061139290322241115526690777118621931149256506124276184194831041111621266131241451156616110175018320193141962518312034116534650971388280962101681190122221347146615111316111175961962518312034116534650971388280952410411151012123138014514157116861717118170191620322179122977231352411125135126973274772857029170301963186516123423150429751506446717084639113102161145412110132161441157016483175961106729813534440537675611121737914985598632571638519661011011384137254331204540590610276684489321030111061231131026123423223904717511662467908109922810117811508123841791270235394147513865276585894610330167215535274905247625977384595361512202328849055816667170811944310711711121111362141151551161051748189619485208112113122662352124150151279135264415139690749485699010761141126813171149015454166717205186619211202381322791341041425756147740981559581044011289151279133074454551630176781559155106611143121481317416952963314770516568047378459121611022363194315366327118329928915129037304539510386111871018293916710441116131290132411443152101614217471888196620902114222902351241002572610322776284522950830963190325033123478635250361083793138623914240103841442421764326619621423904171059066076686191211030116612797139814305151116651742182201979120977217012226623804245125142266527124285729663031831804170126033791448059067917480821498041098511471297113727913480436551681722587339135106111619129113770142651566161871766918155194720452186622902328211121731424575816907103287092210371187912101613401145615901680171021922311310944365576543711086694110311159617082140375448054168876681389321052211411217213115146515431671175518311926620321213722475157627913307459057416230743831918010321185127113130146215120161251731182661112173791498557690742284194181053411651251135101417155321922248317044865816847898847936107111240126613170141010151210161003173718751911120541211152251236624128625258151279135264415886667908454997210711591121711367144115117169017112183219282203721145226623562418725372692278128773298116727913908489755268107135881219338101101128217502533664875454614175787919111810901145412120135011486110022333514443580613276718127991061023311901291136814931583216143174601815919417201022111022152371624343254982621827592813329198309631334321483315734417356436219371263870239874039041904210543104844744594466747791482014973504551627111217379149854226170731289095711023911241121131310914598155941617017160183519902061621320225542342924222546261222775028117029903026231259321703348534763575036115377733881196290331242451164776781909956142221703702410085736477751862098111014211161124001342914109151101663111702413117417551726546711087919107105111661218013150117026813904136513467754282099107101111154112115135114661512861625811121737914985422617071728619422101101179112901319214190159561532525317047151506105177811093401015911901252138011411615791161901799181201918020170214852281123912481025352657275432881029903051315103259615052109137414885956382719817194691090115012468131701430915150165361725518961971201051217221102334024159259026522780128224296630623130132373322434623536136533371103866539664011041414270431964497617082111387413051416312716885910610702111251260213401414915121617517570139290375417258116417181855993109011497129313851414015661611117510181507192512048321170221572318024162255642614162741284222966309031633251633418344723590366503784438903965040102419042314435404444845172464147101483749964504975122752905313954450552256665711158714597706072616662417631716417565566137245831384122575644778841910010488113911290137814142155741649717596117721203724130515655771718489106102331153128081344914901511171610617233189019511204142144922902318245142566261902757415442903102466579166577378881951106611311220136051588251831171486159065187870857293051090115611237139821412415138162801741818607199520131215972266223770242125392113124633131466512866258158824183314476553569279586591311046311111121311332141101510621536228035384280568662817170848591701056211115125721341144851517016514176618154195120662111022631124429031024665376537787841949110132115112661320142491454242335246551316739712187319901050113712545133361441815104216501783181701971201502110512272372471125902626627179289029141307311993273313034782355313617037910383483941404241121427314390445045170467047174822149103650525190524253143547025571356450575755896597506012061706280634164101965138662806751468666915470517166723187320414225063587417051080614574281119780103711246123713381490154216471758718901981020155216622430231312481025432654727563281129473067110021703624515180969117908262978210132111901275113100814661512416641172801893819612070215722510239024137251202692215402898390451858826142717548669511066111286122581782213503231410085666100077487930510921111701214213901414615253164521790189619472035219022837239024731114129031464253545269079681239961083711123121571377314282167275315248158967273408102193426639045255256170750389091161011111541121151396141201151111654117115181201951120514216622154231112446259641962142390410551416907558969325106611110124113901413715171635177621708244631404905103261847968719739101771172123113201417617082140335450156661706711385749155109811108128119621423904520519561414714418669721029611110111217379149856426907161810693710879111016124011356149015801610211312507390476541647474948228951106611941278135212163324515466666790896099010111211143129161327214471566166731727819026233124605507690716867996104611165126613901476154116419171311866193182020416728203307455596693279087919981079711508122311356141871572163171790183211912122071171214234642456526667153860291056109411155124541314114108156216142171311811181995204721111122952332247912541826902776284129459304943110133210733993466357913698377138111839954090411394275843724429459046321474148300496501412510351410415896777471857097911063711901219213545141051510481687174181814619327207972198221152345024340256626322751283402966303121177274232964130541667179088109241104001149812218135914133154716587179018810191312066217221501422217035624175225690714685196321032111171281013901414615511641717321181719500209021722215023497243125596117721203536428055316957130853199510232111001212013102146615306167171441828019811204121952222323124246625572262232790285612937301043165732418332803412035124365137548389639618401504112042694353044174530146147474194818749905096518435273531025428255455696576911512791398479752166267908102966106711269126481366147215128616258117721203871434751306136754182329247101711159312223139014246151831674217296181301918720770217222662390244432519026115619029638434183512064927130813097510810115712109113798147215150162151790181991942203112166226112351246625942678137248539924418510668271418810990105651142125361337144851565116418171131811219136208102190225602342241362567261402741282822972309031413289331362347583578364173717138175391386118321203889413051167117595815299010889113712763134181427415782166641754218901951820301216622512366242025500262627745117727083904488576866177508157928110514116612154131111418215508162271372510366410755192651760989139541106211142127213180141501312137736641069590616271068137794310482111981272131286148818202102390416656926278750681319981013111661212861325815721243171413156661807150161727523248410365316637748885951105201141127301366149015305165117701810619682093218322256923109242612590267502751282132913130913157032741331653442935300361653721238723994407811712691320243985766787122837948109011511217081381149121532116321751186921932201612122226623131241120253226161272228662911130623115632131338853473545036223766381113988640964148442224366441474545461058113121453111443853569077684189478101711121512131131451411115621615617511868519512095121512216123222466254562622276628782917630206170825793152411625896262739887932910398113712581131202149111596161901775018184199702019521372221072341224662519269342756028662917030473188321703390344543511036104037738514396640154415142664352443204515017082579315241162589611171361851913810731170212140813107144291575016986177189019712015021106226823932483225790263827902822129723015031497323133596147921130397410451516120720685194501011071111612117133514362155471642917311853019190203221142223123140124462548263727862835294730116317383257033750341313520736202371203814013913640913411114262431564457456454651471937481024911150625117052702535705441558515642957514586659154605161666243635966430217972552315049725196752724882789506105771178212108213891411115621617017131182301990202462142922722343245962581213726231704131515106779086169152107115611290132511414015661611117149118106193120542212612232235124543251372639727372852429179301103141832104233454343935154365137663815039414090412514210004315444514566461286478813126231704515579615274187095611071114871285131095145771511016207173091811619771203092151222429231092411025249157264039041325516561711081520985101095113001241131520143215511621617718166197412021211792211023572455725303265762737285172994130122315132663343345963530219962110355841635116615976586111131211203315475274678275318100896610611120012411370144831559617972552315049725196111793851294110751112101280513131148531511116621717018901941202302190222462390243962572269427781646251134294109511066311770272366490541761907656171260034147915810690726085191171090811477122111375146615453165401765185119662073621910221102314224106257212614227312858615442903102466515465176681809150190270137414111056661101711981046935109531173512721391214871552167291712600341410259066273128909761011611701121381392147515573168117911858119902010221662213123352458025512642227170285622932309383113832473381343235581369037102386639110408554190422664312144151454224615547562484434932501715113552725315054106411372753107451566610475728909446109111138126113861435151211616117114181091912320952176224162313524902510226131275128662918630170312332763390341713514036723742638953990403214172421374315011372753107451516695751848198401095111451290132621412315811662017311811619372026221483221372351249025750264627902851295103019611512200344649651316517668542925710170115021295131801410015961670171341813619100203221902216812312852421255892695273228171291353015131223211337973498351153613837313811539814087414424274431314479145101646964717748664960509051955217553143254955573556753576658725911060384177221634704745138625371281816192931090811197123981311014177153921183275336645365216440741386691211011011151128113321147315154166617142189171987420574211032221062366247062591026110272321450241236644925130614177781209421145023213961491751106872713589099010661135612917136081446815150165317290184941977202162119522422331124662541269312779128902912130903176324133459344943510636111837215389039914014141904230043424431145664641479384810649665019051415222411121737914985238681741889091321051114211256133114821595163717635183719456203942145221058166231336432511649718783191706101151137129613351441159016539174718901910322090217012274123460241292532267582715028412962307031473275533373493353223690371453832394340311411364229543539441038453746354710344817491415010511312227390495510464627535890910411017011310121449131121468151841658117314186471931202622136227223180241501662463791498585869071402841928710797113071299131447149141590162871741181402196720102212822245239624691171260034147415126259790820795110407116612121137011413115259162121774118381946620131215222292345724131252592613127662842129433309031671324813383490351273364873774138300397240314129421774310621727613240411053156217622811095821013111611238137101466157616452175271866195620111215402257723131246025932261312793228572973087231563213133323493235563611137123138413914040529417042525431157444145269462094716481714911575041511042521105341354540551425679571515846259356013161141625163666411065506632067314170721313259420252616110742884879131107711496121311342141061514916142171311813801927820902125022425236124540251042611027502835291453021315403213033491341413514736513766389439781570279132964123590610276685909151085311132121431390145015147165617151872199612012021321227223137241501791229631234905102666754083195381041112381291133714711157516249171241824719372068621155223723452413111362396313314810590619974888711972101060118811121737914985316448765581239748107611124012761322114142153716106176818931983220655215902222723115246032517926392770528125293130370311103232033813489357236313729381773939215762791329641235141461441766813199901023611590125813215141001539168811757181010191312070211082239231192472254326596273021212733514476535658790869091301061311901281413288143515961690175018117219105202532141229152396124180253622695272512811892977030723166329033443341903511561112173791498523869074228419522108711855129013901410321537164971711431895196862053621131822322351242247259526154275128662910603062140121443411431754326727144813259951091711721213713150142621043904321596641671048184941710811117311247139301432154316671472671390423557613907908950913110661115512471310911490153421512413362642415156577109288249422109111810129013316141801590165411772184319596208121100213035541065666297908321947106371190128101336114471568616321714141814196620472163722902381024962510126497273128142614512791330649051026667318615910031090111032121251370141072159016661177951815819312015721142221212347246372590268102713128662973015017912296312341035293626171728155924910124112471237136861415515371645171311791211732344315212632761815697411010261140112901313114750159816138179218113195702023421452266231132425425234261702719281021299030207315463211533413417035252364137663896397540147411024228243454496456911158266323442285626672731820950103011155115127913984153556161557157841496410751124912124132471437156861615517371845191311112173791498550866679138419112109011234125113510141961131270358748385212690766830795710842111701227613138143115142616371714261572713706433551235641731585796011081011901251135101459615142573729495541666754084969501019011411248213511431151036111217379149857026905766841934101501151412468131221442315137163717131842319512043221612214523662454225146267412711528139295463066312073237336723495353213613137713874139115401394115642743961447453146559475148804911502205151521375378354379559056294571315870598760293613136269963130641456659066351675168123069607014007160728427337741375351767027741788179378050881518283383130184785233864187398879089170901249166921539337594719532961010973298519947610060910110141026761031221041801051701066210732108834109323110702111923112371131011114423115371163191175711858711913612024612162122514123661242161256612672127521283201291501572510311043405766414742483369953101311191129321387314130157411649717497185461966202072137228672334624962547626136275412813729723043315963215016524139045395476907103285794131041119012251137141091151411671766181370191202032121788229023321247225110265027320283141912327343488546690720782299501091116812512134331430115311643017621813199020295211442222123137241351252532667273711312140366419153261427368419482101221141128831325314311517581651171711871966220253213722478231612429225612648327110287912990301833125332373352934413531361153781387391574012141128742814330644451451284647247110481774939217116623133643251164971871872130345441415235671762829994106431113119021323194171594646275187919307104141166127513773143181572169417706185921512663314700511563207908103293710901114211127413366490528161107321831936103211111212513109111274138841305454695741285099551041114541280713114914122157911690171831810171961820412170822952314142456625142026452274728150294523032316632954339034171352023692377385039904012441253424743930443245434667125323131407418957667017470813981109011104122531371144511545125327131144142586631721289595110661131127201315615127913307480514606165712383798710901166123211373144515116162821272313406479759061777729846591426106611805127213318142041130282033074154859706417988789811104271390416590655079328959931109011102126613817143061531116625172111816119722030213472290233212451259026750273072877293251672171310474359061527149840794351090117381292213677141821519916745177501851119552096217222129231182474113021293812490579068207508812492471045411613129013814142881569516961724182591910632090216622722330224110179122023253410259261361781880991571077311282138422923648436751877630313092663564315366327118143949101711115212202133114361532161117125181091512953124466516364771111879194141045411321290137614411559161711710131810719962031021414226623131246625340261021131238321045315246657968523913610820114141245413148145721513116138171841841719572044321172221302310642472253022611015127913366441456666027153812129108106021179112307132021490151421662717775188116727913419418759069678438479751090114011712600341479154146153790845491401041114231266131081410715540164561739018135195120116617502983138480555162827328539525101251119012109134114781574611902702320948653162127958502950101901141124821351143115103611302106391412158166121790871195331012111130127111348314901571116113617901871119362084121712211023502432025314143921013904287544562877908101912091049119012481131209144811590164917713189019711201212217113121710322343925586907608227996101901175012180139014661590163201732185119907201352150622984236624195254726662737111302513108744159063607784179155106611156124113901453915471690171032187219110205021320223141562407350419054165407908810910491047115401290137614410153616511768187319462087219842266231952472252962611011302513510446656666197828669129610901181812721312861425811302973664333513164437131866931102011392151266319044557163772598379361101101123219152878390487257261807150170125313642436152026617135085094110901171124491361214100157116451172111818111512128235314202561612827561872914110431112761210613951146121567165161729018671978720222113222290234012428416182208314041185465645471198142923810911163412116132381428215131613017308181311911202902161225023706245312511269027124286629513066313173290333213412123571110627532384207513162027784099010104119151226137114180151161540213731741515140690728285196610532114012235139714901566168117311186919902022011312202361486540610717110810929253106581137112131137701466151901641173211131220231044405166131743183294901014211103612521332142481592716222177311876194132026117072531313741152906517668201924010207111101212113232111229035614252584630771108382175029036441043579661747847098910701111961221713561414015290164717470188919701201196170125313137411529065176685329971095111061214913150145315290162517901896198432096214331106214239048056269672201531220236148654064077682309502101311177012661374014411532116702179101824219172201462135227023166116124543110464951311303241362431256161047473818990102621161127311390149015100165017250188111995201662122022753236624219259726330273528487297533066311293243335073447351260369037478385139904075041464290435144510451961241271362424590664377589098721074111248121701347914181590162621758818661915215126632124268516867067300865011512693150413553316131790835294110661113112312131081434215661692176818316195420226125329234344885530632775548110940112732266366472581063521701213136641151506617556837794110280119012791133071411015791164991718618791193072041215622187235402441253732614927122281312951030953115661122279133074898577463197908969843104711751290134011482791398415355616231725587293110201110621750249131304905443695771091512570315041245666590745873599010603115401213113351470151661139290322241115470690777111702323954905766417348909171102101150812124131151413015178161871724818257195402048721233225502366241102581415127063414311513964779083693210661157126613411412515109113124433131466515062771130211336445455086417958779113101281132121261332146615371657017718321193720171021923228732320724902560266627131284432922330317315432226111236345447054686907259847948810643111311232139014811511216656162491352445551316907781409150104681113112100139014715140167217150184971931205961412713259436537640271068719149101711147127113901465115124731424261582064847712893979710981172124613227141021053904365454636795684798961032112361247136361112363454470575664147668497976511123634544705548613977589229139104971159615372105390436545469877438889110107911198121413287143141580616175173391372503332412054726124713085195010191166125113426141315570164117857187198820124212622213023512494125162666274312890293213072311373215011100265539043215726706794181051196236345449055164967362825961101411190125113496142671531162517611832194120444211152215223750249825138261002716128902914230102312083211033663475335513620614229039748655176131766820963115127913966481566615375918171967103111731127513901483715371614517661837191160208621562218723372492258126773278115721353421410255866456751189094541047111112901345414208151116901712418661947201121902212423662420825110266627753285129206141271353245154316667454810591001054011146121711383147815401690176018661910620832132322432351024596254542649275102872013723113514210751376159720783129333107611701124911322617072130136646515153671787189094231079115401274132961423415711617017576187198312013121942221747231102479025301261382755228131293973058311703290334011170244637647505147645732811291264366410685416131790890953910103811861223213521433911302923684475886161747888911010259112181217613194141101547164171711618156191552090212472231234302462251326135271142835292261962141231210416356561607142895917109011837129013952111022936641475307676714783229511032711108126513494147215311629171771810621672623514155515566671438148917416952963314770516568047378459121613227913410490576675071428131966101286112581512791330747651476540724830198010532118531273134514918151279133074454551630171608142990105811801210321370814421549516717671875197732081214722752390244011802488323344185637681746684796371090113201213113661471515015021513714395926312732841924810312111101219513901413215511648717643181301948820645215232251235102425511702691311046657536907768750914710451110581130219436645605756259714984797110901165115123734124876517167707298264925102611952412346341815259696763987199210711111012142131114443159016541174618103199620300211312266231060241202523211302113364454570675674148669721031911110124113596113021133644545706550712081029661090119112146413801449715320164717661811131911120596111217379149855164967391890979110414114541228013761416215361111627563497484051706412766815693011096116101268131841419154116300176501112173791498550866671088906937108961132124971322616142423664124537678779348560966101701170112510138614191156216198176211856719659205162111022381232932490252822699127962877029723066319032417331903486515062150346414054168417313842991271012011341127313451424513724833811478751124690776841959104941173127513773141020156212123204476520612277918471965107411176121621389314804154316510177561482791312134655170625376684599610691145024123664492513061417478669224109711126117124139045395476907103284796610673112781510281034641204517166977429851791201034111558126813421491153616454171011881119752013521223227722332818021076332471155766077112823995401031114061140221553766461541668773284299010661146129013142142615180416901766181408191552020621750229823782436625414266627602281052912123010831750324333167348435540110727739043654546467156849694121066116212101135114133116226839348325313642971278120934110403119012124213731490152201472197390481051606321772815096331512791330748051460616571238379871090116612321137314102152821645179618691157024132964905710655796859092181096112901249413708141461597716236175411847191015206621106222362310361112173791498531621077678909120103111157126341317144115560161041740618184419902013821472210902334524223251042663279028443295130510316561624913484511537613675588456955107081119612138139214708156371687717170181531990201941211302245323197224512566261502711032833115126203123451155765527858305981057116991291313311410701579163211751186619432020621671707214103904565418622772158591972101801115017012445355141505516811772892911610661157612223114024003664208549767367588866919010976170125363256481518065171148262910381011211901213713187142251369949135483690733187069118102621170712112139014137152061472108366432551269075458198971047113711232139014124156616125171091219229039047915307677477827996731100250390427253206774188155971082711176121027171241390453954769071032812909120103211178812901332114721512861625811121737914985316458723489539996105141166121901357415142282344144755421110326633334190570413442413132549052626647107685399103810475116601791229639043025104861058719418248912010142117212201324917972702318743945769777236892796610182811833129613129014789153216661776183071911020412118722512320616726231325490524764607613890981410288116951296131661420415232110421030390419251606357790810329123810110117112178138531706263317142551027666013724623374472549761887518510919615122303308418451006177730885759456108311971262131421418615661679117981817161915020320217222312320241062118426637914985164639214125103514104158967771508669791102011150121561338411402510354644775906132751854191841066211497121606147292332429651046103079081379321101321144112713530146231511016234179618192191102018721160221010236624321259626662761214727132204515846632775386694241080119612214135091496154611696179618214195092083721461229623136246121872903624531511562687730812196810711113912901310214661547169571747185391972202021384147271318143255161387253812819811080911399129013292149081519716398171101817719392152726635094965124650978378729201024911121737914985516496779183079280101101123412669139211322663137417581064321250290313847915307630374385289681041117012971371415115991628217781855619106211402254366485570165697758841897021085011974129013272146161590167617411826219412046621150229023224249625156269027224288372954030430311653254233140341513518036723770638910391104022717012620337449251106137333815099010862116441210411310421491154721611017411854119372041211542272238122443255961540288317049057661071796818291320101051115012111131041449115236161016176818121019139209502185222022335248125902627227902832029130305131272325533653474635903623637413831397240504120242364371448145904627247320484149581506251130523653510549055478562395779158422591556056161416295963488646665416690673606818469417090711987272731507411037533115127913443415055665417195892954310401118741241138914140151511666171651851196620128621881112173791498531648378118307914410733117021210091390141032157167817101718361978201752141224482347245372514326662775028273299030183317232383346634723543365963730219629703904102566677480813559901066112591281013811417919624803749705716667964112322533904665480675742847099811019401116312968139014641523116165171747187519558209021272227822351724536251102666275128662920305871512410366411151033690757814009170107011174112410139014811511616661757618223147271392451510406967107084119431010301156121871354014496155016190174118482195120312110361171247331057466511061376718909661059119812781337114526083124466572630274382061134290366411052276701757281359297109011236124461315514417159816201174541811019572078219022132231202486125102178255431474104553365867570861970610130111112901312414251155116661711018501932020314147215435645415195683376681869227118627913238414657565087538890910210661171216213138143615190165321761418451936020766213032213523162242022514026412710028902918330723114132433352617912138373341875366138741853791301030211120122511347714511551016255137252037914537590610276684499321030111241224713373134824334474665906915710348793970101551147129013755143215686161551737184519131110282167390466591665776683198901020411227179124743654333590676741813993391082011126121351351414204151020179121313754142551614271048120990101032111371210313144141211566161661797127021673904665916670721587694861010571166127213706149101510201922790340146965636111711328743951105101119613729537914397590633179688091017106611321122241366143215113167517909189019837208121773221020151279139084331513568071017866932110811177312811372130379143075926130775881092661092111301275136314542158116773171051412713664940522761107418491911510418116712114313901452154716711766182091911020104321106226623425249025295269027321281782968303013157325033391334170352043610201372130379146985436447766890991510111181112751332141115500167517241184119639207215622187237124751255392610382772284329596308121134217036641365791613875186693901011411107212532134114138155811610517121218108191922081321773223491750243354448555766671008973914617912138351466579692732814693261041811472123551345614282151301610417741829019902014221496227492357024150251021265127510282551131274831844722529069071528219496102461146012331150219038164477598654272708569187101701130121201328214641158916184178818471955209621322251123143715182903138425756566907791841494541090111921296137911452815711167311757186991991320131217502290231172427817072130136646515791641474548547917110371192112843132171411561591416717591181711915220412196613125203791435454364087828519691043117012197131111456515135169017804188119773208117129035394103857261107508320931415129037304539510386111871018293944210771167179129863664152518761167106877299010730115391210381325314411511301670617431814119231207732128212532713904103452826184710238479109110901134212532102322141065756162751898926410172112531213611381148091530616121175321854319110204351253245834145315110631073781058956101871171123113111014156154727532474615316881714081419150109011920127135611493215901687217871182161981720902126022720239024112255442654327381281652952630766314543261333903481435288365103790381243966407241129421184354013121280353247915307690768151121703540493598678781110027913508424757564547613890981410288116951296138814901512416661747181241966208102146415729033644545120610676884798810101114712881386141031156516311796618414196620591211712267237524249251242624727512866293403010211121737914985300630672258514966101901157411121731424508526267417790890919010241173612961322145081513616235177311812719514206621741225572372428725512666277128170293131414249231234375843611437548379458101231141121381356147115171623315721120332457659064927166841912109011901215213600141037152791613117112018321951120104217224123490241622575026652732285131414215236504935131661790812093201095111911214113761426113728133187413854416103766890915210365119612138131491475151371639714462492341847025103961107131855191351050511242128613123143715463163431721418511923920962171221061238102496257126391271712842929782305943186321233339734155351163668378112942152381462051236396718781529811062011123123961381141301595167177201815319112717082100832364435343649872188439995101491175121371339719462791336462759067557915895296881015511627126613189141371579151279131174785492697179281179901011211252122521334111762663904102598065707908865291311070111211218613101114165151031164117620185719471202421116222512360248025192613627155288129620305131713235334034131357036803735384039717401541156421061431314471453546612471564815549905076511115211653854755645670571265831596606056613036290632016410956590666667516866697170151717919622203414620578651770880985104011131127113851440151701630317811867019902076211112216623824725642691273032881291060305131703280339034403513136713790384039165406214181421060439044764511146552478487496450575171522335371654865575624757415860159760100161160621963136641556513166786772168906975070125715317290731061749075767611177116788797806481121082104183111849085668672871508888145022236649658966673078649945410613119012814132881469515961675617124181051196217036643075490627764982529636109611411277313105147824713425490518168577165827891501013111316122621390144491541816552174771871911320662185221031818247831504833513164047136811589166105111661271134101425919224443110466582062067107846954010474119012312131471441815661615517771866191512079150624443820420655126418770281008958104771113112611380214821537167911751218511930120672152622752377424821112173791498531648790851911071015211226123713136114114415874164117912183219512047121396221072363824429251312672627220285129632303213111932663395348113573115726453498416511161678578699361101111117081295133211417631545916548171031116217623110489159326417872813579150106521119411372485341478570690715283294110104111701256137114394155471677171031648217035074519510746577710988459963210459111032125131347214118115107416901711071845319181202812147222902327724902518126472271074285729131307031483321074335734111356236170378538124397914090411844257435204462451092463247414810449170505151665271531287542591626290315243254164907162842396610170114512901341142171579016511718091814019248201210212492212123141124725145265422726528109529373062311703213133185134735903676371126385139664071411514279196270354941505466517888620956810170114112490131621490159511656817721814119164209322190228722322024753259126468272652842929589301210315903237332141346563578236149371313846139396402454122042414311044620459046804477504812049910505515115052575369954810559056725712865825812242663102490595616077918909192104241117012721315014781722224351441851706230779185389743105111487128113102112242663514770518067367193896111121737914985316458713881229751032115112476136091412015140116150173718937192512051216622712362242591962190375041325977622671858252977107501111012661328115128623233441551161257350818095411075011675122711372897341491056667793281109872102941115212811349014187151521681175331810519662090219152251236624712552263202715118621543874815620612373968797957410162115321219713511466157116110175018320193201265220331104152543691076689179110108721149122381390141231564116952171390181072194320988216622478231137244182511112627627902894529107030131311903211133140934165351033651376638713911140233157211203501410856606697908419751090114212511322514131151961666171081851196620712115122813190266337492757632171408121971810343114981221813241147101534316241178618138198820592113322472349024162255126662731282029903071311072328871791269833134142566565327418447966109011915125321342114774151061797229631234221514263771628689371089118321296138014401153516361171511836117482155336498568693783282449811035211661277136614471515115126633149805671690575784209123109671142212901389142051510211190270236449055064673218709221011011521232017662203791430751736327736847694710103211371252613661452311121737914985316709715784979291104181154712411359214371556163217283181021941820189721572251023105024725110263402772814291330150319032105133734571351523615037414385139577401754122421964382449145514666477148157491287171260034147915414615379084549966108971128612511312371413317221413148411656864771168689351190279131743545121612079228208922110227111771212101321014328154116588171361890199520422196221382322124137251772612082710128811297530153311063219533663434735111361623732381711112173791441454546987438138923510711117012901313214511515916211734018110192142072124522612315124102254932677272412866292271512663314129055165307781296941106011750121201332114961553016681718418691195422010211712600341479159362367328669471090113211237131036145211115121103746411056667537116879542101031712600341479154146153790845491621043811145312208138201430715521620179018791199820103167279131954665966160766816094071035113511412753152490512167827318472914210361141213831424110541644776689099151018411462123113259144541511016513179118102112152903914751416907948125911610100113411512791330744655146622572528919125310881113212441312161485315804165117661871199520791797298315345615789645476138909814102881169512961381475159616181725918735199312097115126633114515417652474184297081050811621214213511447515137165117661816119104020721512266237124181253031112173791498597666710383279531027211150121311396814901532016295174118661933320512151022552236824932583226750278102812529448171260034147915183696798843988106111471288139014152152801651174861841191447201102124822512331724725230264012751288852986230871708214037545085416417888669471032711611123621316014140151051190270235394147543654477085409401018411681251132561432151211660316727913150466541690718381151916510102111136127513901423615137161043147234239042965326120775386694210961170112977132361440151828166617174718751932720502166224102325911112228331416254186104713185039107105401131122413901423615212168117131018153195411422523473415555165387251879811109011275124113191143215170161351742189619187204121104222723101248112575263112713131708253739048552056102111512301365119628936643335147611077918161966101551190121531330114357152261612417671839117502941390466511666871511112173791498513076968741889039710338111241572150312041115131655471478131910410161116612110137011470157116155173201962154391049056662267718709470101221173125513111450015470161551717418941910211651290310246657916566755896983910961154112901310214661562016717104218226194712020521102114729033149875906102766815479901026511158121281379114202152531685517901871019346201002214222110238124902510426472711028812990301043135117912983597490510266677978307959710901110212144713618145815401165117341840119712096117126003414791514067571078859164101571141412641315114422151551656217702183901913520966211422293523662472530526915271442825329703082231161325623367341252354136343731238130395114096411704284343810441204551146374714264852111022483329444775426510790821193591057115371212313153147101590161241766185719537208521153227102390241442513026502790281242966301513152321773331349135251365231412114390412351706667478114990108511170122101336814171152971611617681832019028933274184581666796844691211036211155129991208285378242165906144741281059135101210117411253613721443215411647817115118165194622011021662211623682467111226723382442571690712481210966105011951211131373117082593241490512267771787799710421121512411332714471547162721713518175197912059221135227323910246625170266592794328401293230171161129031024665316530732821091014102271114012661351141101563167911730718721930520642131122511190246034564123580635715289699610460114561285138014351513016961777186619110205021320225511708246834254105512169677821695110661171121101350143201581166231336432511626374185691871031112121295139614195159016661752311212903904362555067273268439891067111511241613901483115661696178701866191602040721352210311723637564615307661277781119210710135115812418132261490151021666171311844319143120588215182250423372421072513526472737283511322791318644151466122711386519710801169812345135114607157165481719118421931120662117422170237072413125574261502760728144291013016131121321033366349035155361031523286132804515167611471918509411021111411256613288149615131167017583181531910120161211232270231431245882551826117127113281542990301553115132103147271316645155406137732861099610530111371261013898143071514116251717518411941203221512221123131247125902614627802890291730136318983230733141345735713690371463812239113406514199421754341444145824463074714148170497050175122152565539735441355905666577758665915160791962540313745555102698763689691808106611115121611381143515774161021111217379149857026144279081029661054911371254313120141411510116162174901813719185820107021552296232042466251131267352777028510299030132311703266331703454935513666377138433959640813131248632624905227612107478123191461090111021266131251424215910166617144181251924220110212662221223572480256626159279162866291443011031266322053310211608295313314259577666712878259151279135324137598162367138813095101013811711215101390141032151381671174701810011966201422169622962314724932598264772734113221541390426551586128731861595310371147512103114721403664515166616577786691571012871962219390410256661779081032912821073111141129613813149015417162501741186619307205402123922477231842417625209261102766287729663012873125917082144239041032518061707628519797109011157125113112014511560016791173071851193922078219022812310317082470313546215756157765081059135101301113541254413782147415203169017277188371910520811217022137232472413025135426953275502810297913030731363215663312034559359773622637170388539244037416242170435144714562467114790482494975051051105052515312775455955131356968575158665975604216177462106178221350315741008566615271878116912110782115911223813157145115157164711711018227194242055313724623904141451776517483852791761013711611252713665149015661641173118269197720662115122791522139361445451416498762814294310222116612371347014781157411174726635146657161287725913724383120479151117623675186693110201190127113658145521120629031424375120669076681791551070111478124113311410201590161671777186619432020621681624913524478516569075589691701048116612165135614187154116901786181551967196215037747598061957540817509661017116612128713259196292354241725976110719587796610151117919629236344755426540725087922310184114791245913548141031732910366413056596475710581359511086611471289613321423615471610861790183201994206621130224542311024166254126702747028540297730910316632130331021131281039047305906105732890924110201117123961371413015621614217961819019750201414211441226623226244712520526102119625113327490576641746283595010488111210121021322714911541164461718118981947720341151266331412905516530778129694110601175012120133211496155301668171841883019862208715121403904655326553757814093210371112551155266313741781590697715381127196222323372459257526193737281380973010661196121710134011447159016601766181841986020912211031129216134741295401632714071672933984375736126714917972983153456157896454761389098141028811695129613814801566161091796181951990206621141110021643374102536645479081509771020117123713171435159016601766184719372035119621503904561590692077856191710136111471270013891437151036163611962119365413051316197658179158104791175122591314914170715661625917671171241390453954769071032877966105211320126811032290315241305666560714584794501017011901245413901446115152164721731189171941204222185221664235124539251547269027122285729553305213120232473358734903581036131376638713974015115722473108149051086364778107391111062111561251131391410815129161651781018141519222203392157225252391324131256626712743285962981318629563514511562615274287389111104871150121111313921429615571653517913181311966207121128722259157279131060466551690753587796610138117917124139045395476907103281409157107911141412454139014192157816511750818661957207072113122652341249025539264727902810322977306631106132631712413904539547690710328116968106715123113777417514264177863877966101101175012315190271322445095966204766850999610843117712661318114303111217379149858362077202832096510421111012251137141321540016511780181061197203912114622472348241112587926522751285112957304433173214773313134663571364337596388131112173791498598668730784609741108711110123011346014741158816901713218961931020682151222433233012493258322618427830288622987151279139845405307654079885409307105401124123011370148015661613201775183719104201031502236235347557746821791217663392458590660722781469916910113111311211313651412411102873170490545465177028610941210661131012813489148151111658117155184181914232090215222212152311124702256152651276628114293623039831903298331241791275836241315716907488890966101381171121201317014571571164211715218138197120122421170222762390242272514626782712228562918730863111332663342134110352273610315123623741466517672077088148941101571114812121132771414215371698617661832191711150426237504315416527378419521096118701266131601440715351610311121737914985316210773928589901060112271267113511451015651617017151181031512362390425552026907282886940710751135113227913410414256146687734810996510147111101222713152144161566162271720518102114121903664835551696075378779661052211151131220366423951096907167832990109701177126613181141511512413381147510916775578120976101311166127113157143151512791336646853016286751839796210661130112208131461487415356168741728618511917172062217502210316724533884109553264217774810617972983684301576639776281391351067111461247113255147715661612871725911212363454451548761557424890914210184119812116132231490157501621817252186619213201826212972210172354024170825134269027762841294593049431287321203375034468351163615137103140722313246469851876757642836968101871175123113481149015493161358171351865219194111232995369643515414666758181059121210108111871218913111014321581166617116183471911120162213222171135321873110429054596102111872523581414951506537290829696610471154112471313314106153071675175718791191118209521120223202395244125752672790281402932304743198132473354134171132235536644657766679587915729033644545326186778132945110621118712861315514320110522903791417529961557422843997510147111201210213661473111352223431104625125610277881429751053211421121351377414821100294839041715135622971628439881061114712881390141521528716157175391864192292068219322832236724571252052610211522763614615766417648159990108111821241132591421815176161941711018156192520132212682219723468242125216129721043376413059061327297870937510130119612661311614501129126023105647158661717110866916107611321127713661495157911002663319443588661793814791431037511116126813320151279133074107512061027668104983710862118715127913307498357068076681320975103711104123201322319398469559668777875091101066112811112173142410457463277141890926210178118111290135714707151311665174118901953920103821772266231512479111236345443151437690712483795431011011661232131391492151491615017531829019296206621501221382341242902522026952717828682930130373154332103633463348113590369237663836391940126415142864335444045354641479048539494750905110325211653685467180262031494515866777658379137104291196126201312014482156981670317461812411222791398415355616231725588299010915114812791136181469615907167741782183719732075219022602366244725372635111121731424104574625879082629145101011125712103112227913984685614677829890925310951191612801346143011565111026213036645605906117751824795510100113512401341141001151161622017411862019172071621512270238024362540261312747228101129156301112318132620335734783561236235371273810603957040908416524272436644904551461237477248524932050150111217379149859462137439890962101931132124113450141701512101688171351849719248205121662278234124224111217379149853164457581866937105361128012371350143715176163717101184431928020146821911229023247241064257082650827192283729363304013114632513316034120351383628037513888139540401104123342553433744534451104657247168485144966505151665231853204164821703486481584689874783691240106611712882138941469615119164717511816319322041211170224723710241102517326572710672811229790302403187328033791343073590361243711138135139963408741491429043124448874517046570471416489049163506551170521010539054775551210565745757158131596660128661258117727423394755130639790845394710580119012249131521465115811620017661813719812017121170229342310124662511526514276628512966303403110218723939044535126679174148454938109011186123813751462615901656817626189019791204142145422902319224702259122626527248281210292493037311750326563396343103513536184371938145391740904183742904395211121737914985702658074181579117810801191124113452141221533816300174118183195720510215622302235724510251050267271102834029730143113321503390341051357365713715238150394144051415774217543224419645824691479548414922450665114352170539054211551065622457314584865956560170611906297619342165366417056626741766787970110570112211213713514146615511666171501811031933111121737914985836207765832092021037113631240113146141101532165111711218111930320576215142266235124662581226432759618026637914985153656177581325921010102017972307373544655676102792111217379149859286560766817097011045111461251138814101157016180177018180195142066211162266235762422311402130136646515626312762981359561105701116312137136614611517016901758118157198572064215372230223774241547256626110127119283812918030541317813245433613349035814362883717038300397640750411504218443830447745133112329953696419651606183717683549121101201192212123139091481159271671737184381950920110216662213523322417125135262312716528185295130663120322491962791313845253516135276968197990910811192712713134214107151171618501741185619187201522111722662343247825276111236345441045746347772890973110811151012113613901445415172161201773018104197420902166222562342924102129273664905473610627928162986410901114021241132871475815801641173001865011342300379141385516667118149953102901113012170131001490156616321175118206195120652114922532329024522596269027103228124297130903153932103833473410835740364137321387239110405041320423141537256338841085646667298130915010842118201232134911450215130167301712901812019321207882190223212371249025539261038274728108295230371111236345441045746347772890911010685119012321135114543154116651790185121937209602118422742351224966257226110275028320293141707213131164181511614679288165966101701170112103131501474151691697174681841197020416211422902323211121463642410325240644174228669901037111011121101326814669159211138211311645159661477266858980106901141812820139614131158201696171321869111312284390479157476161766815696421015511361278213108514191151089161161766185431951205102119611382113116452580669078841952109611788124511322814612155216621723111312202361431591632720086179461101131168121771333211312137329341555333611574818909103210111114611211013177143321437215535346354561417701830393541061211901259137614542159016832171311863119131209221542226623902463119024713414345102064175287492410611158112611368214661520216232161221535144185553656775568909102102821175612211310621565235319545305616661571818909952165226631204452059061032725581109227108111616121311311144471548116511777185701970620123421298228123611241812590261861902343750447351106627312856990105301119112121213190147151451690171032181921953020142211242296232624192252026142271242814029459303413149632540335134731351353676377503890391032404661922213791427756663077202890910321014611511254713714139157165791770182851990207112172214723902410322575026752761728902996308131903283733773341020132279134104905132651771181559228105111661212861325811121737914985508666714168469142102611901210713190145741512791330743655167574189091032101241158112115135311471590167731756181871941205322113522812377324811280251382049052826477458866996108111773121901398240332674715216437838102990106611721294137811702403390476597561357131866941810115115112661312861425817125403514665356907539810389782109011321121296131201432115721611017501832019314111217332743159567917397890933110901179112138139214140157616496171831896197912017212272278223227241762586126702743728354291213090317632922332023451358573670637139138573970408174199642964321444664593546160474904835499050665132152675379154705521456665751582245918360756190629663617648165906683767773681020122727823108452851316407149810797101071111651257131470141651516016103617321185719468201492110722202235124662520263001116215431754643596668766854095021090117612750134714671522915221393643496519626277888914910791111381282013171435615249164317145618901942320662184221152332024111251307261422796328372913073042431591321713396347035783643378838663914740454138814792155396451522162237167816391681016411788127841314714143152541628117170185941972091213062235239624702578264327882866291473045311058124721103747415255362907235871962102911901264313473141251595161917262182411971206221292290236432425251027266601114236312544358866679589697010781143128813661414715451632811452613454414152356717628299901045411152121151314914107154316881766183719872206821111223423902413925802615427150285752910630423131132663319334463524361063713838903941404624165042124243414466453734612447212484349510509551156615726931074435886667378872968109601151125661312014872154116881766186119131204432122122922322424662551261572787428803295730731319032142333271149285310684965119690766869917610222111217379149853162107756838895810917115812872139614491151501613617135185119662031212922177231062169027913904183510406397713582029960105111553122201322014661551164211752118719241209021129221972311024412526826902723628155115227913984535791620876881291471096112001241913187141881592111121737914985906614715081209691022611421126613148146515871673617110182271983201102139222792390241022566263727747288129813075031910326633431349035321367237137381501922106366430757976987791821691571047811641251133471962446366430757976987131817966104511112011121737914985316210777918170891241019111091290137911441415454169017192183381958205142166225123510241961708250534141575171361971098750998101461131122661130211336445453566467918329511092116812471388149215471688179018132195720781212971130235312345025906750755381249661090111551266131808141151510916135173401890519822014472167225002311224837251202677271331708280313849251106641733385191041081011712721314114431578165261616273131354397590657271688102949910102114112781320616721113350424951206181757281029499101021141127813276153725631446651111614307708163943101381132122013568142401511016321171171873119135204121882261239024222251071263072719828107291173018503141325633187349135118362523727038973966402024190421032431464472453146204727514225133644545986514738181659526107671145412201142296314946435131647788886990102471188129013231149615808162791713518461963920736211352271234124206111217332741032541688761890922210571170125801312114143215696167217230189019142205121662231232924177253921130211336445455306110732084189557106431113112471388141011590162621711718731191352041218822612390242222510712630727111284612911030177313921512791398479751761967388890991106811931283213146141301511116686171551837194520131113421352365146253126348786829199110591129612431331144211523616391177291839719596183232347645355197614375408403966101551154012117131431473015135167217302184319206113423003791413855166671181499531029011137121491311146215312168417661821219268205621902253023682418425248266627115288929593028231473210913390343421134230037914138551666710318103694710901136123213361419155716701747218111192022019021791223072313524773258111122474341466518176727128682581412149353429053262967104810309901013711321125213209147215112161511711511811019112207521443225402311512461251721130253339046056664173181009901010011137122011372141115211161811130211336445453161437790812491210101391137128791323141461510416837179018132198442073121843221202377241331150279133074905626312711081419211015611531229013750144315167168417540178231352241205310619171028419781024616102731313545025791630771028419544107511236125113669146615155169617804184519691142278316246859964778884694110175211581210613731141351529714872305314248658206987568797952810493113481255138201498157911613817521835119750205321135222902326524102253126748170821773414885416327761081769129010901114512811335714901513916202172531892195542011021401147281331414656864776589091391017511511269513253141101517716220162926634341385454661379088149288106951196127561321142491797230737354465567610279211121737914985316655742284193910661190123713881145115661631172018605163281336746657062275148669741104911171219213121377366410695906162710681377943106141113312786131211457515181169017761841195752010621722531237248182530726170277028172922130103631523275033306341623570236558371002381623977040724166429043417441904597611121737914985926871734781819116102631190121401340114547151901657419222243401451518661227117818509901087111347121701312014920156616126171571811519491205511103266310343275922613178868228992101101134712106413133110021103791498515365617628131912610702114112508131041415315561165401750818104195402050821132227223202424911121737914985188666732289091351048611851231513180146615901669617104518170194852076217502211523773248111121737914985316937713584979248109611535121501355514101155701641175301890191912078217227072310424150252026103327128287293063012031181327331043475035142368463739382463915140664111142170439644754568046664795487249945070651592139290310442415131651279083429254101701110412233134114484152491651417661874119462096411032663128444352806152717185429280105611182127501357714511566161501741189019539204721902210322357246625522632027150114825136643185204657766812869258141211033274325106467271508419462104711916113023134864114355864279687259114310588116612111347146715190165741112173791498531649871208322951104061190125261357144981512616681797183821940620902115122662312624722512862688110429731464905192654071088893611412103366490522563777883791411037114912106137911430715746161101766187531977220312126617082140375450854164178886694710327111381212113411464151151665174318711955203121206223212337244751112173791498517062517318107099010830117021286013411466153731612417212184319510205961112173791498531561227702810089731047711681214213602147071510416150177188521990201270215122491231442249025103226634271472847729572309031763215733341346835513610433731389603974059141424271437014431245374651047315486649525070251120526321131277031104975570654279328207922710901179112569131551412915341166817791181091990207562147225362352247022512026106217502653514418534861107208796981051116041210213761414715514166617184187219312029211772233215621233664321522667427446813893110140118112711345114141151049170121313664115150653729089219570101301111612461137011443515216161951749018142199020802162227072356024454251102664927131287072911303090311003250332503476335121036963755638220397634061841974233043763447074512034648747763487074958050625131252140537015445855496562115779158307591356051617066232632686410217072425341431655169871283149138109211316121041322617012131331241151506537290835955910222115112971316114601590161421713118508196620512151022196113822643514101596651571898196951101041164512132131161490154011131215035342905106625378881619601090111421247613811485151181685817221811019365204572181022399113126636141335170617073108769150101411177812774133114778151416901723217072131366411515065372908452953010171111767125713961490156016661713118141194120862140225123137244125100264027110285129470305353118432545335403441359036200373738141394140904121042714345144141451049141253037543254167017785198410661121212268134761415515320164117444181351915120956214702245123343241552545726110275028320293191512121731764975576168077581519451101251110911312663706456521062867239875945410613119012814132881469515961681710101866191652010132112522750231242410511652903539410385476145717811095010320113141832653741473055396103871098140292931054011791123071324914170111274137904905696540791083594010150111291254013491141096117266390453959661032715083209274101561141125381472856390416590641272478329781012611117011842729314147155962267466864941107811712548171221736041075906177790835091561090111032124113701416015901634817142181551944620160212882261323902485325232268052740928902912130351318611422138313044245906370722187291611079111307125113706143215268161021144267388411559064271398919940102721154012311312161422159391418952346179715584191581140248332924905152618977938867913510411178127135481130227739041032554061158711087191781085311302120341490553961038713086594221011011195122841326314411556161871731182121995207912186722236231252431251621412413130490510162937178211918111302121136641701547629075398103891710129113712129131301461156411651177718371990201312137225262390246511130261368245155706212777385691020190238031254766518462537756812491331572190366410025111640173583291110571119012812139114110155016320173141172337318648251761097843113021133204223531561307668319972101281131124113706143821510411671796181032191212079521512211023662441258112613027312831029130309231113236331934117352223681379761791250734544421561641671098791986710236111251231131621962971313046915110666772387972210419115612311312814105816226033124454051866820752886195871079111510125731540270347049755326517138872925310411171126201115121103729411052366836716584197810746114129035804615160611071838769511020611961279713307145715217165017161831191132082141822702234024124251462679127307285129706303231281321281512121312541235125657712183292361047116361422610370141935110628272188119491102541137127721341414253151321690172271322737544157867467908132942102111111212711362141251510216809114425131543254706967478108968014226103701419351106247713181019706101411113812421325914131158931680417431851019756110428603791472951436667418870294591016711140712138131114719151101641173401896195120144212602211023115624322571264127273147255396432510264772718837981010820115661211213656110421903564125574162027176831980810106111062124141366148111402112232904905152637971108419729107201141812447133911437157616521176618140193420902153224211572713222413051117613179408519181210231119012103213714131159016142179361818194220311216622188231102450251112652627902813019224853791423654936627766854094610339114426738741155166907207813095110661130512110135114971516161061776618311920614729031249051032637722082299791032118112632134114340159016454179018320195402041212472257417972729346541305686907140289093111066118751296133111411815110163001765011302672351446257736667788619167101211116612530135114510152551322173530449054165307468519311105721141129761140234234148159061527147781079104810175111536114727013594114514776106756081839731075114011241137814206115121173414927576539715581295010320114181270213295144315414161397171407187821945201881259220731774791597768976582029232113026523514130156662307360810469110101981190123613121014661548116717115118110194202044321540224523240113026723514462577366671407879213103511651232131771410581472340342143256026105671708919135101111168612155133714451513117972729346541555804643778830611302313137490513466687668379141101043113712137139014611590165117473183219412034214122130233524486251522633927112281156195727379147475516525741824791001075119012651346143715460161751756613726133791414052476104374178280919104111130129013116149015320164717901891191552090213202273823556249025106217762531391748745183653790866915510901111312101136614143156141708234379141625465621071318170942210262111101219513284145615901614017150187719462054021403229023812413525136261286272581776225034434958510263741130261346545157767917530890960106611130123113473148315104161260177021847195220902154011302613110467590621271168879411013411411210191371451159916321765182001913920172181022292113023635141345416101977894092721072111281272131411410641135252931043431515663271181569411090112331224713471456915901631117321815619372015219022137123103224372521126372773283229903042331102117274135574103515664176518289954010642119512950133414150155401646173731854019132204321510225961172337318648253066170799384189702101411731247713891143411551163117355154022113414665122613973283599910171133112162113029031334905137162337247853591471107011190121061390147101520616901761211302663133496596650722285409491109761130211333641105516582717087749901024611712901380814294157161621738118826199322063218722211512311024420254432617527251172827316641751396130749081709681802533800415255961708261137914147259064637115181659418101423119012522131215144815200164011711118574197620961211102217723106214721103791456659061167908320910610930111751256619062791317084109510364871651855996109261171251134921419015431648217100183619902060216622462337244602557265042750281042931301316319632673379134100354336893775385033990409841779428143434478453661130213139046056664173182619371010611126012110132251476157011661176618761198772041121902210322326924352510226145274128502946230130315132193366341135503629837210382323923215721583157451851767417468964117274137304539510386141762814697010166111411213913411412115561674017901832719141201043213522217231092484317072131325944852086210171838419611022211172129013861141021776226032594496553961038712289092871151253311541015211649713187069212101511111112131133114111520211512211337141011513167067212815191111013111901270137914212151571690171771892211512211343141015513167067212870692231015111511121311311141461561162221781189761612414324477052896539710388149947105211901265112321513131447959066671108609371068211411297613714321551163211721218321191362021221502232023141241122517761116268234149615376113771118961968104111701297137141701515116911748118109191242051215102259617912983764109514769727678759122105111505145624623468425951106151740086089901036111511222213781415017023531704194551670771870990101321196121315132114197152516162171221826819776207021249124424431564108550690722012182177313245255769617110823219625931362470955186121741830096501750219366429576907321890982104211528124913165144115781620616727913507445451056100713183109810521118412107138141471510716817363167279131946651376510713083191521011511205125113111432159301626114723113664108530967017138841988106611110125021390143201513016901788184541974120142172211623257242525171265642738028468291142307313158632413370345473549136373770381303966405404194542904314514416817122423314442635234674176282991386104111341129613501479715162168391716218719512011021566221055196297131304691511066677238791311025114112761324144615320169617131181481957020412188226623422461025701261058279028164129477301433178327033811342513587364663777338923943405104159242110436644121045139465164712048417491138114025103295461584163772458106694110747112171211711347142601517016521177911855719962015021531221342357924122258362618027412851029573151266321144151036813749890948110849114811290134914790156616141175621211213331094101513164377377812297501071411125121811172741310349051306846788909137110233112471210413251144431517616206117274134124905190624788085869104102511144312176132511172741388490514265179358794531050113201293513951416011585316951711186641996207112190221152320724702546026902712428510293283074831121632748331158344135745367023774138141395140904179042442431764416211162653531484578169137358112945910121211140121261351714111152361862539310384615866357408769470103511106127361350143201517165217320181501790266326243153663271187319501032011168121713110145015320166613126293325417523463257178160984311042743303490526261707293830599610120111961247135214170151000177624203443418956646153717682061473241325461590622273183693210111110771212013651142231136644155286477174815599991047114511215513681372469379141405906607668159966108111121212140137701468158016461718518540194120247213582219723432478252061214268312414759064597168186981013011921244313124146615471664017571870219414203121162118825403345461570611377837924510100111901211151318114221023138486513761417487856591551050113201213313411478151431632175118321196620106217662210417762154380462581638071428909341091711411287213887141671514071642173111822219412019121102522472374611536246310047915316162783981057983310411145128761129126631413469517674178881019454102411179712507134541420615561612717901822219141201112152622902377118462490322241955111631776852691710211111811572479372149059061032786681209102106611511253813321498115571645173218956151222231141415906840712081079171014111542113728139204101566611575185109419101961472903324458581692071018669115101101120012901341142481517016321741181650194620572173122926237024121225140265127222281129141306071913211063572473551679171488572913610431178128461372458381470593061017668115962102701157124111311014411510316144175718571191112064619727134514165516063572578360971090111421211013575149015140216100178061896197702067214212241237824206177621543904505315622472998307996104711326123213238144715636170824593164138580614674188466957010411141712290136614661514116518171131869619172207912125122129123124246625779263182743287829326117022143664515346518729981929961021411511284513113142991591116212171121817419902014221770221132366242942511026791273128162171223003222465151046251744381769986175220531624124524761779184397810206162256331244115610684710481621990101421113712991390141421525316971179231887419108920852174122434238124131252822660727695289629323041313113266335134222357836150177629638724106258736437788148111261038441485716471729081509256101701142212108213141141161570616138173601811019242201651215522962332224110252362696277828361175025137048052226957341897294810116718626083814147547622271113811192061228210913706428455163117777811869901013611411232113611441215901691517146188611512413536443154764917182113021131464148511065717618141922610596119012476133514178152361656173118128191058111626538149015906739719981539218107061165121641371214612151211671176061811119130204121662247237124652591261302741285762971304131134177626737604905651653078785729295101451115512109134214311156616411719118102519472074611442710316247145211631713583299010361111641216813648141117151681631179861810119662011621692221152313524432578267461144241390467571061937726810079294101101169125713801445515125169517531181351922120562178221501104286037914537587614671212814092611041113521266136921411015661610417837184719782050911727413352445451017612167101787179314101151115612510133281474915121616748175718901974520702217412241423113245625108263727747285629313020314711962193389458755768173678669371087911101612401135614901580161021606218390488256116967148861191301010111124812411365214421511711611517250186521912820142215122510232551962643611496533366117130810119248104111652124213117114115152501665217411851019320207012115722662370824170259712613027691281102966307233187032142331212341403551366637313829391774010621130231384905416257418289911010120111341232135114861545516717451819519720782186722136232632472524126362712402866297301703110103212103310033437357536131372223812863925811162791317429955067107118089693331011271129912155134001432154116478171157187195720721412210402310122475025116261059275828281113127483210426257066253714283792141068111201217713374120627913528436531166674185729371061113712299139014320157701672217791189019177204182180822114231302435251842690271402812942981305131928323233981345735491363237134611302145347410695116631171008174113027533804791537565176682489706101311131612111137091415515371687217231879119729204652179722312316224839255126249271701130250834314415248626271708329927107113211214013121143715937161021790181721910820417216322372370924426254126110527962847296130373193732221334413424835663632371413879039157407411904265613727093714491532644371581199418101042113101210013911414515202163117180181911932201422170822570231922442257126701273122887296630943179032157337341903513761572706331046515564637787981239860106211120121071379014157157161901795615402462311644545482611077418119961710801132012251325914175151431624717162171224233144426355646514719087041512543392488545461107560890918310571171121201371014120117254333645258861617454810192010135111841274136714901526216251725918170199712013021722224142366241802512626130277912824029120304633176328043343347835240135212163324515856613777842192221071142112872134121422215561642117872184121922220312121022191231082470254702649127902813229730482319032108338113413035155836523716461512791338741095846381749081359901032011921228613411466155401611717431878192461902143156411555706578796814911810111113012321357614511531161036113021113704212541630076508659151107511259121491347147115901665111302513531414657564977658202923213125303354758564165873782611130212113664101352036177202850932010371148212501319014321511616371760718219192132081121540224123262243732521226432751028952915661172741316347215103263567932818698721060811138129013411446215511622217340182041962201316212581161142328836141115806907314821199510138011712936132561480241388410159062627378879990106511581217113411413761662903315411351006114741487945101971121271312647015596114732851913810521171121031130127913291486522764211400215531424475716107311002766313941705103061197147845924519621080311941475791686772368439781046511103611402171390410325160690796842191711041119761140284135404407554061817166875975101541132121031370148015901615911312413180432546767017661813195210810119512119013901425115114116901769113129739641215866507518102299610884117112901313821131212113414565638113127139041281113121233147742555756320768115402536390462570696775581269147101261142612371340714766155811131280439647975259612074928135915210981115012174117245313144515426897131890951810751113712703137101453915557169017106212122763401456576641722281669901051311137124113117142631512016710175391832195120477211502272347724902572612532613914120524011612140831514802553964067768513919610831111561290133061489151081624817711811719120204912153922137239124512540126912780281021132225331021424255767071680881970510206119012952113122439324902580696790810329800105171141126811312963474410259026102712591112623454104513961707948227952710517119912547137501481015750169017412186619175209861112623454315650640176188049791090118912137131661413915296165131756182711911201532190225182331247012552261542741128582982030313116217082187339441385646116765872929210811130125113661431152511643217593181101966204121312259611302241321242025164680712485091071092118201235139514611567165361391219339741085155689779681708941110581190126013661414215961650511126234541307552761247508107963105161137127471356143115201647111302903248472566644178048112945910901133812130131514820159816901755189619726205621187227702325024443251762620611302923248421254266417110589694710611157812104913121214139155716927176818411970209721722151235724543251102666274128312959618624633447825146797318132791361037116701112623454425531629071508256917010422111701251113135141111568616155173718451913117972729346546965126667710282829451096116911170297131304691511066677238797221041911671213613197149015454164181770218459193412059721138226123412451025530269027602866291383083731121323223311034236359636783736111312642390481510461030790819299010841114812901328214911510341646175501810071941820702212332296231242453125847261132725328522988830526317743295133903428235131368037950381063931405961537283387741215716907161890991010893118041243135101453815127913729446556966126731888897510121114212371370014891541816431710418901910020651217762270233741752903984505966231713078776970101062179729831534561531618071918329142106711102128913451496156911184241390434559061030761389098531028811144128313651474115611673617471871194992067215122612366241342541426290272532814129733051314903289331159344335510365961712102389410252826517104864941101311125312109131151445315411680172621810919138201602183122796231072451251552666271102810621791216031204102566610807808519839103571114214311643835234641675181589681010211891251131311417015701665617511818517082770333945415102628271388253931105541111012177131062171210233834235546161587138841910611018011173124713510141138153279136414315136666725586429891031116861217013371449115521171210232824102589651789881619901082117128113367146615138165117661829419110203921791217083109442510961651755896916710206116112117131411410115706164717781846519811140210934254256511061407198259917610162135212163324452556642174528146979110121119012132131041441415290162531714118115198120902146122547238124725254262702712102874129713019031104328673323634836351653641377838746151226236647415730653971038890946510521154012477131101460115132016101172871856191019204372137722136231301242482532263527761282782962330663120232232182226231471470155663172086051372551390410325766136792868791261051116481266133121490152491172741330042505503662724865394181070211531127213632142161566164501721918719822093521722902350241172257702685327487281902913761732523813445857536207774781102931108131132127513770144201544316176175861134234236544151516211711814698410661141129013901436151215166117682181701977320562110201131210239041515526301790886191021131211314641005126866711682969901020211232110932692321241555906147790866941103111596152225137449205906262711082339150101050119431219613704181322003797411559061617135887919729104651196127813147141701472753647416513161171468849661041119012901336141215151121695611312102379143075906151752830199010151115812105013901481411312113146410051261517116829699010202112321109326923212458590614971011522251374492059062627110823391501010501193412701131631472115901676171461864197820902176122762310082442256626190275741138246531564665236956741871986106111532124313525145115470169017286113121043176417059062627263818089555109011112125621349114761541168717661881990201502116382261231702490251681120027973115425559162367207879197291046511471278131961472550364741305131611714688496610411190129013361412151510416474176718901926220710211562266239024162599226451279028100129663037315123278331451347733581193427013163472159067677587599010103211215612901310714397159201667174191810081942206621372297723902410322524411312102379146905906151782081418912010911113512597135114130153301690172071813819522043212912272319211312791369045257436531778357145721873483412052416247714481191291046211431252513511447015901642111826231931884905250660415262165313741151466134714938296921210554119012106133114466152401522701313141815858642574182229810901113129013232111128873265431659066071528329491101461143614727131241515326517138885599010770119612112136801200247332464754716907129413072155325041231511067171788374147210436474383513161171468849661041119012901336141215151041647417671890192622017421912214523372410692514226367273728551299030103231763213633790348103590365137510381961372581352430055366556712081029661090119112713147014801593416701175101817119860201164211102271231782427515727131054150598674376918791111070111131238013418147815661611317171881019160113121023791469059061517953811938210797119812130139014761157165601790185211913120432171222861104274231104665723651712589095301076117011210513661496154716861781185119130209621322251233212466252532613627253285029320301413111032663350734253354893611337683819739141404574181042580113721023791430759061517908913938310111117021294711826231931884905250660417912729338347157061067796879197291038311781245139521526216531374115146613471493869292121055411901219013711411015146163611472342390431559066273281352942101071110481217513113615402873111411651546418715781449104101001165121042133081414771514071651173118636142251336434159865147569815596231090111421210381310614729151477164317781814811722363341451546661147414851915719823633414515466611478188519168117922603664111510162607668329177109481772193820476651032690776842951103611361121891380514137151101618317125183119236145023413240413059067071408459933510496111211278131431443157291690171321877019912066211102213823392147264379649057965776487669331154026233904121511664657418406991101057118121231131101471151781627511372116311440656162967908202923212182110351431513761107668329139101041147312691390142621537116120176218312113125134704413518648178851947010901128612212166378241556236102113321937824155823612711131210239041465406651770682999150122425138734905106168227697113822093613429759061367569143725232694150120230434064138551681723585197110108111124113121603117412054331138211311644255165407488519126101081126111312138315141385275613171428725927102701110201822413116451513161817782815961010411116712562139347441578620611119210631964135111472304312811382923204423212022116326811312406353147513265177518909511070611290127111390141401512401696174218226195961260285330049057116540726381741138252341425352781472590391432551692741482539711046511253121281131611429315543162301137210239041465406613017116815791911090111032129361346214131156401610917544181661958202312136211312116318145985686306751810329651072211901232113901482152151666011382768390413255168627968769411046411131121401326214511565161401712461890191032201240211102259611402135233144065203624679081172917510986178224593154413858167107578537985102361111812961311514321592162651712418661910620766213122206114428638524759061677498891211010811501219814222155317742455207699278184129641107701184121471334317721763155424151386117116875981102221143127913144149015800161211724118226195020426211302262233121151245131654241541634745810449702104511636172221353147749058169877298465984101261111711764217737914785147666417103281255944110274119612846134901422215159161101762183121943202992130122412371242202540626157274728782963617426433124241548861107146823691101018211751213813111411615104168117371861197520412113122111231462449415125236424415456957488419781020611312121136641073537617797081109232170721753904315406623277688049596101241155012181139614790154316901726218102011382116310914755544657275208551920710333117512137131161464615262167711790181561913520372187222102232751772143116463251016207713182029261101151116112131138014661151061611511741186619131207612111622226236612415125443262072795281082925308063111632261331513418235131361413780238613958403741227113121131164615610611071428704910910138011411283113761490156121479235390477590650732081021961710801132012138613113142471516616131817127183311920520332143121203422479156886907103281212913910571121712501316143115113168175718217191022053521312217212310324572521726102271041281721291033075031983272933465348435126361171179727293465414758376419718783597610321141127813206117072146311649058169079381049681035118071271132171456153116145173718741910320171221842210311772169390470521469671048837913810901170123091325314129615811620617901895217722733116441515161853714281319113101216119012861354414241152621614717771813071926320616212182246231312453254126512717728147729383065631111321140331234117353736563371103817739106211312202312814405647669279086689457102491134015127913170841345196618027908247974110901155129613776147015811179721473512454054106907828104951102221190128213131614258177248031204116518336130177789691116101911259128201345142771527311208211631514192523466327151817469319101311120212361371014501159016132172818507194320180211872291235124152532269502712302882990307113142532903371134451359736136137813830639457408104113721429281390471059661237968837952106011611213113783141031571690173121866419536205021320225692382024566254782664277972845294653016217912538332749358267417788469916910901164312131132961442915117161201734118541975204532126422155231144248862516526336271099284412947130155318713298337342943535736486372873874139884011541674245432451130211317414256162967668101912410741113512901353914103815311636173218111938204662117822682330724932582267412710628682950230490311903286519621463116446575614171381701281296135754745826827418116970110627111511251131003141831524216596179518952195752013121104221402350241122558726101727155281112291453015531121321433357349035422364137418384739102740106417842236431036170721403754138571063467638969518107501114912221364814361568161330179018109019131202491116279139774135513761210774181409751042211155122111390141421543167817103611432120334644415471610147241870191401090114931270113856145141556165071757118621931205282131228562377024133254326782730617072531346413557061426714786691401071185712774133191413815101516411726218181195661151211734149275761157791812191201010711135812791139771477515821643177818306115124773120441562612571818759831030911731170721151322246625155641756818799010161117612804135114222153701620417621813161925812812903103248251356216714186097501014011552125181317514339179029031214710571364547136781070970610961120812135013811457154561610701757518132219712013162115522651234542451253126153271102866293230139312773241339534242358373681037820385663911240656179721863456415551576527318930920410259170726013664231576693579638569177104711130712411352214113159341641179518190199561707213013222490562645790811569135510361111101223613491142641513816421736018511954320562118722522371241202570626117117254339245215616907132877991510901112112587134314180151681776225034434181533914372155353474154676463782189695581040111151129013109814223613436485111663574181032947910171165512590138314511547816115175451871910252054521750225702317724791257292646527361283112917530766171257131774791572964657242878910361902193664915490696787081479451094811402952312847315906847148875913810311125112813811413115311635817818811975220312123622823672421325322645278312867294530119817121433159416658691377918108990101171113612411378142061136278134647551416137170179727293465482259065187318206187275351444550017727173414148590658751811932109601110217721167390449655396103874787309661090113201257131401451158616104177031879199320522218122162190287036641115206357961890911151018111772120316746253076130792814691241021211311259135421432151116103017901853919103820312187122322314072417725912698271262813029923014631124326633106347213514236313720611302313914230520163771001832941103111166124213470141411510431616111790188411947201602110722512352243225960265182717628162111274137904905190624710989692210170114712151131707144781579167711772018719151201031218122662324824902586226130272062890296121151244831304104535653171318448959110661111112586158724133147405321651779613726153754341537623674061572525341450531654877781709572104111491125871512791353049056066677786329206106021190125113510142551762234340648541675715837798104111751213113358148154116751775218236198201302182225912354024902511126160615125636647415876454717845692201797253039046553166157400837923610406157252534145053161877652812169611051113112358113002187324743835107761207130148211373904401510576131176885691801015015127913508470251456100790840191327107821145123881709215539041041554063174561708270384641851386677822813099210473114112341341149015212167061730318901926220252125922176231621708231033824658535655471908704192722223904210514716701766823999010167111043121591337144701590161202151279131244222531674871208482914710411113311772120319341305193665733385889661014211110112122131031466153071651175101819619222233791470259206667439818397081084011155124171345714103151161624717522179122163157487540362961672453223410957566087124824791331103131127016128243222490543261417578391990102271131211242903139411754626112722784194771051111216170721443664235591657790847295110121011110112362134761490152301666175118118191392049821195222072339211482139357473542622573701701224263262454759066171448113990101371138414721083664325512654577819894710371113212901312414661551166617941878170121380321249659561037170890914210511131412713723141801521016401172571811019198209182172217717012343222441513766171708989979110981120112901313814791153071630317109018186192532010162113522502310317502983408466530769675118669307101311166123181320417902897357442157736282111217379149857026580779183079961011111487122391962913766421153267297561879466104111951218413131418041590166617591898197820371115029813106466557564776508701965010106116612250138814227159516431711918511966201802115017902573664101534639215121355318447455196577862891981010901157124871312414861514601618017550183211942201120215722662311024227111217379149859766673078379443101251149712626137248338114138522165173182361512500344412456661617938791931102661422140366413558116246742821694731051111166111217379149854836657362870291351071119812154135114661554166217281181431962204621964151425353314552579169777150869691541051116612318132041934270134914170515066907103281137951101159111421214813811434715373169017453181901997611121737914985316106376683339106910553114971259611542923138410855356577668129920410102011121737914985516907766811399010432113161218013541141296159016721770618941191051170722703224791530769687785669710839113321227613661472158101635217082840315544635138610472218369361102111157012706135114706153216281171281707213831064515716706711813999010144113301216113217149015142167174621877519811472713664857545761357478719661085711511218061472753324827566651716081209138102801147127813631451155916321762718106197662031212061472713566412454436327718515989310804114312510137561512791330742965123614171208102966104421154012476131551427315540161098177971830719412098215741972663114349055261197114388779110108721135512124131981490159816671745189481130282033074515472612907758419104101701157129713184141240155101612815882418331447655356927958559651013111463121311366144315206163021572443322845156661377160811791661038111542923153049053206131765870593621074611343124981321814591513316511751018531196820472113922110231272456254622656275412819529723011031503232033314170124913118496551611872378259917110150114212921131581149015156161061795018661924220712122722952390245525120266727442890291830120316732573366342103515017012285366490515161717428267973110880111004129013272141061566161301756181501911032033117072331370149815906191717182369901017611950126613242147115227164717661867319278111217379149857026580795899099341066117311219013574110326633074375535689771113827893061051116612110133841372483381148105906260721282279142101661112012102136614721543162061767170726737544015187613773181033990108711901214213671420415901615117101118572191602011021187221372361242222515026612721128412931306563161326823366347235318362041701214633584797590618371040812009521010911961246613110146615131166617941878142261037014506579163077137810689651025911819127731334917502433544485557666710089739146127231340647975906177730784149661014261166128051351146615116163181720417502533664705306125171658167911010146114181212271341142381557166617180181501272313406479759061777729841492471023211805121358133114406155616781710311512500344412456667917307812593110162179124803135454051016612479085092451051113112566112221175390424155846477908755917510986148211313904146566668337868110977105111661231132014752137213037914307516969673181461882753414980590611179682129671106631171280136614146158671690171051831196412066211952247236372490253202690271022866299630101314973231331426157268319041425366462711086695610111121112181157223135147105131690766811974110351134712235111726231834365631641790810329124104111511126213183141061566161111710718561994207811121739349056669674938909227111217393410085227611075628519801015011626123491310491451115571680171501856191049201122190227912330724982514626312725118227603664180514665171508951913110801115012561329814104915511165717801815019111201049211712275323662472251102638414127139245158663572718418911601090111032126701310701496157216224178371872199420781672423390466516261907131817419773101020113728131530470522651476685196610128611258111217393413051206907858909302105111150126613901419815811164761781118811913012015021129622902372241286252581572231310814184565866679081329191101351172121501378151279139842225266125724289091021066117971214133531467159171658178721879719982076212262241239024902549226902732028418292263057318673290339534250353713632371103814639122401134165142724343445964530217972307391745858726327591847095351090111032121511323217972983222426590610276687979141035311671245132231410915751613251731318270179729839047652226267170814791501049112811291713471487415901642317661851196620522132022150121829036643075416791752089096511165290310324278550661547111812109130106611571266136571439217582903664307541614275684292541051116612222139014651153071613117842189119810209021572288623228241112512102613027662850829791303073177532811322791352049056516540770831693211076111123121701314145281586161241741184891951206621202263117822741353742795618665175188504913571035611188127513501433415131164101715518157194142064217172214723512466251286262581572133904651568562897418818099110661154012103813136147501598161461731182061110286368047951246667130830193210791115201212413138142801512116609179018698197520512166222023631111025731122417053163197150832937107451111261214013419141831577216297190824143664591517161817120810799610711141127813206131236839041365326377745873945106011131241031554157541466477988909951025611443121761320615725773147490576612471428909124106181156123311396143115102167517175185211322987314745775147658780783279511082113712245131402141461510916511713111851195102019615822827366487566864167155839693001014611196172321910318344245666110790832197210150117814125103514102757761507668791920101501176121717139014601566163717301183719227205421722281223432459614127136804515327610876683709110102361133312671341914187159616282174518691192232031084665906917688939832101481115712417136414761591016321766182201967205121932290235401544217634343225138628071108919681093118321219139014102156616311753218124196620722131222923177241062179129832224265906102766812592421010111121212124136614731545161851557224732554955106364607758969170101901695296384515666129720481020111217379149853162107774872495810511147812331131101413315961649117150181471945201058113025137147051266724784810469841012331161512135613911417715146216111710118901966203072119229023107247792541826421276628248297230313129321773333211342400366490510667357628118970110536111180121501314501418015321161307171701810321943206102154022486233061540288366454551106301711682279941064117012612137781479115307167561721183921540241836649057667507110890932110721112861225811121737914985926647711381119319101381128012761315614706155716112017115182261911302066219022915235124311255126662715028781538279133141625686377898832937103141141122481366143071537161301764181391990207912141422454234182496255626120271428512913471537256328745356665377382814995310661175012181131401488215136167911730718901913220576216622612317211708225733094207590660766815595310290114712248133214123153716201731183619322011211262211123586128025131164256566614072986693210511145012261134214225153881112741329143015526707139811509110109511551242132251464711121737914985516731790824392951014711781214213751416615120161021766187971914320738219222237233022490251022666276272877529811562683116490525169875168895610112111162127061341145171528116893174118510195331512793542412456665527570850699010423116612561373014539151038169617278182481975020952118122111231377241452525126544276512810629613065731106321543351346635110366311922161327490533168407787919307101091111212325131121473157916411724818661913520412124822662367247525762618727722831292930177313921112173791498541690770281409901033811901210213661410721541161032171451185719962090218372212123511245525962690278372832291701322737384247745826512714781270937101411113211272131101450153201631413227513184434556667017809879193071056111611127011346149015123216701171461813619312046521512266231612416825662654527115282629653070316123210933953479135307362113710138663915401424172429443781338276236384265140625779081029661079011810129013511451015596136271310714313534761967529810694761015511436122501368143615591168841717018121192362072211502296238091151266314047051151675741884729501079111201125461381413121241379141625686937832851930101251124212721315014633192212413791431516266879388329101010183111251290132571467414222133840411253567971068225966106691163612146131821411015266136281031504415786327634892097211011281156612156132271475157216150171064113421410356649051326145750827894181014111391211111324114661551162821141290314647615406377940832990105661117612571398141021539415125123123451155765127147815391041013521129212901313214459155116344113028031634325416422766881911101281111612661357614223113023537484535326237219811497421062115112172136614775159016129177187819779205221170227881130223838647522668075428150911110510111471230114722053514532513566767328969307106811309123713467141571532165117121183719296203221512228211112495312343758769272248669857108119012551396145181523616511735711902683964180547645715081519146104461362733744751642677675873946105111117114129031074905626613178789691007105711701296139614702154516735142296310074415447666730781449121106611537126613901491515307165217411866191259192262634514218523861167198818399610334111338129613102146615591613317109518901966207221150227811412791377249352086117751813097511081011901210613681411215256162591782018981915020797217722229623662475257732681118426839041106572630771098519102110511178121961712157356490527666730781319351025111981263613961475015648161051191823583514487515562717507843990101831113012490135114661584316411713641962536322649257161456715881309691042311307125101393813121777310447405766162751820091201010511150128221310514981578163431358270939174905872630773438127912010427119741270131171466152451651173621845193281802663362470953386251798869599610151111512201136614811577316190181129031924785305615071118727979104911105812778131491147931561169711779118901919220778211846227612314082467254192618727902896298433073314532948171245635347915906177714686498110556111521225913108141041598416846173351849619121207121662210552310624782523626103612292574391745858726307742981279120103411122212157134781464151611666173071867193632066215122662394247818026632274574545466137908814928810695119612177132614901545416124171063189019662022321750221123124241051111217393413533263687193781559991098117812371118426834141385140613879583319313107611177125813431470159816471719718321951201097216622307239024915251312642527302881129753057314533282733663477435823690379638843394740754190421032439044464537463501141290380466590645379089159324102121190122201151244739049155639677449851911661298223239041835416567201843971810661141129113491478157881712157351466515063057111857966101411110491791214332164905227690762687979311073113212571310061413515860166617135188119773208111741275374315214067575182140975101921124512160131290146615751675017981830719682030721722231232924177253321288283732614711529666672388519301012511242129013102146615144163117737189019239201302125122982330524209253626782725119552171375473152164377881481131229336644151056135713188869921010801112101212013814861593816120178118111191450202132137222452326224110258021372520311041351356441788379540101101130712961330714681530716454175118297137249531234935926224766851982710811901296135181423615511635717082488327145159866872681109301101232114312761313514144159511612017110182661100725339341105748687711081839125103111251110023273797498511562071258242973107511124212731345142451752663754454561369078148288969510961175012124131051120210973904305579667571808791972910661130712172137911430715135167731781110021103992437511061081737811097911031117312411329614211157021615517651830719412011021249229023102247225128626258137211037914702541642775538530931108114112139131151444315182161290179018145196620322124224123296192213331104791512976517107281007953109311110127481387146615110161831712518311920611436210137024713586613073181777980101461190121041310414661590168641728618661920020307215402266023412414125104326352272122843295103059612442683904702562368671507816591158101651196122631399149815211643177818148118429031437416551316140771658131966103111102012120131771433213052305330142385214632715782294110881166121101330114721515016781962305390417105416240712818708962102521115512220131071472151801615019623053904106568693783281716941102401170312124136614533153271632175718307197520749216622902365324512566261286272581256212439043405379679775248122910101066111651210131312514811575164541761318814192882069521962282375024124251051113621043904305532769673681409251101101126212311358514108152351692717700185401927020412177322102018632758380546465141613078078819140106611511241813155145115661612861725811300290312341995659648878812691551051115411213013751472151801615017121573514665116142744481209821013171162612571366141115440162891136214833604665200630772298726941101411110431235213212144315510165961863229932714665426827748841891551072111501278179721708310841202530767977628227930310120112111266133071490151321621417511825619322015921722231923962480913125403954851376121711085479901037115612109135114546159516951723418761951206312172222023345117121213118411055166907668106398101041119012121131181411015381162831720618337197209021251229823722431252926177271062131248315847415596217790818393210511157912183137214150157815126639114905227623671298539751089115971290131021466156761660217811811519109209021643221312338824962597268627902866291050301443174132523337347563511361243710511500216431404166537861557328842991491012011341121082135214661550816227141271312247975986517175786809421078114712312139014761541164621775189619102209214727131742425954863271208125986101711151124621335145615801665176031895195120259214322881472713664870514767677018559418107211751241135661451156616521732018150151266335490553961038738846694710901190126013661490154616371735011342403366411059363467379879194841090111361236613901476154116251710271813819390201352154022403231552456254726296272581116210673791471754186702713018155910321043116101213071315514236159631651173118741990206621322246235402440325155264552751286629113044031289111217379149855086667898110928614127136641405966897908305951101127111201229613661437151219162381712018195197502098213122157239412437251422637277752890291023066313732853366341920353323637371473890398040914132424224375447451404612947514866493150890512045224913722963235413055376237737824592210321142212751310514661511916411778182061472713223437751066147733089095010385111351210513632149015951610031719118702192802086211752297411121737914985538679171568909332106011150121935131541451156616110176311708241348842715215690714687194171071011103121221379114981553716103175118102814827913904183510406537726484193081045411511235713822663964596590650711182459710700115401231134741437154516986170824134884271511506917741887293510271119012131354014428153701666171831898191462031212511134274329649052516947115841956010308111701222913296142581131244332104805666317368329111011511856121713202146011510511231245034124454510917221713764515766417233813595110951111421250813791149815511675171441819419124202472113122388235124706252992610215122623664741573065397103889094651052115401247713110146011521616272174118901946020322190227623756247902566262622716828112291376146237331244805666109756817976110540119912601379114981515316561172021879719307207521503229023982477925812643277828366111274131034431582163777257831591281057711781220113108144115730166617750183219141202102144322176232061512903111241015293647773086699010539111038124421317614566151279133142695192610137578969114108117971245131201446315116716729332824435786148151279139841535561674724781499613109011853122881390144541520111262963141410658696967131880791261051118312651320214232142211336641715531661078438940986107911103012791133114269151921690171115181811708210031934103151266907781769710152111511245113125141005152401671177018135194120100021105227702367245002541267827206114021073387490519267179778465933510496114712781314314770157016177173741540221437214905103269071218123091101059617082840315544635463613177918319269101921141112353131210147061571641171301841198620402151224223902454125200265127473283229413034314132613368234513557036212377733856391020113023633114665416841717083792661071118412932131501431115901613717112186561170297131304691511066677238797221041911561231131281437011482903604665416317105583792551020811521250813124146615130165191766184319312015021902253923372490251032261262751728111295861472713142432546624711988739951056211901222213940141071513116951711761208267388411551669072078210992101043116512163813611417015901616811708285231424253590676710118545970210751126012901346314130156616331172611851193412048821412271611127413340490523362477418870295101090111611226913471422015261630117818420192182024121652280239024502511126963279628282947308131663282033353495359036515379038710392064090416121151210037024455106869071032812129139101111171214213921410721511016251175111855199620540219222373232522443255102659619225703554965716144790814291120107114531210321381146115142161991741818702191701201032218932247423956244225962636127116284082929230713173225733240341133571367037145038134397704025041443421764376617229034142055162635790832194110300116501820212631594335376315765870093710735116712102138914451596166911797289351242158565787756873594110751190126613901420115112161711176518180199020101211011226723102242822545269627691162260331244540518668207528817194911059311178121071313714572154116510176318532119026833204113512865177181209537101201110624383504190541657172178419661012211139128361316514411578167461130290337749051426103879181009201103311196128131349149015481168191748118901949209621216222722334224662521026112279561870266326241395822676713983298921014111826177025083490422251106791724789693110162113023539045915906177761854099910130116612171376114540159916141175621130235390459159062974181399130106611291216813171142915411613917109185119482209121312229233224512529261212790281102952414724823766432595165179818319107010901113912321135114661515016431724614727137064382551670079086096610106116041274113621429156161645417311821219952090212022223214122023687413054886273757588899010980119012601366145115510162551322729343470544614777784569452107701172212791139014177151231161101771181781910621141290310647514169073181069710228111411227715727483210440515069672008491927810811114112581322214811559611412903636461553265707161842978103111266114129031160461553264197151842978103111358151266331498051426321710681429236101036162256337147055496327136890928710817111071210413860147911572916143176618471978205091482330387247415169677616817293581054011661231913110144115246186246329647825146341791081079202105111311210361208245037064111551651072551130231391423051001637720183294110311116612801346143415702161417791811119132720136213722670113026523514462577864147782579742105731195123701541270234141765531677828110951010711101915402140382049775813677376658359466103211431251013538161421093114130511621875681389471049111182142251380419051370641790810329915107112741213113711420815804169161710718202195120312110361322513654415906539710388329511080116612108131061476615311620611123834664525729111217314241045474610217908262939710711190123311325142591525611302912366466158326415711881098110179113026523414885666907908307962310951125012761313014661575116901741181101966201136147295037914746511066677538569187105111661273613910141101514216106177661831195861472476390435154768367958909351103711596129013140143215711617017316187011913462095214722892312024222259026671279052890291032303731903214233373412913590367503737382233932409041423421021322513584665316686715583794510131179129838445661752543390455596696783783194461052111661275013111412415105113729531814515113665712481192111018113225136549059065397968909103210471148212791131401490156016661753118511953820322198122572345243225956111274131034905101656779582939333105111901275013442141761523611382170136644151266117109183594110901153912471390141032155116184179018150197082059321110226623412431255961130251379147465110666775383191841511290396454059263587540890598041034911431278133661437215535346457016131718181191461051117112222131701419115134616414176618190196620856212012230123597245402531268027301281702910453054031908324133373416061131288631214551590620475182149321011011661264713511477159016261181321993964115590616172058721913581079111729124651312311411015711617817108115402623390481529164171918145949610121117812143134314729157169017132187701913120110211382260515402623390412151166268741840699110465117701284131471434311512593139490517561387518706929810102113121163593416857167472698706937101281135611382465399141115646115765848299110274119012103213471410815911619811372406347745252696150115121433044131575611671388419491102261151213831314116541645377829995110661111612511366143115138161401727511242663139449854262257370112129131464325915690715181109686109011406121311351145851557164061713118901910322062211202247111372116311414655165107531868919510463115112510132301218211036645075253631755485359206101062111026703904177539218224131164622551640972378332941910117114781213713164141571550816227113721163253471581164067828729851090115512961325314877151201612217253181101911020123213152211023183241112511326418272172880429112113121043416454156926377923810297911031112061742643312424155986406774810139871041811702122301313311413115491165617311836193220741214912272358243122558269027261182211035704132547669072751167213337845065120673071685797311090111421212013463141197114026036243125496194740989094531012111111812418135914171155116222179201810719562018721131227823952411761131247039043205816139761817297911037611454129013152141341534161391790182221911120526219022771137252639047915729641476685569901095215127913508415554906222731816214224593504165418621778048112114724713315449152866108732814691261071119812451131651477315648169017551896196122041216814223113222412159069071032895912410532116251214213418149315196147271322045154966327753866911910294111101279113311426611302115837424905539610387478146094431098711120121461331141621115216163324570552679176378909177101301116381261131701490151681154021133341479759867707109816191031022711302113174142551651079083209901074111111277137911453215901660176618106197720662174122557236472451257726902722715721413344124514963775268909651137247439046056664173182309371010301113112580131511470215901610621572190366410025111640173583291110571123412812131111420515945161121771890193212090218222172313172428911302113174142510467471398909262101701142012172134291422515961683017172188401911620472152221702368147924133446152996418778866917108101116012312423346944175540660079088497810812132248333246651116907958960951815721748326245405415646758085129119104111341215013422145015710169101791518571944320141216822217023773245625232141266337341751106507320831413229636164345511876957328689182610558111501241133261447152161656171501811031933114729031249051032632711086693131015611806125921350149015423161021172741373045395103869074658529771057511110128213138147115119161411796185301911120674219022762347724226257912630727512870629323026831102196285231654804541646712982269411085113212561346614100154171616517115184719412078217225481962852319349152536540718489595610116113061962857317147651011650572268707951210130115612318138861322791329941535561667775813259210102321230262138724415346617917879314105111153126713881411515771671714181151990209221451229602372241102550263202766141220236874130548865727266857591131108811901298013901460156616511751018255115124923904228592688714286695710311136123213111411515491162261902713224455596647971368869187109611511296133114728167279131004755906837732828292510411121712961348144115781620611712713110467590620774578310995109611137124231311614831525916671716218719962031021722902350243622512526111274202890292553095315632139339034222351063672137142383139162196297131304691511066677238679113610110112471215213342145215791167291711018247193220155216622110231062179121603120410256661080780851983910451135716727039341805906103274787197510901160126613901458159611675178041841197820615212012247237824358167279138674236583661657418789746131224339649058376457948151279139841535561610167418247967101021189124513961469115702481317241685339621773585379571101121113761140234236544151516617908960910215123134834325666617682817097731056118112112102379143075906151741827193210503116211247132711449315321679117451898319172024221472226023902416125902691027322810602978311312113146465255164707110867990102121146812253139014129156001617017200184971936202821172146331415251156727518214932101101166124713521421615791169817961817719247201162126222147234941172146390441059066675186589112101376137213739041345668666737814191043103711137126113901437151371682017621181911980204712166228112366241412543269027236286129702301203110621138211364410454896120178985329431052511511247013901428611312923481475666517311847949110182137227031584515605651714989095110711166122241351141086151116262175218729141220236874130551610967190825595810222118112699131241364456580610679081669321090111041291131111487215431678172461217216131844815376107279087919977109611139612262161397424051156717908151986710951113112511312671491151321691017150186119131612262596390442657736632754811597731019014182702314429252876687718187999610901150127613611146215321690171621811519167209621912247239124115253226170113722303964102566625073138519212101316112581212613347490549687771864958107711901214713111462152231616117371847019110203921131277341435527069078281319311020111871290132411466153216901724818451910820802115122902314311146211310014113571617711182119181610821191612272138731411015541614617771820619106217126432074211520265176389094610571110012139134571469151601131211364456510069075685691401012101112912111135411441151001650177181401961209912151224762390241301131220236147775226517112841910010401171214013381416801540167141771189019952114021136441751336917629813091161081111301213013871466515540161551791187731981145029036441043580661741847095461045111371216613901413215706163731751182091966014727536474165131611714688496610411190129013361412151551164911732187761112146331415251156205751821493210110117411234913112146561172146317484262554064157468300914210170114461287131111441155661637178431834311382113154415464669747810896331048711120121561347141081550161981512186332469258726487778813196110310116612323136114222158116976190265318041245540631716061612856311046652126268741890912103211111213011355914511521216110173001865011312443318441493541669177810191186102121114712127013371414611532116511721218110195020320219981772143292411451667977988115925510911116512901377314194014562753224414524761737295848692411050112061213414862903710496515566271878329511076113071224713321477151051614617151472550364741305131611714688496610411190129013361412151511164121790181032198372096211832225402341524462551262122731228551138211312941045470614172508132970610508115112126134114861561161081712018320198120531214622252113121131464652551647071108679901021211468129513253141701541016901766185119575201212153722121023127011721463710415656669071689929451109011100112661337145121578161451177731831214622211391749052656103675287509801012101176811512143292411451306797798811592551091119612617137661451152221611171471812511307279139774144518869072608604171270310674965326517550830792471032117712580114024143341425955456138713281319131101211153212511314141051576811512211370431552064673158769135106951113812311310801452153421641171461845165321563130846395172696721781709188153121134564365586867712811299111051117061235013851138253639042415666648766863491701036114431256136214571151270731204259530764257543899990101461145151225931184135102111225931071412057066567104814924110222111021245613773141210152541772414334144658064779078479971101371170612561317212521513341446596613277882069512101311111121461352144631555162151790185881966203721106322902390024101251502623327514113821343540441581690747389091081077115701241132641131236351440562611177817941102701131811382113454525290622278081379611034111581218113901410115371692017150181319322066221562214823412413925512616527131281012913130314115121432924154511761777307811692171090111031290011512124322244751569071062888147210436474383513161171468849661041119012901336141215153716647171321814519612026221812226723682241702577326562767117214639441325145620273781069914210367113712977139014103215244151226638104905516510719684795210170111000113821133824542566165176708419861061117125113230149015129164117361187119481201192154511312113146465255164707110867990102121137312951330814119154716215175118772194120412111722125235124215253226161274128940294730606313232683311534856355236631172146331436355116517172857094110941114612641371414615151671714618129194720146214522150238811754226235404415546651721282589201138211338244152356731781853695810301111411296113731423415344164717451181611996113121131464225578617079086692158102771111161251132121443155961667117214631484110557166171418146959610901142612773136321496151116723177161861191702031217721432924114538367977988115925510911117071279113977141441518816901726018604171270310674965326777134861947610550114023423116446551566102141240639145605241640674782419406105161154215135641875336628277882419287148629037104155562618777283159361175029036443415245613079681519118147210663106497752366121714518165948110441111401290136014661590163201771181419241202222147226323121024814177621301322247025130163417218976951101306118112318151290375044651206681777388379750105611159123513142147561556163551472861332464512415624113314490519063277588215941010150112227913407417052826757968297942116952963414445553961038732841931110222115112222131811471152241482791314141705896695796841944510539111038123213411431115222169017121018144911112420390425558168675284191421032116112861355149015132165817207181971912102028611402462311644545119169577389595621090112221294013107141021512016320179518252157251371423152226187756843920610812168126136414965403613073781416956104311596123021372677341479159776640728284799010901160126613901458155401631177961147215732994287512469071018519550107671151212750139301410411299213136643158906204724911472713904387590619274381179121101201117612901310321432151711613017115181351947920791219772241236882495258426343147271322249553416972748822414223113222413351426467248379104101210132290324842225786677578468959222101521198129013891414815174157224031304905646321741895297101111140129013710141391510271693617256113628203314162514861107571852919711564252316461712101235394103855262837272855916210462111151247132221411131511116596123124503412445451331522144335242835190665611082240313041195311643776861970610382115712470139014137151201612021701213131564485116403761861191310570114912437133771465615401612811312113624315680623771108102791311050113512511340114222158016102177624453222417659064477555845695651013011116123113188146115447161101739189019132202592117622512322224150257811342713904156510186412722117012138318646185116417648919114101671151125513120148611510215382156374229510026640790814973104891190128113147141891131214131354315937615671488909141310361155412872133071451155101624111382113554415506317492811091561058113512235129621613100546805118658735810751131261316545151114677688851966107431149712125131167113829035647435114616775287029947115127143741275516124790814139361082114612587132881470615511631176361272493381488113821135545257586612767781569124105621113612743134714451151381681174218711925512721103245446572261317328496990102511124212372138314721565216110174118626142022763378425651256457131811951210706111071122781387814721515016431720615172592366242505129684795890910811372741390749053306677727185529140105111261127131755144115776161111718618901910322023121902244723555247225103326110272462810629721301423131322061772103233104467569614777768709249162224413114905418612071958153694310537114151250131311481115661656172121811919557205621312212823105811402445374515866775182119258102071177012450131251410715436165617901812819851157023635104245590620671288809441036115311241132114901520616581777183219512012321722773238111312153671412052006315731089094210511171122451310414901513216674171718901981415727132454104590620671202817990102861151221132454104590620671318569901010411511210413102011562107131204706517576802771847099010711113721213904140564261257611848791201019511104121386131114521528716901786118102115125703317469159668817858461980710501124121451314114537158041616517151182661927820235218022186233092465254126706275032851297063032319032270153128803741458059561407616812091951074111961270131901441152461620317123189019138211312202314441154168172008469381077011130128913931496157716901713015472353207445051256897568119211101811540273754905766417208844392081041811681640211531444541513165976182629361108411113712832136114262157916186172711861019451202502195221132345424522527126902724911312313482412057636327514845491321051114821279113811420015212166117102018751914620312116222682351248392545263571879275324425951766194741871981105111570126813901432015750169017910186619161201162114222106237212414225312658611121113144420758766810741866950103371412532390465532611275628491976104111881266138149015150165117991832196520241213222483233224172575026952718128106297213014231313220611121113144442574626072078841948108321121212531132501490152661691017272187411995201401113727703950456554613679818124922210197114011292013207146121590161441787218170113721213614211513267037151811691321015411138125431316001480715474161117171810219547209021227225123510242772572811382230238044751086449711182031137274135441365231676746852912310454114271156217323545325906132770381519116101321115412138135431416001580716474171401827419412014221175222061131273331324170586121754289919901014711321217113811450715402421390476575061327309811194110584118512321317114811560415402421390476575061117958151191421010111426113721213477475151619732781319274104111222121771341143315152164721722918801951202122191221501131241368147015661615671208195918010309116512411319114115159016761753118642191252082211962213923522461625120261952762281202928617502180361470565661045757866931102911341275214722133200451522162777109832941102481121212511321214128615258113721213477475118662307151895913110711187129513120141011131216431104668510326617998815017762111318649051032641979685189321101521170112901336114371593016204172491240283738104820598684756612026123156472151156475751835936617726036341315477660379089097310321165612611397149115581681017218113127038674751116607908134937107581138232131254955862671137257631114131859062847175842297021019011411281131751433911512280341458513861175581609911091113711216113653145001558163517107511312353151411553266175518110961610901113212146138101499015171624917340177249535564205131866047868138911105511411210621371014132415604169217306188719104420653217222602328224750256026280113128032964170541868627647890966109411171232135114281562161511741218691191312066211102241231862466113721136243151041690758199648109011121282513471410611518016901766189019320205121992232236524115258562612127576285831772641390451852866547418719107010165119012661390143201532161717901819019188209072162227362314024712519626106277212814229313020617726413110415651764676078131961105211627121111387214431578162061151260363410352076907238861695401075111796124171331114111154471138214631554742564011382234316741215126614778789282105811712127113824663134458054166472248909103210471171124211138212132245155106783113822239041359062437918229770107011106218725343132487561665407127089098710616117701275131861441157116134117607189019642012121322251233212466254002660827902836129192305031710321403315011382513370418453606601735890913210347111561290131951476152216751713118491195002011221722214123432462611382113174125551635748911923310138011641211613521427115901624911312811366451513516327908649562101291152127021310571151253939547275646131727787195471051116412104131301141701564716901766189619132204121729229023156241602521126103227418287612940301331732783366344035173681037160128124137342235116557518739360104711360123213431419115471671171072181049198234634414715966317744181849961058112811131232349649052516242737288391401066115112481134714124155616111718118109145221653137411515161107156812199136109011961291139701138246638814132051566418747681009971047611901214711312923327451258164176681479901066114112311359611126237154615590615676228379478109011214126613561431158116901721418661932201772138811512641311541385116177125815199310103111701288013561416715811691176001816119512066213022725113123535804415620615876228701949110951138272348141565131652715687129611101041190126613161145615901651017308181311966203121890222042324911382466313447215666161757871971011312313111241705876129076689091710249113401715225237064222511061471384119303104731198121741772600331141315546617388218915610671151125901138246637141205881618511512513144543513761107198685930310131117112131139014611514116901766184119312059611382113554174158168097528719680113121463174149052126567118131792891151264131104156517646724813796421033011511231113661415113562243110460158136357688137911104031170612447132271490151321610417109182121910920110211192212237012486425902614427202862299030433190327633513410573540136723768381017395140212411294271433214456451146181471091202210438714905121660679084479555102901153912103813451145615901696178431854619171202052122217502903644104357966174784709891070111121122861351143261472721314244256986198147253631154905204651711832992010261187290316490553961038730681169511012611116614721063766468532651761611792513856413165906773766879856101671114071251133114636113027103112481541666711083079521096115331212713661447155216901765114723423904152532623577488699010361134112151132871490151032161247171101871191782079121902217723241248372581026820275082811229656141827023532432159636967104872995910391111431290133611437152141611417120181771937411342713904325527767776784197110523117001210613604147411562162917616185019320202521259221762316212712450341244545747688761890922210139111061272113142143115162166274133504539512126114766285409477101101160112866134311437715501622317641815019216202722121022443231902414325262266121172741344410325109696727782649961050111172121031396147615611161320171011828719512090217502244223176247661962103231794105154606907124828396961019711121612197131801453151916966178781811019872209021822251239024750254422617627266157247531554181570367176048539120107301121126713791143071524916731710931890192672073211022228223452496256911655211831324154511061030790817791002105711222127361313251417115110161015175718222193482020411522791330746758861157168909207109211451129901386141461510166215034144785506561747822109281104711416125613320141291534711412104333524263557217721503904261516769672088799610111111801210313269142891352613390462529696771581059990102411166125113661431151220164117148184181912272041212382270823206246625148267727111282442935304731753290336534903537111274132804333568761267376810296621862305359414359061095730682989192108119012321135114104159016661717183181911013528531394797514069076583195411075113221232139214115154116821710721886194720112110402247238524392253226902786117127739049055396103878682329101210104311159113029032024539510386130766813092222109011651258133114156152661620117371810011913020352148622152233392441253526876271402282932941301103165325313373734755357883676137155381303966407314150423204317445045337188290314245155716267312855991311014112141287131761411515901628217141418531972051121132257523770241012256626139277928122294430797319432483341342103514236650379038103239770401012416642603182024743277415957976707492835936105111751241139014103215124165811711518522197206721752276231022499259826782781117121503924885616907222813991101011111211292131330144315671791215238146653761016768217972186341424156667751813699721024711753127613102179722993141441452476155715782449811040311261121721328614156151161667177518182192361454212437064965128690759869913621014311700121551390145015511312170343473252406182723617972101637946659067676568251941102411166127135114136152161690171032186719752018621812276232361662813338412053216320730185799610471155129613901483715321651111522791330746758861157168909207101301151126613840149015321163517461890195417912983515418359226667328922966105091116917912983153456152767571248431770236239044651046103079081389811086611155127411376146115511636617331181301911202122131223623322411251152685627522844314225133524670576677785799710103211712901371448715321665172721812419151208121791229823512436253212666274928142291243037314832791333073454735433621737376387394384031341904225043418444214580466647514866493150720511561140248332924905152656178208307954010174611190127113173117121131514110550619074384829116106511531121301315114411552316431731181501990201032214122110823902416725322667278202830729305301073112032133339634870356636121373538903910175277339045559668097837840194710751190126613901410715702893441480562766137908814928810571155129421345014182157911650817188183921928217972507345443545436887618969501090112801287713130149215641165117771866193720521217224623812452254317762144369428359668737688117934109011171124113501490156616901746183719107114023423291490515261607758199921104711711232613511442115181632177531866198020342142316426634143215918613574184541572413330487257416169778616917210130111064121671310217722173524461510326296790829797210781131122121310314171534016102111022603791490517761457291812491501041114821250131901421615332161201718218236115227913307449053316130711086893201072111281296131291414015454123124233144461512336142790814029411028711753122471341143001512516931662741335441590653974789091032105211421129013773143181791253635549651106837716681209102106611108012801367149015861168614723423904296532614371518102975109201166129013321143515901632117171812519109114023423116446555168047166890914021041112871297113541466155116901775018442198020293215261707213131164181592861657668170970110115119012311340614232157616804177821812419550201812196227902343249025262261020170721151326249059606162796874095110783113481137211635147075491696790810329124101311166121090136217124713534791590619271468649811055611797129013121143115195163217661845919335204962129122702390241382514426522735128432973130731583212033320348135581364637252153123353914665320629075398103891501013201190129013818148821541163417150181381951204912132225022362124670255126551271112871298630613153832152331021531275333545151086327502863091061066111001211013901432115901682174718711981205121521221522332247532566261162766285762922314728133245065110666711086191431042811110124113120814116156616576175831137279133074365599369071052879560109011521121051386142471518516106213262103239041215750612076818191968710901962260935042065134190222239841865906517108168823733541085543264777908509111104711111245213961422215773161940157027913307424951876265711058792491090115612241133114370158116891711018320197502011218922211717126003514665730653971038814195110311117771241713732142114727503110466596122226531244211599268207690852971109011473121151349114114615121169017773186619902032021138223623612466251602677271612813229413034331413281339034148113724013714910527265176681409801013911546121251134714711540161701790181501932205121540229862340241112554226892725128412952309923147324913394234613570036433710173890391324051411062427543773448116412791398415355616454761389098141028811695129613753142471586316961713117126003110410025666571795826952810261112712903133621490151421816257350468575362087101886696031017111175121386157629531117452851117613047908186910321041113612901350119122663791498516969347908559961096118371284613661410621519616661741183211712600341479154365607668301952101911120512240198219237845321116265361487751206107713089179131104001141122821130211737914985167615772538819403102611117212901313214511542116561731188219952037216611662741373045395103869479081429511088411712901311721430815901686617901816119643209021241222482386624902528818662903431437757768667908101929314682903504415542657748185609661031115101251131931410061530117072131325942025104670676789291221068115112126132131202210639114731590614271708532913610100119612221131511412861525812532613531490513206137121087109277101241143212319132531419715157161841710018901914220421218622359239024117225175265861253271354044157406477200847970010110116612901332014901510321637179018142183265374141354061107253821291761051112121221013116120221643190415759661320725385389851253212813404875262656715681021372520366411125111615071058892986110861113901295133251184227033214315614686733485469221957214235644665804622677918977925310852114112341331214551550016528173211877194832064121902213223412490259026441576290317147915977623674688909110102311147121059139014603111022673305413056663057578719305104731195126711112520366475058562957518669941070611592156243631032412105103265457222865950103371616237437664450590620713482903360417165656282160266350419054164827518669340101021706210333171410035761937928119361019119661243136712312450341244545357610212432203791430753667872301945268393349651026226720614721073904315532642742381861412562390446540647713271144211317474158761157951871917913624138624139551647079082861412137313743251416477788702912501522108313849515586357107511402342390415259063807128147246639042965326787785481770216539041385374131216237411051030611571281422539315546590614271017895933911682923680434553261087146837011402154390414252126807127111051290350437052531322903761420155586308710211038210531984965277651079689095010320111091160290396442159665307358370157290332043251756673747814293210306111861348225031454219590614275183739471049111351272015821383784506511467941140219137354150514061917139215722223114563556678715011402781319349052416907498206191278639041325906251717717072131322241665616731750389092411090114912206178224813113649559062247257835912811472137395417013221033134515866110715911312113103441550632747681109159113127037149855326113579082419901049112061131288439641515253157213031864415566951131220231291441556663811312151390412811412563537421711312202343414775148675790810329114810174132297313548511131270633004110565015128731004505155615073289094931090111098157298319541741362137312480556135720824615126313904454514216472133315111842413904345590610307659811094601063313121553964142547645796890516228736145251317628915727833114804511211132120389042591701264131154218513261317528150995113823134394525572610737150113121009311045151606253712289581138257331414111547069072511131296316949052536207732891811312121367141754171138252334244151466343132231345452517461741322647335545751206129411512143314455417113121113146436611382323844435786957706148821413584281134125831814905101647972538379920101501113128541351814702196724637504272551620775282259200120236314041028113125135249005111613441514266337410631138277312541205232113125234634515510624113602963120472551811182621443700123421173177430751556217790810315129037504442566616321343190151290375044652561572713102467510611722213531034114510211402722310242425421151324633158412651170184252439046754196151118262144320011212106131654415786148147278135394103854761087328141957101671144612259132091411415122223114762518111402482313349056326388710511312494316044154165617781991351037114651215513148714821525611362613524991513316121393110473117912110338249301308226631741111278320612452433646410775120665115221813613179121693110466537680172268206114021903714920531464372021150254322247659061591832222341844415201141122413664111597461267517811195861972137324749052466110790832199010821151129581356143115361632175218637173025393103841415511611175861730219339041445782611774081021199273639049659462477102850719629637446856746747724148426923414365706483710488329402102221151122621332614258167721070329546645786746741831959611162663194413351026214742831191001017411127413884905142651790895950310101115031295135661462290374308551067277161896950101172115112901375014461517616766186629031014293543763777136813019248105111901275013442141761526614729013904905103261151793851990107501146121761398611727413860424154886957798220916761095115312554136161416115847169517184518901991520196219761147290310324277551645476282649991019011865154821323454475117127403110431574061127137615724813165466531651075186691316102581722150341471654766061797214039046056663177968321951107961448212103304475636662763819623631948715316162783981839315105111778131224335146651506417326847921610561131122013813170821403754742588626271388281912811252260396456518769672158791994110121211140123213711441152731104226037914905177649176681589901021211880121551327114901523116453178041890195182031216361540256318746725152661754187919510108571113512131137911441415171165117648188719113201102139217912932313749815236621871618419711019011901276134214511566161501743185101959617222123984695596618275568753114628203508474258862627138881198201012611901271013961412315241168371781018196192052063114542124370646135906814728887599610411137712770133014661563117912932313748152026131717086429891043115101259613521216332451585661377784219241102221177012180137911490151771647171015186619106207821236221036121924813414147511564774187897105481137279135284365311666741812799010651190123201310814371561163717299189019652090213202277023180247912590261772711528110293213032311064321331140262339045054662977518849661046911144712215139014191566161411790185081911520897213572290231032241238251102671271782885315126983110455513166673182999010840114712751390144011214268312414753165827668909456104211811211513109141061572116142173118206110227537414117659561867791830799610781178319221873350470252616517186835970101661797221639046659067674189779193109011961212313240148371522316361778182061791229931164247552214723423904152532623577488691791036119511251135101431155961496224631454615951649271718419871086111811276611722791326745125516750766847910321071146612804139014518153116636172135639045775121645718217213563110410865131626273268258177221734144157306667908320950110966111201214113418146815651651178611712773414905539647790810329901012111431251133114748174722473904231525264173121137266331421075966611792811936101911102123441412413904539510386417958100912911066119561472623904165517066675408702916010103111126126601540270234004103151806702739081509249105861347243350749975226659611752713314206515368174038466957110111115101211361175265348441265816417771170825023584594593061971118179970162729031774905766417502879136101101161124113791490156341632177118411913418202313162483955706107771860191421017111251210914221317366414251017641762081169901012111061286113411434151501678217141879193120132721136223723670117526534142915576658677538519751015911311224313511475152821610217385146621343342441581690715281479751040111187129113911487158116773178114721393130445453264927758741911181095112512259131761416217228839041425516100778103297610452115112901375014461517616236157290390419353076280781890972109011621278013501483157221610721762319621141372141615215669572818314911910511190127501346141761526613122223414119551617117908679419109611534128713636154026039045051172620179282229761108131190127313503141150159316951739118171195120902175022462317624766172279035404557515669072148419931103411160123113150147615140163211751186619150203141722910393241105872690733881219791109171121712352131101441154901614717125189519772024821662281172210339049052516197109890990107811112121031337314901545316156171621856819662045213661148290360466541631710087593081090115391210381332114371561511112140936546035516667150849793110596110022663571477513763173148110932010961136312911330814119159116240179518261192152035215322283236524322576626312720611008266357142935596637318314911010320111712501311014821510216291731184111981220352148622112396242512513726172711028300296501712101235394103854762417167832998103231171211133031451156616110175018320193141722864390467550763175968321910910901120112331131371419015976171221734142505130169079814294110185113212661351149015750164421717618162172210339049054786131710989099010431119312419131602145615108016621760218961918420222215842210032351824412568172210339048157306962710989099010671112312109139014303155701623917309185701912320770214502256523170241902558611312443317241305106461331416256036645405342677273881622622390450546632075408319766108201130712371345149981708221137914977580461117770816593710451112161708221137914528557661387253852957810791117112130139014801521816861716718111198091144241366476651616836716584197810746179123073107412051026667107877491861080411431278132101622622390450546632071558909236107011221232013110145215144161301745418464198020320212522259235182429015126632514137515764287710834398110120114301234713104914104015190161376110028136647025520637713578133976104461111012543136614170151411651176618150194120636137248334614135051043690776811195731021561116212635131221451154761646171518213199020462192221082366247251582690275628187294130510319532156614223113664193546624710688409901032111351290133211457715111165101759613722107316246355122651771448769914101219111071243135381412015102166617961877319102013721307381466559161717928124966101111810129013511451015596141218431444475124666710381569791102991124912121134114781520619021403130490592067756181791361024311241226132011424915121164117781820617822701338241311568690740182841562100335415051106791798811692471052219221553110479155076797745879616170828731641115166727141843997101381192124511372014321576616311720611302923214419559062227141894297911098112512518132901140219039642025926155750281419741101081146121241371214141152821610215127913314162541466673187496610811177312811922700375347915316162741486697310451181019023003684905766107732890922610143111491213513106149015508163331729518235191802209021662281237732410201750298347845559661107837857966103111291217713392167279138146651106183722183459731045111198131224339649058376457948154025132224820521669077684195371054011201230513511422215901682171316182581562811350419054386120719685029501019011411254013511431151036110082663571431554716967154842793131012051190125013111147801516316661788818661993201102172322432378242761140259329641355813614267804851910271137281336746657062275348560966105111510121713532192224831704486581684789884793610124011661271317014101015121016100317371875191312066211286222581372543371457056016753770686997121024911111712110136614753155116791177461811019662075321312218415112170381477358111162791317429954163317130890913210471110661210613781423615103615402513222482051476107746854094101090117612750131421451152221690178218131619258151225937144655526657149876930109011651152221963412421541630076501473290396412356269078378120922015402763614515473675725981499471071119012651192210334934110579161118795857922210108111071256131871413115781695171176175241310242225106610587154889944310151111912511322214111514116921783018120191072017211412254215726133260457254166187789697321041118101241312992473312432568637746581559371042011901291013811432615126631104791550867977458214112127413271483571690713882809411013811232127411327414491529516901746318561911202112133314682116345441655196927312832921071090117012671915290312941105646567718779527196724136243125906454762489091032107001158612107132331782214380484562361707788819471063113181215113661142461577168117227154022593904256515561667808118922010721113411512559355942815576502711687829141080118371212313801468715138166117645183719245206552141221072310131140226235143185576514712581609981042111309151270633824295470615714785189227107911120612561135114751520516233157279133141625839652677587749821902193353349058436777193811011602101329344715185616710181609161028711337121839139111490152621658317781820119108205621320222562361115621623134422559062257859835956101871142412146135971302244331104212587613078119024203172442952256967830817298401011611371260713219142131581116471771188721941820622212971708225635141055315629277368327996101881111612167133811465516621073904387590676764811692241076011821281313303190271322441405154635796841936110120112641254013154143515981613717827182591962206383741465366146717813691471071111851256715129435245859069072228479711090112221211551115121103961491751106872787282239608102291113211312503311046653768017654882791377191622223324483532617714081219421010921114412253135914715971611117530187619812037217012213623762413725271114872763624761590628471368202929510611127312130112622141343490525665174838189913610711113012128714072701334341135217659713383791302101313151210333784658541167774018237930714821520316541414525369072228615921010751113712317137250333441111541624073784779501010211654121171331515122223814338512063217320856971108411813123031372937310249155172610874028789511057511711262013233137270938945657163947778103137293732214441524866673281419961053011101712184131541481151511611117350189019561205621712238713727093714491532644371581199418101042113101210013112145115110167117147110029137024490570626376818750981010125114481372580341410055067714085192011032911128125013671471151251614713727403904103252496717808130091032108611143212671346150275037148551246222727217502813254615222690710483795031011011661237138011462015901698171171825913132262314541707590613775538111962210137111021114024213904706538269677478769321033711302363714115541661720287029144010411171012601131031126251731114202510762331470235353941635103869671458579901032011321280135914106153116641175251856197120892112871708270133824154582668779183191621083911151270711602110318347655162067968797930710708111320122221390143821523164317110182531933711082141343463657670176368619707104511691270113146141058155116928173218234193151115121103100945056036917711186159103114427033714101256886537704873192211302833217475271727313814232590636073428909145101301174112349133714245152056166117321182081945020112113022140235124862531315621503101145951412651797283291711136211731534441515611975184019106710107115112401137114222158116103126221413624515311631877851931110842114712362131551467122821413924905539610387140896198721015311110128721346814211521611302823791455759066571118156940010103111180123713455167279131404146854162477142856930310275116531275313778145115773162221771189551572903315432510861077132856918710711824127741331914711575016901745418316147221135143405445632751872298101241146812550131871433715105716817471834019445203221109717072181350451522261971448479154102481144112282133214535151711654517232189019382207872112122762332241071252331707218131664755756154732810391311069111201211301370113126323706474156606110790812519411056111871255913131514321517111312708317044925135613179887792110333156129039404135551864271558662925910572119012109137914125154716129174011832191407151287310045051556150711682249671262274133049051616907241818399901091511561271136214259170821603103149052416830790853093210171115112114134114233151511167717193183071612251375046255662337783009170101021154012311341414901567141253135141545956606781183809170102721190122491314501443157401654017311841419902016121722483114023113624455180690723382479409109011453121012131101473015130167811713211562130350411251296170741784289117101471137612468133714103615521196271390471051216917908837912110837111031572323646412057416767618112091611012151170812175713671173251397341345424667078683219171170229023950455595665127540831940710501116112351157232366349051032686979687089311059811731123213171111529031044342515269073418379407105911145511412157390443154161160710183579314105111351123141371143561962101349247516665071408519602102221118212991136220236954674519468707843819491101040119012104131511435111362143139411857365177387191191143290338244151163917259825693710311110621232138621708221231104193510716677638708910510531117112871130250315041105756634271418929111020111031183212032454130524569072418212947108571190121711332141711962361383747435766617540831940710501171216113671322253390422255169157718130923311302903914414259061107518418957210706113821231134671457715421671179171890219111611402421317149057066382790850957010931172112142133214307114428031464505418668378189091032101391724763504585906690712887639288106671169417256931424615517616171618798111068111431214317286350441259068877787109901014211861214613360144181548716161174241836119130201212121222352347024322550326297147216031424515113670175985093210511113812573136614503152971130236371490510326106740682099168101551190121421391142971130211036843205726128756871984108131130319621936649154806967870816094071075115812901365146091556161871711018651912120692113722932398249125100226107273411750262398430754656144770387191012106881153127041373114221772217351466574167307539810389305101101151127401361514109157516351731182121995209321105822322330711302363491454656686253721287029591109151126312771319314707114024623116453054126463717286293121070111591221113351440615611610011711181161931511312134354044158865273282029539101038113031267131001141115406167491286251360249051032614377968115912411872903814925312613871032878291410801183712641362142011147214431474875476362732854399671358243637364110514261107560814994981130298374753165037518791941410171119012137137021445015155168661791218681208212132534515716807253825718722912388482597711302823664758263297128419481101151114312159133714608155431637171481188191409206221750221031136283365474157061710741876980103511530129013121147615801635174618901976120233216331832653741488511068174548769113103511801151299036443195906897518822797911020611561125113751420515119162129538196627913138417015666411412753749051406377898622995101203119012138135114202153216723123026733210411057476517708113970810553111421522154341411051032672736816395610119111411582190341411651756211141247035141025136638777889094631076170121735264415136621872538452990101041125312311381149015292165051113321103797490513661707791540266832204115108610977185399461108224031304985141696749589892491011311191268211031834701514862187253820295391010381180121301390146515371613417181187021931915221973170849056564176784679155101521162121701397114130156911611017661872317072999347414253266679484191361056011901226213901465315411690179018301194211616243137024509561461207150811019141107081116021215451311011440215511690179418951975020902141222662390241925662691274802896298703016031407323533473454515212101335143105233611017141811079402101031172129861314314361551016155174761813519482205162113522273177626683548410751316141713586099721013811583125713714872155616138172621814119432097221660227323368247102541261402712702817293830121315813230933953456535373663037623814196251311224170531967716089095151086115251270213817762822315541875516807668108957101671131122121396147011559416107172861821819602015521114222472314124472513126791271039281102928630183031155321081262210363318497520867057170897924410104511208121371364214971513016212171411852119412019521322217023111246412513526322725128110729373013403113532135331413725863350461518167507100513225133214665927622277028520913610140115112791321214333159016706175051545290315041031556617073085311130266314144355396357101285399103810293117121771341147515901665179018461937205302190227323141437241325461590642372228319761052611861240713901465154831299221031104791514062477104384179280101911371247413151141651561416721755189619372047921902211622313724120259712647927172877292463029011362139390426251706311721689693111042011521252613109114252151916471737118571919872015182153221262332624512572265342747728821151279139841535561652731893092041090111191214116727534544124561369078538288910410961190122681390147071516416514171601189019174207692153022962311024263251602654027524288211100927535714293515468975138909124102711168212160131081427814512544380145757661370795832193401070711256177235374042115136617723085297211011011721284133311640245831749715225613174189519511041611710128147295131674156596660874182129881081111961222311312353106417523067017743875099010603115401290131441454015871623411012113664212537652172148141732701310344473553064173118669311011111321268135114650155216131171101872194712202212351447658116907473830691161012211901214213580141751513817211035341207516069497358421342747318141425115611074182319961021116221211013582141521511165001770185211921420141762470335495541169076086694710711178111062833654139511681075108816917311009275357045559667171448909142101120117124531310321418115356161311172501877196620110215022320237451102214537245559665517561881091241022211510128161372162232036746165103262157610815091255101351114110832110322241715134651076188419371024511321255713811415315901612118822454369043745580681795820891110497117112706134541431151215161305173718237193220106212622412314724101025372698027222281417072181316647557561547328103971109011841232013120142411520716224217132118581990207021512290238024722510912637141275537304539510386377730823694710470111740129611387516221463624541579165577205815094921075111601210713149121723703282410375966229776824912610411114024213904706538261717908509570107711193127211332014381472160314245151136701759850917631024711321251138561411515128167174661880419133147234034214325602610567548791930710751185912713139141714154221647179581819196297131304920541462077115181269126104111544122013521415415110161831776185119206209621797223072357245192541265027160284262970230812282131737064284536613627438899133107511804123213751412015801624179018651987145623413152471597761607170812117072131311645165316211741881033915310301117128511311111512103331534108512164607178181079901024111263115121831314516545261066713481919901039111706121431131261237014685416926714185209445104711177123213401145115926161707171071890192412076113127503414715105266867110874892811942773904128546762537908175920210901185121411131235311643554936110751859098110540115051131271380494951206293111626923110441570641777880311312527351431156662947378171950102421131213139334111555161207320841895131050119512921127124183702422359062367906813191307101730114212134134131432115242113127131314715806949712082931131231317674435520637776589092511033112712418370241415107266157131893191911042111212121901313414413153211627111312713131450571680794981209293113125135114120532068271118561910410143211901294139711271241837024412536631575818429901051119521294139614209152241651179601822719131203621710222131231152420511312706338147258861437449841970109391111512293142223635514211520669072418685951108911771226213901413111550162051710931482110231514155196610417518361910711030713362513924248581169573383099249148223931514116155206907140877981310771176127713551413015286162221751181043193512012802112322253239024222254726585271202825129750304473141327033539341153529311832120371044415130649771708959921152211133549051032647379085093201065155326514182702310324124254316197160289091301063111912130131471418115111670117441184219512011722148225123210024135251191131242390497052266827754082149411020711867127741327114829039141465130611572181599252103511901229213271154024733651418270231032414954316197509811091461070111531275139014661566117702110369443549680315402473365141827023103246251556137908106914710311191122511313711382113701444155162375982409901010321111512153135014804151101651175031811319113206511312413120495521268107277811391041012211113122451467220935744185702677762826591311073811418127021310814252151311646717128118115193101121214835141126547654873581531131270632534905212678271488092121010811351277138014212151091677291737664595906872773689093271028911114111272983766442151071179124713176490510206120793088493110615111711151279133074515171768779087095810521152612981342114881130235317249545143179128303185490555696751813699610184112111672791330744145247615274998187911110200117512561318714641750262398443530761714742283069191512791398415355616471775845493811088169529633141068512664511302363714241550652172128164924110132115112534134911421215421664175771849113029235245025630634741892996103611191217013711421915141162071726018141191302037215302284232072414119519202648322248152381701265320746556911131220236146151041610078078292931310761171121071320214411167210803118490522764777652837298710401190121041347177027163904315188611572028101111122383524572510736106738870915310351190121321311111312202361486540610717477865293721011011143212901325314481113127703131422251161107658110911501090111321276134201432111312202310444051661317431832949010142111031127113771883211031514905282610578685197710227113871112383130044545113647379981031116290385439577651112092583764805207617111372115356440562645676285829191927290345442905701615537908429112106111218129031054155422647726581050936105031177153126137774331511065174708511113129235242965222638750810729381531261386440510716767230850297610211110131131277031314222511611076581949161017111259129113771424215951156321633374112520111012147234147735716653171185009440101321170612476131211416111422903814432547561047103822298281027112826137754716557061307212864114025193316413151226660790853391410226116112135013358141371516016911787181221881273152448351386117290813494131032111291111210013262441571629724287694710471116112101319822463138411051406907718909801010311312613764665462645471698631169226436144154706164715987094110444111912092453376417352076411116821103564440562644776285739191750215035342905136613977418959706141271365451517106907408126970210910112421217213146143515701616615726632124268516867067300865011191250390410751266820730789093491056111020117124732994565518610071058887990108611110211002256330447015910627275189091115105111311216215221083750410325966116798833919272903454425955667172058631701213134841154036707476841931101801137123021337141070151401632111124033614104574690717184197010431116131230133011477111240333144765401651740187193581017111124033614682551613077738909329105561143012471131212043451412054466117259890970108551134412275138111312131313041801550621275687191210991574247353049056066678782129140103211771287132121441111512553347414259066076686493510170111941257131541463170275390469951606757141819491111927290345441165566717761877929710631127290356424651326364764170235390469956076262763192729034544212556671719581119771029711631772251341415957067771248207910511927290345442755566717205863141221123111167279131614665155690715389099151045111361212913110146415961691517259183181913620702147322702238402415525412263292780728682939179029031214710587961577486874392261019611101113229034034975146613071478700989103711103612321145421243441480532968271045856971108511452131223639641037532613278183529961022711387145028934414756590612879087195111472537332424352226357418629761047117611247136214750154716711722218121120225393103844751086162730885129351054011351211111522193370344154406176780481913829303193452578669071328769301032113082683341745405118364479885141540225739045053856567305811093291048115402138314147935456477881311572150332421757161107222844999511540211337914508595661062796851417082840315544635463613177918307982010981111124811381014182151251665166210731774905350645711981003922711302903714905897616873583299451041811702122081341141461542168041748181671934620902111225002311224957255813726637914417519655175618810912410222115101281613245169227413300446551376497772847111021043341417015124632978015125323414146510063579088049451761241314644785285117142903604665416123775878151242635244148515568051712600352434254116110739284589911112503315549251246757751562558363144153296911222237434149852111312156348743259061701712483299801144217013329441113424533321461425253937494955856610327120686791015128133584411472107233584515171064115125039049055396103873284119329107711342145312547511012416356418752851512791398415355616173775832991111722326316349325766317135687914710351662107317749053506357468813599010131171257013751422811414121393130438258401322132531204920149821303730410325545614113292110360144771352413904539547690710328479108104711808127411572608316941365150629176971662313364325116357143815914124223522411617012211325242115716568761851192521014011471129613164147158161101728218191151240837041151161612523222478151806717448235925158216213651471534111125236643153663275282179147101571196015121673416426569764507508190943105401111217431264905316106788479917106941472450313241151161131215317144285116631278811091100104611961224313811113121373114116121827823154235540113121306337410805200667677818872343414825120368237908121097610161181113102903463426317082413406456510191131220235094405304127624032511752179390415112022146111024032244905461262261113092732181532290325113021403731199627311712470353430311312104381741165116116114021413130424558111701276341461541634151289639048405976690781825598110132111316128013401486153516547171301855191002064621110221401701275031021461653569571108909145104241141126113301470015136163717465189361919120214219022107123557245372510122617027902836291043054031413321103330434113511616462230170824513633442453764617908930170924134064565101912172353137491513561330778920113222533102473155162997161879511010291131231310824111517161717217149722173524297522263717161862931210371112171210413841418159016222171681811019902047321501522104325492551680471108909722104521131217032634115116113122533741490550632077358540919113121213334387578113121463124421259064237318840921210371113017412103390410325506116790896993109411901214213511493515716191790184531971015722843222451590675074428779961962841310241945102691376068811114022673463456580261911312465312844905105262907118116164122703575418451136887121831976510108113712451131121476113121803564103557651871428818152624063193439554064111131275311641065316108771108669723106181177512110136031490156911615228631074274510011382513756435052756517874890910611031611724127811361112012943540441851716110711988799010571113821131164425516540748851912610371190121411131232313847825866221765084699010313115712540115029031954695511611812313108047154516142113724139041305610641721789292171034112691237131281430015518164111221230436841385926204726281221131253133541325516751790856932210741112001229913340148515300169017711182691990207792171122626236224305257742611911382803776411054166579084949747103401198112411345114901159216131017710185519961522923255413205816672747867791151090112991272138101411915629034114207528461317358989311045611961237133819624163137410451406561714787596391014114542124361349058146288769589697561021119012437114027634141165516261789810839751032011901224113731431151081162251737181310159824063704143559068174181355183724063151447519111262331241045175690714081989561024611132121441317014121151431572903422441541863771416895912810170111812129613781411515181216184172116721311312044035976146713085409420147212431204166511611611312453484110571165097618202914401131213231044531516669079688829342135321163414151518536142713181191461071111441226213811411915121161701711018411964520512148221702318022490252622612312713011382413762414051436107712982169901072111771210171385014141153421884275310446853568077218870699610421111612200111222663324283586613773781009751010011137122011140213137542625906132711814699210970117125713262143291561916103172511138280326041155231641872838929116113121132624415180670176568837132292236514251113121135344153161701746083792731061111310125113536147801562166217312187619702201461131212136314115311113126923434705309677138289079901070111327121238137761449615401620011312788313145059065575185369311016111571250131211480151115161157174118561974120133021115221722344324540253252690278128191192296366474153163673281191361050113201214117702240313049056464171048162911010482119012851392119021071312541365886567187821416952953774755566187779156274039043275564637477668308115472107351497253265711108214134342025701614676168324951109721132125711832120367421052066212719119962172334113126103964805376442176625383116431579635713768529935810111115701232131061766231360044875326907751835932910101611351213711502413624705476755737893971014115262513784187511066037908789971196215039045615176136711186919971103711846177621443352428354276957908121917510566117125221375149211591266312141395376503738489091321051119201261132914136152021671171411140213034144559061327200876957103511118170721813166475575615473281039131261211345451570668075087291111092411901289138901512503324479596637768017723131341496537612181212246340141315116457358559110105081166512961331145211322963486476551361967831815699010306118912176134514207151096154024123207448351156251131218396412459326902780812295311010011191217013473142015111168401737184201962107131204930513163574258871956910561118712121113122023704968512161107470830311312770382144635606677678785201776270390434157661067414820798091083711305121191151219375460510761777908387940610901121612511390147501544216771796173295356249052226101779840915013732110341420257665472228132911510431111381212141396146215101161501729718287191502014101372494316044154165617781991351021711551296136551495153131622217810181191247256315943085116631716183089108103771121512576114426734724185906207777884696710411190122091378142252315247755906137716882539671069111921229713602144321590161321751187801967311302503732477957366907102833191071096114201703217131164515906111571166141246639049205906247755283295821051111681512183327441005791697773587069321050211630129381329914497157481131221231504167590614271038817921110181132213832302480532668773281195711057211181261132911412414124913177490531561137126816214723423152432523567478681799361095111511251013311459614721993684315117615174787896951540229031114240596636171138471113421393101442459569807112865616622813904315547169767409882914710861115127631144702545696710861312142732874415416112179582379190105471138211397452571610311121243834504126541861997113870514727813142410385476108716313622563514175054261787790885951107111241132293031414110573611397782811911310961177128113626141290390453951038696712983197481012011482123713794113621013293431574614121708341490510326457616136271313644153266675758201966102021160112111132361312101311141905516157141217083904655416130741383189706109201190121201392614901514216321776618311920620139211252211661472342390415259062967328749461056113112361332145215213114421701332944151266327778356131223331694515248620611502413624705476755737851693210120111411125113901413151557619621403135461536690765883097510981177012701310621772210379143075516539710388472970110757111601290138214501532016181711218162116029031032427755164547478160996108811931217513475116021423241410355516120741881166117274137304101529364377377850990101301113614721543532490515266657132844091251072215021903816447751546533784785359981072917082221379143075516178673281997071074111930124961351149221532916451735717302193390410353316422711181019120824503706411155165107255136215037914307568631716681209651028211371212013115614371545164061322856314074932511166157210837945101216114024833292490515261897793886791351041117812713548113029031264103529369073298329451012011920122471311661412753414605590611173186159340102361137124513911416613225613524655418640715583419112102661152124611310321429615901629717126181120113029231011457537618071618116970210411110161962545314349057736222722681199710521171121031192621453200486518761117137081909321105711711267113151490158341646217818116195320131114024623116426854626827792786601791296632474104555169071678576171229203263414455726357366114024623259450959061327778792011701213134841575416710710128441949110361122711382643654365137113121343510449157669078618102113824653141441545169071941131232326242025539610387741834495810110117901290134011472211532424765516443730612282140533242335756175746833911382903180470654896567120810621138222134904975514163572591138248837411051316142717583751138245235804706548961172591131232318542775706622375187892251360241323642185111649171058154021373110432151346540741852922511312613390460566641731827093211037111070181290377453259066076681129656113823193354449655165107241118121132514865207613871108259121927335427959521125252341410325441627479682611702353170419451666577154818912052563754294582686718081242914810157114281264138414811513715224673694147512569073468441947110540111144129613781414615761630116972903699456590622017127013654905132659773581999471090112531210511402290317747915729646579687891461076111477121741272197370141295906739770188309951010901117712771314314370126221913574462569614779178110921106711130122561377142411202221539849056386907123811594911057712272249324646135248641710328441927410961177125213320142011962411390411625356212714186097501077117512104912527013654207561616071031845792491034015972353531441576907100084739411062111155122531390141751593616197121822813707416155069073841737290369949659062201707213737014707518446103075188093541011511145129013140214511531163617321845119141206121470229023106215972353125490510716776711382271244270136542075202631713608285945710810117981597235370435538618673582199610781139712901312421419715120316214178418811910311447254932894861596690726581669651016112611512710350144652465872628213159222863107450592633011702150390456151761367111835191751058113512479125521103315411359663173391418270238884235596517908509141020617092111313947825156996729487919307101111971210413711490151115169017706183219712010311111247353249056066671008989491103611267136271352441541622275689696911752963297451596631723615127913562475591615976781269172131223631444515906417110682369691131212031884254598261377706811697411051011536156275314243951246482761858937107301113912811316114521571162411140247339042465906767951851910321071611871221615129037064106451766137147236233242535261113029233444159269673681991151049111226113124433210412115110677757821593131041118612411353615621503239490516761567418916157221531354535590651774186811312202369414152596329765281109411062611121731424508526265177981679320101020156266231135450511156111714718127695010110111781284136161414215291164717451829319106207732166223181962142390448590666712128140948810501137012254142221153564905442613678458409411077311371111217314245155106907212890960310132118411290136031454015901614417540189019205205402190221845237752412162577526142279028356299030281314132361334134343515036540379133812039540401469413654215643904450645156469047214484149931503415191521505390547655140563215761658103259556078261139621166382648136560866859679068506916702017502533664115139662738848796210110115012320133141572167341643152126967578669582109011901233919621423904485906667121281409371019113712423133001561216438704120510266673589099610617118711256131871477315349175024335444355576667100897391461962142390486566611072888131999108101110112713571449915535161831711018191986020962184322750231124942251331902903604665416317101584793110215117501211138921411719021203100543035906205710281179108106111512663644479159861537561845496131090118141228813511466151901641172241902713960451580635576689099610843111681266134114142155401621917127018351976720392141221920177621443412446355766672989092241512791398479751762007388814697971052811511266132101410715561618717511866191102050213202231917126003514665776357908909539109611901210321343714377151361673175401850197362090211422273623108241152580426962765286629121303531903230033513466351903641373211756278131138490524768717307857997510513119012251131021490151861632117129130527341490511268018122513904261912213351482059669071040892996108191177312349151266364447915986153756184549613109011814122881310414961590162681790187071979201442196224181222413524905167622741830099315127913307416651206102766814492801074111159121711377142021595164417961821419952046219722285523902477325811707260328941115443651731892091210321112201242213220142481532716104175729031424445437623571168509104110471119012501383142201356224137549435101666790852958710110114112352139014621519316137179618133191042042115402947310254139510016148744586111750296310204649566691781083591241020711445129013193143215411645017170185431929420902158922469231362424411492653121046205769675308689192108001190121421311741425015716421177182491990201112117817502963102045815666137790851691691902963241441534615075408849411044311611186246315441715967610176681109411035211901262131931417615361619171151813819508201133179127023920466543961837390811094110139112371215713871440315296193216039049055816667908969810101008111011266131161417715782164111767181371996201332125222747237702491725902619027976180291366490537657710689695471015011770128661390146591566161101741187019508202491512663165412057916987518669311020115012657133061751282035974985977657766811093851034417912811390426051212610873285191531025311661273131541466151421691717874184791920720882153322114239302496251012666277312843629663090313553251336634146359417912513156490510326149715784149641025411429126813120143411571161781727815727583184411225177614676488195561152225931524451108210437284116556164217540817469190107111280116129033154113521697679586229110105821121812154133961435411512287390410325556675713882669810711752122361381413715311652017325181061952020169214412290233311655280638647205666857578579124102221113112115138114530187290331544815366217976854091707104711371113021131741425926527908960910218712983153456157561325731382701797213739044635181667710289214723423904152590629673786293210702115001214113401149015506168001766184119150204012154022782366244172572261502778114324131504401553568207908183910401021311183125713106214120155011686118627913414417155661397908222919310711148212351318314571566164017791189819412030021650137248379143075906255795841898561016711140712713466147731556162201121276636547851076871798815395611090114541220117972307373544655147675777381051797221639041025666540753787944810442116612308131191457156616411781018399176926753107145756661807881750296317345725416178778540910121011511435126613511466151861612861750253366449510169072878559287109011101125713661418015302175025336641151396577418140990106511111273135714661511161411726317126003514665886907142851958010103211164512511366141291581213524139045395476907103285796610411110911293171260035146658606907418909103210167116131290132411424815136161421751185701911020103221322275823512466251442632627258117274138045405520654079885191931033618024631544171545614271118208990102721181124113222147115140161917650157264321046651416437596166278312245651876131751089591566171254035146651506417908142910381051117501290134231451157501611017661828011482903604665416707978791511047111001275137141401547161091179018350170828403155446354636750790820979110307113411291131351479315496161551746318130192042050221902279023282248625662679127307287829371111217314241002557066587358519791105301190126013661480157471670617421852119352057211472273623321243125133126952795028732912414123113664108530965176681469941662199390413752916967142851966101801130211502413624705476755747866967310278111217379149852986817908262919410841111901257412629036641085186117467847910310170119012951390142111575167317259181119161202612190221322396247062511626327273202817029489303203111032142332383415735414366437614386839114013741240421174316644381110421193223179124539045665102717972453120410675116617972453934237179724533644104513221103634754164907147817691210101761170214133217475051476457162179724535684130532717972453110457251055167245379417912766338144559666911140278131934905126690769154021593144490550161201540278131754205586162367184588619187610101211217121042137914540154081673117801187031966201192182215402111376475055361540211135641875102811402781324641325320647771812097611011711145290314245153066217790810329581011011708127133911483290374454590669071308909961011211735121021350715142120339042155131685279281098917115729039041935307628078189097310961196122411373514102155071122211631614534114023423654415151621171181469841066114112901390143615121516112179561211210237914307590615174187069321050211630122241351141320151701642173111866191182010621412222123708249025652612815121133242335765877798794181068113122023401443577811562463514211516161847818782914102921128712687131911496159016501776186111962203221902216223115241672513526372710722890297913097731963213961782287734514965130611071618210983106511741121051390141771510621136220231484128526464577810821815129037504442557671756215402403390412153516861142221353297413555168476684199010901136121215131121495611372102390415157916307773581439837107831190125513961441157061632175021863019612081215072295235182481259581962520350346305111670279471145211137024480551666047101881119899142124213714536151215332447059664967758479108106801512113324233569161107668723947101081135121981131220234014435778113121113170419051551182621443141427951511615772068106215402403390412153576861141256239044654064771327154023423341410105506417148469302107331160412917138731420515524161571717618311916215402342311646135262646571568102141240639147705846147716112182147359246215198681713318542158390418611402462311644545175647511602533290452516612074182139110110501111761112173321457590645371548130961104311596121501572710350144652465872628637166622863107421055061774388993441102529031685441856811372923139475906717118138127539041242532631763615127913454905915624775761797245341442475162179724532494315586179724723414408518964479684192471033016723973904124255163672191372180319143251426101742381699141105111311210361322183390412455906706781814299010601175012451336141971418270231352477558066702745827013126113874111591631779611042471342248405170659071108234961617822733024664115122233167441559641770841195910128141270336743415125635736614122023745853265971418772916810282142247331394685574653971038896914510321150712967131251412015965161166141253638044884522268107178810939917725553414300565015727913314162583961207331815914223443457441547690710008709901011151118111402139738064121553962777478153614182702353941555667017773831897021045119512188117274133524905201633171378171941109761172741396149051032652796411727413384466541611127101829391121065613221383570441513161241138270334914775604610187538704113421313108467570669071328519706103211281121281130212031032496596651751085961262265313041125137611302903202453951636208760181051126226531304112595611302903214496550632071782239371021411115125113510145961262265313041415724132250731414102580914121701366490540647771811599010361170212737135014361543167301713718917191102087221121226623111242361141210433352459151116586113022023424670541614612022111356349051776106215821103514280541616973911155244331541195116610871418439236113622023777422590645374111783222320245151074141827023144585477613172028330114021413130413151020651757895911101471196122621380914411556166381782273039043275111611471078766937105671170210303119414754562451962108031194147579168677236890998106911518265328245159661151712470342248405170659078811781138225331432416158576777147889112532855396413151256132710271131267839643755461562713390490587620272538929136110811130612457138101434012272287134184177593065167135812841612465387443529969674581851131260397249051032678717011382583357475872656717281661131251397243251716367111851095961591292384145735117692731872915912663121413953163673281192021060111301196284311046653768017318258935107111721276131241420715561631171281838811362202312814255545768107340127121453114341455966412746381909137611042105312545051961367568429371017611148122861390146415661651175101855219682093218322235523819241052590262271992313884325736775658110931109411321258137145601525416750171101822717972306362045405706418728083209169106511142123713539147515315168177318451932813227913410490576675071428131966101286112581797230636347658067573208329236103951158122731371114681556161201728617432513550466511565177189098141221212638044515709627377118689561012011814174325131802466511665177189092861732910366417056596577668409978151279132141345167615073184819501109011321211138101490158016251171351841194832090215722274723446242272513526352777328102016727013621495052236574723888119144107061110112102167221311542805320678177084189353101471112412661345148101732910366417056596907968843919010901141121321139514773151020170125913603459851556417100890971014011537126613171412415661610201732701362145705416867818519540107081114112706134581410201104026635144875605687518510919617826639044435726150778151279137645157806425790879199810751177312811390149615843167217150184971931205961732910366417056596577668296925811121737914985316879710168401996104821110161240113136142511543216347177318910196620170216592241233724150259026132782810629663047319032321337234180351501372441343494151506172751842394710343112181234613901410215661620317231183219466205121129022662390247225128626258151279133064620515436568715789099610843118112773131020156270931554586576628574387892061766215136641095139621275186691110139111331154421232312054157354596141711484829671030811811220213751413251531316270111217379149853161041741981210947810418119781254313110144215790168101790181901913761131270341449651461117104684189766109011571214013901428115361161117381890197220432159622150110021703624515104164197121081819961051111901272131501441154621647179161130225631817490533961011733487509381075115112661381214431527611362597326604905349610547344837976105221132124113110514961510981689717110187619372076215222232235932472569267271428563297301193173264335633473571336737623871339740624110634274317644745414649047157487495645012105147522395390542655575615057791587059112260110616776215263376410626529166180674168750699070522714217241736674124751676223771907857419229331504226590613771188519931039111110512661390149151572161371715017362791331473580641871115866990109151179712146813454148115490161621755418511958020135218112245823902471256626741274622837296323095131110321044335134255355493618393710703855399640964129042131436644904576462824712864825811402139310144125503657779087919637109011192121027136601662256353941038557062617386896914110172119012191350147715481621417120189019508202682147822312361524372512172635274232883029423070315653225133256341103525636293766382913990403214110184266436034417145724652473204815019024183751466551675079368969106108011351296131043141591234231349046095376827120892096610148111571242813641474715571693217951816919331110526631194415147682790891597210317119012321131212147117972307318742835187685710228519418107021119127013221432115191666171291817219762072213402210217213913904210543613167498909191104911901219113711413711587816186178721870219804201921702234232172496257026113276628352925730121313532903325617126003514665806357908909539101038112561257213501410415140165261749118721915020432124617129035394103854766673711712600351466530672754081269671054011118122621369014141158131690176661810319902014221902236239624902520626192277289029321303913112032903332134353511136307377173832711422663101429355169077508307977103251722730350412590651721589093601011011661214113901436015110162931714118901936020110212732274023662441253212651276628110295030320313141134213934124503572629790832194110300116501208292368433551376540745683909135109011761275013471467152291708281341466530761087107870293901013511116615728037541395418646792019121833104044156116417747851910810661115512307133214671545161058192271313642275702681741866930710108111071251131531422115137167317451824519628936643075916666752181479451018512142683124147590668678938130931106071185124011351146615812164317596113029736641035327613174438172911510411178121761341145181557165001781618471911020327213222106423133180266379149851506153756181305990101032116112117113791149015177162061775181091974120141121752217723902476257312692272022831295863012313213296333003476357503614737453832811642157341446451036327719087041312520379143075180690710328999282101081137111121737914985131167917490816297971070111049121091315014103115641169017132181261931420742113262257323902411512596267627126284122910313067731903210033170343735155366237131381523917040932411104287243770447245664690474434872491505078170821032315241505109613387618121297911090111771277013721466159016417177218150197812182903152447253162697808180916510621151129301356814121015104616741757187501981020852172221802315011002110315242115376110730582119371011011108112211133714110152511651174581890194782072141822742372441825507267274182871829730418311068327334183421235736418375713873941840698417424184310924474541465304753448749264501005117052625351544585512456757110358782591074604196121762110632516442365906612467666826869267077071727266739074443751907665619222233791498568630777088789115101101124112114137014724154181612321751187911912972067217912216223682430725782261238279022839629831301203171032135331747347535663651376638128639258131251038543275122610579328873910410150116612791135861415015738161028177911877719120202462151225472353524725157267732781132251365441590653971038810491501041114911211513621433915461619717431814719722052213202215016232741387446251106817116826199611741235390453951038676717108419761080113512530139014121157361650173201838919715117142903654415316796732185197961037111561226613100114371520116371715618447193720242137225571137279133074515706632710186879133101151114612857131841421159711622011442281312848295956480711582279138113029337414150529169075398103895610711112871225911442713706432756161517366890919910671188124613901416615115169611721503464775764767358589611096111371210581351149281532162341731511151211031009450560369177111861591031623274135143115103650781189097501045411613129013814142881511916501739713227293169453251206722716983411702264639041115866177736823119304170821383964112591164507818106970913124813874709520688770987311130275138104415586665744188096271047111751221133471752963414377569567171108222981101471622563347414259066076682269492101301118712521341144515837161331138214134147151072681751817509901080119012581310614955156516418171171895119842014721209118427883434592512161005737183793411096119801215013855147741523314723423152490542163279681479151104121190121991316014932159021653517749187719222203031137279133142695192667788816191371071126012253131341469015901623617483184771923315622663137431551267667403820892121025812012413414147590614072398189797110228937664810580161257181162290031424111459361377498112127663139435857765771108392934116228803100241105296146711850092101101101132712103111245635004705170161627671113428913120495157667017748779401102221113371137232731142025516156717088706938210255177621543804625816907374811692241021113571137279133074675876115738287892410770119821271311114692151041137248735724325846141712587511791257431104655416987678500911210837111031140246231164454516061157607826292241261270934141775791672974658420965511522643714729532161397720581719161053211109112774138218225563108429153636627750873115721053335460355766537101311402408311043465441665072498107915110931127212321378143115269165571708222735141786532619770787419572106611297151225392141205487667751834391161015211206126813266148041590168311710316122903170144151765327476811596714124703514766523667726685194510321121312321345148311510317126003414222511064479618429311101381113212540131541443115115167515402958392490352811172741310349051016947133846491091028711557117274132914250550366272486539145109011142125113221110827341445152316817781816391281073111402426310749675936721714283293071422361365349055063157961111124793392464576147233117274132434301570667727681871297810811109121081381014218152581172741373049058265037188811393021077112221231511482903604665416317255837910551077113321211013207141116147236233245435967113024131524115590620473289093111051111710124113207141031462211034947415316456776859911610711760128213813174127303539410385476108790846595210540114771211013601143291517216717813170821403754755358613874783299118107111692126313337162327413103490514262127109896926510347113011172741310341015293671571208206951109301171220613527183232937914406511061032762870896571012611138121321797247832774685158179722023253437151216773798851977910711112421572471380141881797270232384705357676771787796210750111481797231314041105666377801837959610221114411224813661432151411637171231896191902075021140225431961235380445651876650795897132290340349751466141713081479461066115261251913771466151287162591962403314641305136641874186694441797231337542445708624771069824792621797270239274414524767078178116913110178179722023253475816907698136893051013111161126601383167276313164435299620279684239138169529635184801518811302413834625212667714181849116210226118612791109145024123454413311502673321043259361961512351313741555906142716814109267103611153114724663904920590632975528329781012511117011842729360646454167877854817722173414103256065047968909501016112701512903750446547671776681961572222341412552891707265322241165516411717781062114624063324566113122023614682551678819262304337419951516371741826218121103752476255165961131251378944655526170766614922406321745252966202723215122913161462531211312713272414155169387141890933010170158626003441458054576907392113125863702458590692219602150371411405936407212869916910901142114562165349641105516476762831211312406347420252321131220235394103854761087518510925611312120349432510261131226232084745128113125133564741529161017179113122023671412795476108751851096561131290321014375122062047908250113124334334322510211312481374515470690728612212166378241556236102113321937824155823612711131213134945157066299715012242513873490510616275782286971138220936134579590613675691437252326941501193230435814565186114621713354491560911812522330445157864571124115121433044138543666178182359511071111081211241131216031174702512064331131275311641385416491722612182863221414458464067528138911201221211631664782515661074181671221230431281138292320442321202211632681131253133541325516751790856932210741112001229913256145961526016851730018901971120269211741138231310104525416253727815221693514129058162537672851971103711227182241311645152616897111856813712406390413655691512523127542261102281319971582153396519802903454414218921873270177027703624312160427001151262131954131510261167528350113125135141205212613911562413116451510036183724183419151105011380127013105111752540389211212116396411551741540213523892151290375044654767177668196157222234141255289143721553534259170121313484157541653211382126318341060536623111312353296470155301723263741066113823236446557706246113127323414510553214912763232117628034043252026232174127903914791747211318942361708214403914450174725203540488174721203514129054061039756895120227340469520562221110240314141945906892117029037114585201112872433564715906922137210673564638156231321047153761081322903411466513461401524289366016152923112711462753614415510653219026036643554666778061131296345411001692103317011382513964119614662513714120586161021701218632044232147288233243701121281390451113722043981116251381422552066907227151290375044654767177668196157222234141255289111222146364442117012131375465256463279561612903296410115882663152147215231154905204651721483291101020211232158826631521138214735044995101811312473150443578620615121163324110521263671026147252321642271512523324960510211382903704855511664755689093801131220235141565778156927231134489511969671208909227120029631154905161643515402135237641941512903750446547671776681961572222341412552891112227534211701213137546525156327956161290329641011588266315214721523115490520465172148329110102021123215092523280416510281216222513190410901708275137514266158826631521514274131054435596110521643118146021421612682317047735566102011382773161413775416707470890910681512706332473051281472108387418132232351490575064674787197661019615722223414125528911122255034211701213137546525129632795616129032964101158826631521472152311549052046517214832911010202112321107729034146251511902454314212892686311548551920290367441953461588266315213724963241447117912210390410325376194113829234514905399141245133245025621648171885194701090112861131271031564365502696750285691861372512378414515773656710201462218831551142628043514905750646747871976610196157222234141255289111222146345442117012131375465254563279561612903296410115882663152147215231154905204651721483291101020211232185821002390423211362241373049052626907788329491101461113111382903704855511645755689099341131261323049052221202211335248152061199247317413228739041294154022953892130721553250415152496108115129037504465476717766819615722223414125528917222102367442117012131375438253269561612903296410115882663152147215231154905204651721483291101020211232194291337448359069911702263368113721069314243675376977790810329244151427413790477512811382923451490539914724513324502562165771020812098141250216131614905142651747089092861131221231414435596181321426377345659666567718773956101020151290375044654767177668196157222234141255289162252732024232187273245413211102152350649051081114322823102162212032094128177280375416551615571518629312142214331104872520513862155341478576196177021663904138537413121623744185217680471121546214073514315636123323531084124619072629169225136064170154025934147851461412106131654415786576147210739043155326367104619302473714103114728873744111472107237544756151962120320142391111247431104665376801755689099031957210003394114872823120449359062271131218632104615222681759614622110312542891741223136845461558290315915621132114181135212331104905487641114872110350410255511196220137724779161825273109417126003964905506117121110222023414315246132279139841535561693376687319754109011761241139771421615791169771711182221924816924503412438254296102119251832561791221631574478564651783984592221512791331416258396687758187912510181167279137547658046517908837945109481772570338249058467871501701213131164715616511725285319961080411712471133101416215190165851151220370451522869079082829961050111271266132021423211121163564525666125710911372181315142075812677754846924710761118212111311614311510801661173118691194420417132290397045405366119776876914110128611258164123439043551203682379081210976109011530124121341144061515716961778181471930111512459346343375138670672688102128283103342365971611371231811097110178112751140246232141975141613878386597411096111110127301390148215227171221913214137511617714281919199102501147412901350143201551167061741189411913315142221368490584614872568125914914182702340841105116151753181259111017111511264213231143115177161911774185119312063615822830390414251376202714485195211058011441125611311014116155116571714118130191406207012167022902397242201590225032114415406317211849941107111901211041858277433194757966775118152910216402121038642115418643770841797104391190126313551417016124133247453558236907508320942105701110201419215831334460590660766873975104011118712219131201413315125163117475132284365474158136643790853991038101561141121136134714606166231336432511620276018105111312126035954415470690781417082435370642165866540743681659123110742113391531211317410256161417418423927015629031914625102666732982891322507311044735230153121131741025547690725184194701018511242124181376511382108343411154966373188278961101241117421270115312513127470256416315715781169831042117361277613246167233538642651236642728384171151214319141315551673712184629661081011811246213321449115481167441274286366646553161327758899841096117361251131347113121131741025716481757881329511047711230113127603904845526431778132951105461190122011367141151514616101113127413129414059064547528431971013211511261413611430915151162061780118129191312070621902291023212241382552226412730128962952030172315303222533963430035131362123710603827011312277336457651200682074184769901079111311247511512414314047275590653177681194741017111901213813771423011062413471447659066076685794711090111461236111402363645432951516606747583898061012011177121311356142981528416901751718531192022061211370222002353724110251912665272022823211402342341455056476130751884966107821145124411311961131211314647051019611871328154967102196116612190137041138227132249851306131728081249661032114911214613986177290314045355214621079081032937101941138260836845475476540726688194110360119512411358142811273226133174261551631763611231211037141785305652734081979174153024633622443597765179087509461017611206112127913984845566152270131314181585864257497874811212887326543165906607152832949110146114941121271312415153265171388811931104511901277013961411215680120024733246475361690712941307215532504151524961081113028336541375110682779181909661081011421258619127303539410385946907908142951105841171212313110114151541167117901851198592050921372211023662432254526146271701912103310324502510966677258810993610277111091262133011420153716110176618321976620312120619122531080470258064167107817997211010321137121101366141711541161376191289390413715233624779683009250105031162122413653143715110166617511186619111205861912173761454059969673778909142101038113712110136614130154131631817511851019255113023131504905906539710388104393210661147126361362146381322226318549058376327458909320109611321245139614166113727913307470357166047678629929113421313706410856769071328519706103211281121281130227739041032512386110771817893741372465315543754706907910881932612082450370641115516510725511302140351486528469078728741910191572222373649105110614271068766931105861572222318044154706345747821614729031018490514261038732890942310102151270633824200511066273128721974110451195121176162249325942561512222392041075756177125818115362110366471511061397133171231357044875376570716181169702104311306147245132241515120613067518570932109011106124651312514226170821763167415558556757128909103210535115112142137814465153116222162255839045054669071308732946510125111491418270232141315116364247768434981014111743125101359611822167315544359776125731822517122173524154510161777958293933310511190127501344214176151621622740390432752376907908539996109011103212321390143111566165617412188651616267347645352166407240810292101066117411255113501432015561681217431863619021431564115581069675189091571076611147196214311845025656907282835946610321141125101359619226413514775202671077287419254104111501232013647145115771690172611572437338241705420617274298225996108301121012921352149015108111362833654340541768927478222911131011111596110914502412345441331486213039045351166412714181769162151240631014905103261097428381914201010511135127201310914504151661656177118901927512702513140411057916141879081032920410561120412798116627539041032526664067103811591351041117812974182241341411655161086778281080911510226119012811337141091153716475175218216196120121219022421162523134064116575681772851940610103111151278136801537264234064700513064075683199411014011511226113714175515411651173118636110729134141165128265174258446971067115112262131101413815506169017227153721036320547725761207558519311063613052115311424905132661173589591101036114121220113901451153516205134424134643057006136737846595761051118012661310814106157661631172061772103233104483546766971478776970102491640214031104685111569074289399610293119911270613901478515712169017851820471974120902178522110237412490258526118271162899029115301313170632903314034401355636803787038102113122023614137052006136174081360935105611111213171328911312202343456151106160777811169403118129031404692571267827741880691341013651113112351311614711510461610211512513206451532167437118809761013111111211613615145115990166117930181911913420512161422322351244762520726902710322847296143051314763290332591202233390420151406150713181191161051111021270713221459615884166117501890192401883296369247125131620271138909177101062177241435414104513161407212851989107711133177221035141045136115746890914210226111912901310514702151161161311741186721953220312122022418233042431225662691027232125027635404446541696172118202961107111488124113901481015390149926037504110549065317518139110108011204124113570148115151161917196181151931120131213122108023459249025177261062153126031144035670651781089091065101471113211312613215451599623746384669110105111664126011314141311588116571171701814419472021521512240123130245272551263112766289029220113127503724885526125713108111913110110117212110134114186156611512910311646552676437111890956102461125212131137114568156116511172521814019471209621804227237142490252822619027585115124083704905320642713289092081029911901253913511411151161661175218661920220232157213131814151520768127778549461024711761218213111411615133163717108018711990201821111234390435512036823790812109761088711611282139014238158511630917901822219412040621912296237824147253011131220236149305135619177628519596161722623114179510061427376812092151026411611268213511478811312414389446335159691715181119186101021146512492139614534151120115125931164465546361387418706932102681173012471322114708159016651712811372116321241415926147528909129109611476123513178142361556163117128181058113724063114175102641754089099010361112201219113401411159716110171001818419402029921140221102341243625116266727986289029814168921137449051032612127139896399610921131123391143727439284905816123171108719178101062120525631404415282662718783194061575290371049651556627187845990102471140246231164454590676741810793871078113031217113251425915175161386147247035841243570169617418116927210471147012901340111072403335745265155634174784709518109011361210413836141551546316107177118390147247035842465701611671068253990102221113801214713411444715901696017901815219175201386173251354741475436544770823392531067116911292132971460215432161321790182271151259313949051756138767841795701041114171211613771431715431641717116189019132201382131922150723144245225522635711302488342549051246667118209136104781151125101325511312703492450522169275388689961083111130124731317141212151916901766185119662031212922177231062114021773754167517561386179125073454490513764577816217082450315541385926775681399901025311521271139014137152301672472324947005436299728681569116108711403122961708217731067410785125614478181939961020211131121701331141462151301712313419490541361067668299901032111171214113542114425135224505130611397908105297710160117512249139214251546161141175018320193082090218522106237662431252061662107390431556116826753082169701053011901212113321417115771610817798147271322249553416418758289094710297114461215513463144715711610517341183219482010271472857390432055916557968479947101241166128101311914112156561171213638141195916146711085669511105511961254013111456151871690171139162212032264615541679175108573113127913108415551676253752879191068101113116112106713654146115411678176318142114628235914205515064927758214980410361196127813475162212032264742544664211600215539547665125631756711222903403497514661307220851986109011249122827403414321512176417718759846101211166125171311114586122821503414470534564772161172663314365326117358839901078118431241139914521572911302652351410356661707101830594110561118712901336141210156616481178231811219626113026523514103566617072878305941105611187129013361412101566164811772185861995201122174819626533103490510162937567895918451090119151219613976162212032264615541679175108573118429035044653206261741383189227105111139126513836141651541167817746151235737149051466116710928155947310901111412411351145341549616200174718142197012013121352215123312468825512666273128202937911409213134224665236683773785109172109011961212513611411915661661173718140219176209021103222512366243125202627511312923822411051406134777815095110661110412561390141371590163871790181119305209521111227272311424372510126120278032837018832110315149054726131779182809551096111112440138114570154116417173571856197362090821102011372791341441715106650976688109120109111146121301337141471532163801871273218410325121671735890995104111190126013661447157116901787111072791349741165134620278786698110338111201232113901482153201667175118901966201612177022532392243125128263881450223638374159582063172808107990101032113712146132151466019021431564115581069679681491181011111301279113147145121532164117781820615127413108041305382625574181159130102121114112901314145215961611179018861191021472470360945151506617454832925310901122212111135261411161542113721743120441256667677018488961108111411222213371452615901665113724743110466537680173183693210111150123201356143215191635179918521972917117121423514637551615379285193110596114025313791490517763107668791920110236118141412703791420655126517229871941101341902713219414156661317348669431101711211121811962133172423522565176681090912010232179729831534561543061657526820191191074111781220611632193358411955763479508129411010011501271314014111155251641173731820319432051021596179729831534561580969072201962142390414659266877828717990106611103125351314214793156616961714183401990202222122622522371241702510726662714328432990303003123212362663791498523663621137279133074820598648071538164968110471145121411390146661590163201796188091174267736394110567761877568187911110781174611402342365441515166127135811191151032117601211213142614177155116102712002108323641665166261126527013131418158466675188790981010901151125101359619225323904605666559711928102951107911153212901360146615311615617901830819149020124216622338239424534253526462772915721129318447225816907192847911010327113212106413133177221731104265666761754089995110750111101266132801130227739041032512386110778761954010661137012387138371451156616110175018320193141782290332142645906321752858814724913182490510326377908142947109011901260136614901546163717350179723073414466515266778789096581073117512773138111212713124151532651713885429710319111401266139014282155116901775018442191762016211372923214149056066675598559122109011551296135401456151871631017932188741916620932218732211423282244725902690274011171235345413756162497418212956101111125121091702353170419451606907131589494601047311209129013961462159016837171201822015227013131418151116887742584192221081190121313901423211212887326546415133686379081259341101211171121213151143215511613817462187751966205121470229023286113122023401411051776275177241433414259554561387528101936107101134612511342147815103111312513964465138610871418929961019811471232136471447115901612941772513414434154668074789079471097111144123113108014371546516521711918621932206622147122902312941522183311043657106346721189091421043117812306114026713964165676176726614721043647438352116117146884966102171187128321337149771590161032172441813218263319418859062507604182255631104462590690721687397510401111871221913120141331584168521363241231034140559611674968770990101032114712781322311312135237594215590634271158102914110901117061214413141149015791167171032181411990201352214722712366241055251062678272362810361570279131708490560666758859095791021011141312571362144491544216579173618781920615126631504415140690765890932010171112512109145626033105841715476216732822817302663539410385141651790875094610256143124132546159064547147815795110157114651212013430143471595616661722318721915020412166613724453364454532644371581199321079111977121351314914921574316881792189419101209321102221923114243525226177621393614454587165077454816297109611521290131061471547162517465183219388147247038364905137690742383791014101321170212634131681322113412446359063007791841491711047112512465133214105811442673884115541269072078130992104431112412661398145215960161021772155352413951306454745081559511090117501228313936141761516211302110368472512863207150841990105391110381279713981475153131668176718451994816552806373434515068978048552914071051113112636164928063574985102639415621356380449052316967808827991521081311411251013596111287379149855161011714281029213150219038164477554069277291797298315345615193690789812819613109011814122881369514961516016204172321791229931164247552218729031243154786313766832397810171121112181196253639047305539610387866843193771022611661214113172166281333841205321690782832093510511166125213320141501962536390487590614275181009710103211901276134521422615661613017831865193220766213122266147271035549653264171088579236108371145121061336147815206178222293904161581666782083599510151119912411323314702154516586134724335074963522662061772217352415452496927110581429901089111561216213173146615366196297131304691511066677238797221014111711219131011490159816556174211797220314141945143657766814092491711143222771902653103245159067671077811581902872317046552726907132896976107721129812223134226633504905321617712582891802663314720566685710687219142103111206120621107390455596651712088379451011671772717390423654167307668539910381047111081232131411440151501657177311890191422014321247223871772287390410325124761107718178979110901117712781330514135151111671517103218328197212081213222246523335244962512126712766281055291063078312363210361540271317847915796108751872994141066118412813548166217376145405996540746872916225463167410253701762803754905576646178485789361162254631674766584611222791398415355616125790810119276148279133074735546561477837814799010804111104120126636845565746556141283390453951038638777481561181324939044815819648179084994410103211761245213776141259196241735147905906603754087029491105021114061962417351473059069072518199567104711109121221355142591551169017750184421917620766196241737304539510386111876018154951109011750124421326119624173191410352936147679089159511090117501244213176142361962417328043335687612671038909142105111118127131032147615452165117901875019442201762126619624173514546514261038724885409702101351185129013103214702154911612591412903904539510386507358607117274131747615540699717862911510411160112142139014539151038161717125181091100229035714905251635790890941104901116212901353114901541164181757118951977201182211170222512377024250254432617627266132247337914977568612127140817092910901183112661347147515901640112212343124414956896667441828991421011611311244613760146615750169517181181061972120142213122206116224635184164515763774838909651190279133874109584638175081794310891134417082100314241000581624771628469540107021184712951325314702153901613517249185861347243350749975226659614121393155415159165007438789710586170828523142425352956875785379851043115441270137021445152251772217351466581633871208321932010511190127501344214176151621481270133434113521765971338750981010820112801214136614731545162451472851390420352486907788142911110218111241266134714851159016331767018141966201472145221077166274137904540536765407520854099810351190125911390141901590167901790183201912620517211112258611105217639042335247643748282591421089511872127411314714175153391130227739041032512386110771817897911090111321271137661462012212343124418159061327518421956103111244123513901466157661623019023003195430559661407130834691151602791398415355616907915856931102011392196241735143005250694379168909653106491116112248131845149015915161961797611402342390415252916417191814594961072211901279113251147715109161611734018227166274133004250511906727166890914210110113211212413161146901514116813179018666197822094217229023321249025822670227452810281572783904132551697715589091371022211231241370246485666110738810329761045211511275013981448715171611017501832019314196234232194292541169677908819366115123135704487537657071618116970210431130614724513124151512061306751857093210901110612465131251422616627413790490595065407103890976109501111112540131031490157616111179511832319740204121321221723181243451622546316742105370641753981210913610770117812172113727913414417151396134797289094231066114112561360314786155616603171661851019312059618462313210479159776145573784599981140210533171490570663827908509570109611458121813226147911530716511749118321913717702913664110513867917318206137325138046651086377122087919311022217114502412345441091192259327817912216315744785646517839845922216721103194905247673745824519621423904920541655378708120910210661112121214013172214191567167517773181051708284031154463546672377187091861071119012766133071458715775168115127913984153556167574548201169529638046651096177125810917302539312124114566261477908103292771051114541262135081496159016501712181451990201422151225842396249025502616272701706273036643475742673077918909651032111058129013861141021140246232214104551652176589695301017211530122251396143001513116661710601862170721313221488517698571186293110920116812511355114100015102011632193358448354666271108619212109011171125113521144015107164117371157234311045159206127418100950107111401211113525141531590169617397184791910220902154224123540244125373262032743285102959611126235745154206671715890983410550119012895137149015539167179018103219411208216622512366241292581211126231414157524764297628120934110299111101241131141451157501690171171827813727603624417153767407908103292491051116612311320145015107116886120129033704260759065167518271952910526112891712607351466586069074189095391047119012103213106914170151651611111773189619142209021482290236624121225140263727192837294233030017082140375448054168876681389321052211411264131151465154316711740118135194120773213711962140319441566617715881849581103141164712471366141781527819623003111495530569273588237943101471151126613150141103153311605217135404110454167737194019625363904730553961038722686691301083116512321376614311520616524139045395103865176681191091109314229239041032590650871728247959109011811213713211144115534164911766185119662094217814127903374632532621072485196610180113021712600351466549610179082879551028711901210113866144311537716501722318411934201502157226623432459625812175025336641151396577418140990106511731257136614111514116263171260035141615613690724185629661031011901241713511490157501644217801829319526170821355349410115816667820835995101511199124113233142151563416471725184651932205021120122306111217314245085262691475783193010411112012451337148615111611171201846193212051218022662310824111251710265527962837291320306831143715126631294140516761037154181569411090112811247136141419015742164821710051847196142019021132210012384624512566261502781217114972454331421259569072028232141220236874325116139790822291380101471141124471390149601590161521717518475166274137304539510386477108890946510521154012477131101460115411690179018651990204621372246023112241776121622723904142541610327540828394610901156127113350141111511516811753017502141310434352512562891741211935043205735613773081939901069154021033145490512669075181051540272373649559062197109890920110331111371217113411497611442703391149051032653712087309211032114512143132471435711302557390447757416567628540941102621172914226103701437051376321712482479253103441122712405131901413015521625214223613492450519061671068108916710100111521298139014891514816174189324335604141511667067528231981910773116651243135101459619221063465479157026927788807968108311541224713511431157481894210631204945514062477687812698710403112961111254031904415691675790830591311021114312781320611712713137411057162427318532142279139841535561615574548889881043117812206148279132474173528269172138519820109611921296131461475158131677317282187411951020721117819912903804496560680472548175933919629713130492054146207754081071912610521190123741368611402462311644545111647079082559901014611165121913921431211602135356475529467172998849465102221512222311421051076567187813197810951111761772193754605107690717789093871040611901221613511490157501644217112182361772217352421658264171032824199331071127812451139514207152421611217358120824503706451955165107255113025635194315210679173078147937104511121611151216531557496516461112173934501566637747983929368105111661271131511479147924133446159062227518669711043115961281314622110366411656866714121033664263590619279089494710103117812821315621414515507164717103181561912420790211962215523722414625139261727292813311262893114170512466671318709547105911798129013951415315106161701762181311910512072110622412391424198257726662712872825919324732294905236629749284992811091711471287413901442315661690172271834619322051215872241231182439725712675027902845429316170721352390415356966116796864926510122111561253132901413581513516652171941113122863120423958164217774882111217379149859286165766817097011047411631242213155142191570167017612187719662043215962230317012803904246596617171508707914081032511143812169132931414121568161038110624433223487576631917072146335847975906183710408419131106611307123213140717072531310541355116367712831918110901136112122713390141351593162021751184691928120472115222832351242802532264821422103431554905317654071078566944310471193912813321428111402783874665906132731810292391077117912661314711302803270451255169207908477971056111708123113966143215171113029037014741527069076685192061062117712713206146215253163717731875199020602166224723372435111042150366430751506238773387599210371146712941332141711314217037824145717665671216861961010176117611213201311514901547716782177071871719256201482117223142311024841256726702711328100296630187317732750331103466352811136250370472455764117508279361096116312901330514157151201612417421878191502041215382232231711134271390490529666677281239120107111219126613931483215926166617731177221132234505138670674181319661030711200126613307144715571632171031854719022273234420154168776681159215109011910126513141149015156016471743184471602663286424157886362751831197104181115512511366147115128716259121026637914307519576707988811911610661122712562137714661511716951942791311574905366454790824698861090111831230313391149861572316391177321046326641295100867074318779661011011501232013315111217393413056865175208654955109611479126411358114345152701684157252036544665307624278378131966107511619121601320514102111121213934905411616073968107996110361180412101013771475015110166617281196256031604655307654671308462921010700115321236133081427111121213934540533690715285199611011111192012169132091474115901613717104018186191372039713562903488437565566057858789197101571146712641313614661530716921722418661974720180212942236234432429025625197724134504905488690741286691101051116612711313014813151226136084233557466487989829296331039011731121068131409147311510721623817579181086193342014272110182266237312413592575266627752813252921130102114727131664375141670279108669307102421151128613751484615901628617961817019662030721184228302386224103170725363770416156661157567811591211013011361250713661410961590162101741186619612013162114222722310924512513062615127910282129963021631933260333134863511036227372113890391840141417024290743145442164577462414766482271412713110493590621171318108096610351111512661390147911563716901713218771924120662130522351179121098369246659776377966814932106611116126813811412713924451369072948106929610661110471215313771466155216320171511112173791498592866679218731187222731381112741314041705512690379081402941102871177122291325918632563201413158167572058271111217393452536263117549896719224136647585271630115082227353475590666791182331372479339243685806747746281109661011611681267111217379149857026518756885409640109011132125113561141211590161651790187919936206512133522270238411121739345251206507388472981110265114712490131301481159216661713018459191302045921531224592365124459251052264722725928130292533014131513241333196341223551362063793385139554407264150429043604422745104461914741481131491555090516352475349054147559156865713058211597760666112876225916132903711414554286617908711996101813111301250713111146215130167501765185119700201862137227523107624432586626105277228150294130903119832773366341513589131248350415259067673785194361057119012181342149615173163217411849019130207721662211023502432025313111217379149853161041741889393210511176612901341141201512101612111757181061970220524217222278223559241038253726671275522851297903071317263293335783415035723631374983890391394070841592425124323344904521746144779048215492285019951475271539054515511135629657665837595160485612362906381648655166790677168124696670102115124133321475109161317668719521032011151131262316549056963771198379713103711641271313371464151063163717176183719412049021157225672366245125662671271102850293203032015126635124186511069371181797911098111271211513143145411512791377246653076195766890996108431181127513774141061797277232274574512126417490818494861045911548121031112173934130568647971278227912410165119012103137501465155116410171111877619772066211287222591902703465435857976907183810409416109011140121360134714540153116296179618321917112562102368741308554369411115266390479156376907132886940710145116612447112121423120416751306927146812496610471124412130131671447615313151266315043925816757341169529638431573647737835115625323654905282620271184919131106611137123281144225335241315516629079688134125324463101049058046202715182331112173791498531648378118708911610288116612811313814771512416661725111217379149855086667149813797911382903202412965906818796889966103071118412881394141021152211213128411055396103877381439511014411537129613901419315561671179771845181226633624709565769987424866911010227115741277136614128715259183265374143554169075398479901010321141128313901483715171610917843115024134349051032647781389694710971190121421347142831596161717289181317113727913307431586261677130842921810951111411210431331148915125166711790518901953920372190221032233724129125902675027372822329323090314233210216027913984153556166777581325931310270179721373904463518166777587739901021011811226279134144171574168876189092221011111391235134114300151251693113727913307435514461107233813297021058711501218713111141201573016211691211036647235416775883297911031111621283913901480415898161171151221734144156267074787559901014211103812511335114790154716103217718219191552016121902214223512490257502646278028762910211402462321491591161173681991151025611881235135715121413146443105906295715481309611043115961230212272249310164505522765057148835913010340119612841390141501562162917753182071996201017211352212023292248552590267732737112062353414321590626179878140963103161167212148133114211552116176179018871955711512961311544775416797110845193210121110321245113556141511580016862178418511936207821206221043234124539259026804271361134271393490521561675048120911010377115712901330714262155341635174118261920820128611158242231554100534161387510851391117105111649125371332614901526416170175021163434307541671732833711602107368434154416274796831091111103611196123011327714961581165917151121822533774625393698372368279952410249115012187135114901575016442178018293195261140219431554103595565647328391990102271472713354155590615073282209901010611839121301311149615901632017228181101950203202199811302823791455759066076683191561067111905129013539143715901610321747187519136209021520224723352413525902611151372600348741295326120775183594181070211157121201318314138157421613117262181381913920172114122263113029033774905539610387130866958107117212140131914715901686117102113023135474111529563771418111959611302123311342535540649871138141917105201118111302267379145795765317518329111066111251210914723623324106517165137967810697211014211311220612082450370641115516510725511302903125456531617177125813693710106011372791330748051466708738283797431062112912421361014701151058162881712418247192832091721412287223167241462579126141827820286902967304913110132196113127913690482051418610972098120950107611701127413321451015343113727913141848205690632726081019293107011174812511335014681515916351761182741913120712120822804231602410932590262222779128307293530763132324133783420614723423904315590696073281319732105211431273113714357114421083721479549647710888741130251321248153386120732183209106107211114212311320614721383374102544367627175812793210901191121461313014147157516211798118431914720512190221712231471797219639044635181667790880491104113025132124815338612073218909821032011351247136711490153201691177251817198102039916225633124454051466166753872978101421138214134514975906105732878914210841176612471319211672313100493259026201737810019192108201197712813137731428215441165101781811781708284031554463546361387418706932102331122412511316414111157116861770181441941207062132221012373024137257912630727168287129593051317063232332683410214725073904422533664773428869152109011960172827913904177547610397611841950710809113001219013711428011302923103142655165537658600930110540111107124113163149015581651171118321996020902162222423773243181130241355149052046917908519214103211110126613171411015501632017319113025132124890514161417104911302143139447526673747894113025131260417258316110720085798201012311341241132121456151801631214226103701416451116486713148909111103121144292374675756788790811198611102307374905132695271045890911110861542107368441577166171808429990101321196127813901432015252183265329045395103861047137829194710671160012103713279143115901676117411832119512066211102250233202431414124983664171590625371118160936104711130121111333014351590168117171812519109111217314249285560666717083599010731111210126613377149015142161038173118361932201121141225621572758318441122529069071528479661067311278111217314245158066671088111917101055119612371313201468151437151240139048051792681792890922101231190121021337117912307375477353186797798815395611075111325122101323211712673354765145628671198131966108401190123211335149015321161111711071821019155206692151226623150244325276172274132914250511906727296841936104501116012713103214761545216770175871902713224411351456113712484691741012111521217713160143651579716326175121875197732031821266226723112421817227903904603554069071448540916310191147124781390145611537161270173218147194720320219022350233724250259026315273228902942330513175032110336634280147248632924706577266817107185089712107811812961350145071579162201717251853195542061621161229523847241839259026915271962897614921013904287555628779081019866104311137712501322314641515016790176618262193520121217972253023902465254126156279028359151252533141875145642717784194741090116212187133661458215371692175701881211121731424491542264176687291110109111931512311377744175732621147275031104665961372607321942135811657747486759411084113112881395143201542167117701183121992201350217912296623247241045251552615727962843729172304473122532473366343711472486315243391372140233742871372961337444514724863614375479651766818099010321114712451132121490159016339151245133249601522362314145135967657790846932106311196129601572758318447225791690717784599335104961124812462133311540217013791430751906717280171260035146658869071428519935107111141121151139414961567161117812182541911502094211221227019621423504199511506937770892992010661190128213182145115661694171286151279134964423566615571578244981104031126112172132691460915801660811812255382490591565671286852617472763614905454611713982359711062112912511366148415842163021540275834544791524169071288215997110225111411263413141141631512441675317661875019112094121263145421243706410459669072688909707107911144129613418114428336547415708612179685192531013161152617412903205421759069157318161996101421137121611396141038179723073754251598631792081559543103711770121651390147791577016701750183061512965396425358556190713081210974110711119012771342014411513301695179018132019802099121893221212310912490253501512663141410125539610387568150911031033111127413163472159061032717083009195103051137123113392143451512416247173218541193720312139222345233224862113026523591479155306907608669267107421173712901310321441157516520179018539194120507214242212523110244622595263227512884291058309173187332323314071512663130453951038651744489694391051111671290131314901581165617711889191287121426831241475906597960816692010901123121121315114591596016411757183219337168529031032426651116377128829191111032114312115131216143215510161281716018407195402066214472286234072454025662645517722873904103251247611077181789791109011177128413305141351511116471771186619125209021320229023539243725902610322756287129151303151422131736641425436897418620911010111111901212131061486115411634171501878219142079211312266237124842530317013882109171212034211110230036501497212532891138021473414951555612571167113421083167411057666125731816215221543904267510636957418883912510244116029036247056569677558659148710125113112358183215531397441570613957318162192213503904473595169167329810459587101327112101227015221083784487547864171518753956103201116512901382141021100927535714102534667017208417170123423864611585462157103382189521010111386113824134914325502662174788893291090113201251134911432151178113822533150452510164161472161332410645133113825236704625906707862843392561091117731281113822803170461513606327491814694361202903201414052336150713181191461048011421148029033141615205651750514724033147757416349752872911702290365441551626473298100293110145011130128961332114371591616127023120486151021612491326443071140263538941315116440715682061432128034042125169690739114721393110415159068179085799010142114712711318715124713324113524678274587011112273311041085416466790829693210781171254817122173604107517769073878969861031113391572503714123595611041222753103244865866861796811917510117116029634544905690613073408969901016719829037454475545670711285861121274137304495566817852810329961023611871231132061222753101474059562877782845910661437261338304365750671471258181137723603128441857563807185131243131072436551662473718379101101631128712561390141301513612227535241295135569071618435178727539045755416288157235131395411159006757378459916132225339145185416681708214037545085416627858479770101901170414728563904165906412724783297810126111170170821403754238581636776681319791103071182012981317014901536163211766181251951204912132229023861241021208245037064111551651072551412121633241135246174675187961111261535114375416817339173629033274782545690754084192471020611382113974905623690739587069411080113291220013417151247133241135246782745812399510110411672313137041905321637746683294110510115961512102389487590613307162145269390496151106263752617529631114815416140113121373904202525814622873174370171280310141156264575183194831040111561290138014102157214337064300565011402831315043657316151748386561710298344145105536113328734345105756187210903110413855476707715827994310781114814223613190411051766650733181419358142236138264110555661217548885193710339196236531854905761611272661472196360144751072635751811932109201135712102199029037141951246167711083921772217352478157568175408769163101251136121471823275317642735102611718129632414549511265861171429036046654161757406131261533854515756577110411112953181452519064173268479216177221031934525786690714487829111074011102110082813571412657356131790838910421021112901130244374143585376245717852973010150174121033904905534616327252878294911095115661107274137304539510386307711085197401061511421217137621418119222463702420653216517146835970101661201274132144965506320752872916092171172322111953292115129634912022539310384475108620876721522683142496574680199529035043705245131223634141025142695279085095612192813773499132290368947255558630876031106624633054731541690778185298261090116912401322475393217082927331498617082208316413861144251370643252686102170324913774604510186537704168212411302160349748611172215321542457826457121611442113974706556695170625632314741551067711781516279139774695476787142190260366414154163007921237296320214129033147971322453874686113929173110487255671138211135104908512061411138232370448351961472713814170590615073285109147101070118821613136425355268971120825237141067117627663904804510161522770323043761962783702414057563173683296610748120826236574487560161491322143141420054211111284738044112147246633244155106596132277366485116727533074186111225133561902454320111102460363311002155383490517018232735362313129631036437545612672031175279233204130112628123166121329173110487255671131214131354615716407360114627231204325170324913774604510186537190113123534914205119022863904775921131246635144245694173216532124500590611391122210835121322897378447510868741512706341412451051160027063260422817512810388441550861841522160353541091157250831203490512169211152763276441111762137396421759669815402513754116533969079815402513358471592196211835948911125211037474341114028303177472151281140234231354105011231211037141785108113227736648511140210736442705142112524739042535105111602131534541941677211539048921131211036449052321522770370424915629031284227154021352389215729037854289170121432074134514017012131348415757426532111224136046656701121210103204423211230211553904130121126132101523212533061128124134814211532650714129033146151128121553100341431220246315311312533341491417227903474596113826033541145222690792129327335427952621137261370844152126139120227340490522016382107338811512103231154171513161176286192111090111621261137311412311574216610171311811194032018121412264623527245125311266627902838411512132344141251127251311425911042594324845257706707249151270634147451331156271231020167721153904892113121103259177027032491562903128422715642172363490522012802115311641705966135671588977922510102114021413110411652681166219839042535105114422158345411241514245435931122233136811677215639048921131211031164268152277037042491972903128422715721023120442117012131318143259561531210331362411958221662262320847451281813217631134132277366485116772115390489211312110331413115227703704249156290312842271572463120442117012119347417413228739041294154022953892111727263155420011092112365615721263120442117012103341416154351186215139049431656244531741201147256371490520115622903664415566638188823143174210151021153508490517913532413564111576871178268634146811066225334844815139141278131374553551636613229639041465232140266310248091190248431104143141290311045241112213761412903150410214882485351451052551116267368489511361407540889996101134112126631114236132277366485111912473532141249131154593132290311412159214729133243551816186158213832581582138319715727832321362513175492159061281101277366485113872732264206114025623541415854211962753473157210837541120151621653418468134422263358190726291782287351641515101610811442216534184681299222633581121222232024113511162361137211034211892653202423219023883710495113227913307490582650716021073904177590635071428437968101811882513594990513561377388870692691072311042723374205516706735087611962102313545153486306711084969511070611350122151412221370849051066837751870693210113218921153951490511363274589093201090119301232137114823157731412169366842535222612574514127539045395103864771088827990109715724131064985906501112221773146464581641277068443155621523454108567667750151250332472253216188717314721160352432511362474183699010187114422533103481516061327568102129321103414202592761277218701946105611101522911367411551306413763912562559350435510136529534734104520666431412422353476157016673728217012641311042152376135713883191080107811110121292313110148721514916113171411837197182067214122772333115127063611435553065927128846912810241121112197131431490156431131213439904995543641712985797311090116811210521391714110158721632177911898191532056121176224123452495625212692275362818212920730806312923260114112353750457535617571578124943111221352417457256907103281499621014211141123713872145215940161201710218661951207912189622120231022466257526773273182843291173056311021472781314241038547610874387509950107911130712126138201430715901628214121533791498515365617295890910321041111531263113335142321443614263525364177136684396717025131914160510765671017012107031154413565364912112613413410584161207920821294181010071147121621103269410951996259114025313191419851106295768854095411312202312814405136407918319107210431190128613711445115451991235324946135248681175188941417250363411031867245039042071706213732214751216121277115723531754157512464319272127319470156562077618160940110144117791102122553706415305207650917023534146215155625379189369771067113062363230141083576377958852969102941116012107135614101927212832594176519464775683311522817372849305236110221753120431058431927221231774707516165679088431706292035746605148643145421243533475543153029631404965113673575091175279233204604170624135364865102151270633884415356907135170625731130453054319821923152481170629373984116718072903355418170628935884170531625174789691271028211382323491431525166274918595981101521153211382253390414458167067968774995110901128211442413814315260623577181699901073311797287134141408516563251512750313841131536628211302923524990547690736832966105011337120225393103844751086125713121130211353410201491212531166141271340490514061047142870191196151234341432592652796081021701213132224166561673175038909691782248131136495590622472578359128114721373954170132210336834775906392113121131034415180651746787191130102611108312411347014901519211312523810495511906907251811419901069113128843964151525315721303560441556695113122023129144155666381131215139041281141256353742171131257931142417413229731354851113122193145413711522983110413654926135717411302413152411559062047478529901066115121133249205261162625837646814972454390466512561091522139361445451416157766876193510951322653954752579761708790865958104111171123213399144115661612717511866197820107219022412345249525117626512766283129293090311132723333011362206366451517106417220881974010411132112126131114661550163371730253931038414152366101711082879242102871111012101138661443115377165017223186419150203221112212523131217902903190424554061037968229941090119012193136061418158001690176718507197312090217622730239024137125103126790276628262293530121313132363332341135141368261512707313146651060618073781020911210331115712927131015149015371660717219182131981120540214122262233732421225432651027596285629150301103313311708210031934100057562077103846954010702116411216513951412015411671179018461990201322110922652361248702512026107271302891029322301713171329033102342821912113551462510166971588918983710225112531220713130143515486167911720618797193120206219222133023432467113021137747915986508726288209126109011710129613123141007156616142179218106193802024921121222711130261364145157766677618359951647281377437526111302613682451557062127773856910201130266377476153567411642413750490565613075189529791108671123612971356141871532167501711189421913317529032314960590628279688539960107501169612661371482151116771763717972463314474515986677418669751054311582127717912636316746185124667779185596610731145124313671171210831154955804653271250890990102821100279135084247575612807908192912801010711613129013814142881580166617311872019662015617126003514665886907142851919510143119012103213540148131571627817115118931954020282168622411235402411825592651279028750299603077316711712508366429951926917110825699010207111261223613183149015920166617671890198612010216628731194553542467497601810709951043117911296613247145401549016881718918411992020662175022192366242925726902732128962987030663112132353390341011712520321476580465671878146910911081311411251013538172227913904177552768047908518931106361927266364849055569678098837922310361178122061140210533171490570663827908509570101751113861352228331210471057961757566110022663571423459565317877824091311026311351253713571148315651632177661831192061712450310245061540211135641875124626271586117029713130472251106667728822797011019111011290139814556154211747214322742005766774586271752413377412452476750721824913402663165468574161477818249912110741117812206110126631034815778679379086599610870116612121133514901510196219366412153569078708101966109611710125921962536390473055396103872268669130107321141125301390146015661651172661866191002203521552280223100524725266262552735285529561306533113032803366341153546636583113021131464148511065717618141922610596190242637734632554611577738190152213931304454517161417170842093051096118301217213840141161547164511715518681662506322246854526447770884099010137112101244113910141161547716306178421841193420150215122902375024442251762676614121708390460566646171308439781031111561232113371426611302653487412453569075398103895401046117291708292036642357496138779183191621083911708129201379114901565167021745181028113021063290453951038614171043835294511046811621297139014411578169517117614225138204977541690710328124958110115115221271390147615804165617187181319752090216622412370249325536113275348144158961157478419781071154817822100319341000512665407702869291651091111311292138221411015140163217151853519106207662131222061104213737914905177612171061816594110781114812192481341489579769777908529217104811141128913471445151821772157351466581633871208321932010511190127501344214176151621130211387479153486110723683195661090112531266135114661512901678917124185619112013172128917624132624144535690713285194811080411540123113796148621193414885101690726289091321051114811280413140714497153116102615125363190411566961107418689990105511661257134701412015952172536336451566670750089096311725363684610580463675184092251015711901224914221043434442251202687108984769901039216221873610479157296110766865911510101119012981355614782179266379145085575631715581079371045111311662731350432051761107508320966135218535394103857976307741486696710451194811302129136647075776177126114022536144757916907152890992110109111601256213901495213226631574765906612147231136641085309610387124813079561018711545124661311714126155171611117586173629033274340590690753989699010103211321290133111466155401673017951881119782204521151221216110072103232584208588264547298155935710916111071214113511431151036150225031904415540617714184392461176279133074415986248741887029261088811181213713751410631571164711729018150194962017021412222622310822414125116267062713828422910630508319532804331103439211402642312498569569671528556975311762791350842475416897248841897021026118941218131371475151063161311717018451197272069511442833654741524568577648103294591090118912518133611424015204162321616213731494905446601713685492471091611107121411314614831565162021723214814972454390466512561811128127833139443953186204771087693110361132121113461437114124839044125666327791830791111014301157712901368111222177314646455669071218451950104611343121352135114751585916717139181826191902071211731776250834904222511067917307896910210282179121443601496549613675482479168107111812128201398142531553616501732018253191472013612182022410234862412225151267732792125326863454412454416525796812899010591169121362137114451151251610911512512396450055126766718486539756101111124121051151279133074121557066672238909600102511170112530134114133158361138225334924101154866101178828811911510411180912901310217902583702484566623774085795301071150312179136514141152631112741328044175103690790814293081047111330123213901472116226638204355956427225838813602639370646015150624579082469110109011321129013821499015561656215624532664315700611076681359320101201112112871365145015337187242035041905436482731897098710511166123401310211002256312447015169644729381021941101091119012981337144601590115026663162447510906331172292031414797514069076583199661032211511266131114211153331772287390410325124761107718178979110781190121771378144515305161351711118709199020103221142622662380524472571267527902866299030107175029834714856533564967387814269661056111161231813204114023423116446551566102141240631034363521862697723115125931414905175613875388649791109811115124921316614471534163921732189019861113724063966453151166120720786196821051114612124137145115111516901710321817611372116361411705214626879085096621031111061258131021137223331364905316406747081079987102341151121461321214661511016741749618901926220572130227242319524727255726302719628162298723074131144325133663431352936903711383803972311121463904121587611667908103291701040111901263136614511565161311740618411927120322141222112347248025322610227536113727413914115146661768281709570105611501570273146464581655677978909121104711661222413971141371172146361468251706567486156249233064415906907668909201109611870126613121143515901610114027431564905132649671218477990103201181127413714418157021655175701880195822066219022812329724770258402666279028112938030643179121043904412566612127150844792221054111124126613130147911598167701791186619110205021132226622320611372406311497553640729981409103310971662539319044153661167678986972410776116712436137614145151001612017133184719342040621322290234051137274139141151466529770810295361112146392471055569675118579837101511205125321902140385411153063275768969140101301190129201371456115171613617147187001989203732196221212237111721463414405141641790859694110282159023313684527576417100840971014011581214113411412515131213122433924590546610073588599010961137129013837145715295164117661857194712045211022228211516241313749058936251741866951106611302121101192266348144152676115733840697610804128221136311641011538766275468167964210311140612305138041707247839042825226699278208690952107111901247313115144911511461612117153189019282113127913690452550696751866910410681162121081137279139042825692698782826297701012111571290138041138277342048715350649671388429138101621147128513392143215901686115224203341479759869075589696210156113421562313210410625145568171868819761023611402462311645057646627312845411929363774671373251380466510861747780287695410222114131226115127913104490541266671212815094471051119012345133214222154116451710501813111968205621112221123333176025393103842235906730714281069721101421131122061472486315243395797698715385619371015111171124113177615121673446431521269671068721914210311116211372262314144665906517791874891201048711760129813865166274131034905101656779582939333105111661273613910141101514216106177211814219312058617902663262473155063207318369321011111411256217702116379147854146667811662741310349051032650271488639362101991135612373139014453157901666172621870319662020221232111249331436532611716688209351095118312651320214232113026134654515776791753089096010661171127413494149015212166471751181311923220232111274137904905603654079081449540109011205125401387314120155401614691736518540195132091721156229023506249025132261475273528150291963065611127413384466578269107242817291461035117012166171260034147915104690741286696110436179127293456449534267734182269206170121093390426752186136190212935404905282632915402140375461541651079761902603664138583761217328709120101301190121321332114770158401666173921790243351047445906103271212813994910510117041642212398469559661527556875313732513804665108612273308872974110169117126161317214339114023423291490515261357908331913010141119012701333014130154716711732618511942120182132227532366247822514262412766289102914130866311063216816627413103490519366597968102950719629632414147551166177908360912210116111611253412862417391441256667261151228739041032512476110771817897911090111771278137211413515311161111770918901910322012121106122165234124782514811512459333544965295643716989091711011511471241137814715548115122083114413859266872383579431071117126201150230325541475716208711485109661044111104121030139014821586616106173881481497290332942891423260034174352528361767206151329673115147665125631723611442189390476581653174689698031030611961211313881414152211610217197113029235245025630634741892996103611191269813461417581552166801791231347246455168397458357151279139841535561675720481210918611302121378647435730610327908116956510351161127501320214232110929632774905192622979683109961051411901227813521477152211540247734141425216655721183691067104221186127132261453215462161501103621323508490511663179085091111024711741214213961415315995167501771418125191811131210783210414115266657072668759556170124593321490562670796875593210483113212661313814361531116253171181810619132204321731227233571122275377049051032612127139814499010305119112111137714217155116661774118775191120305211352211123842446525811422215532194581590652751989359773106481190125513961480915837166181751183119406148255031954558515161107508182692661080411921243137814148112027913984845566162251838646654162827125814914182702341426530961557215834599410431178122061144211837047495161613872118669741101601150123201317147901537162451752187291472510315164515319617072308379354103711103121061314401451156616311715018731198120596179621010374141440526462667621890995211312309336245565756577949812194510901160319672753361415457564176287094710755111141215513167149015811610417103018901917720902184221482396247825921113727913307431557767367382810449951019011148811020279133074774531962017688741978102061750221386466528267579682059665102111431278134651481113727913307425352526821788389098410148111991280813197141171590162621512791313842535666540760988879155101371132121088133714472155161691174411851019536110821143904555966967837896996104111111512251139614961541165301882903128642581962119313741305756417668146913010137111111290132611372876315443751166155744381591191078211741128213731486157616461798147214733247915299647714783297061090811102014821137390440151057613117688569111021111181196241731014293543763777318474946010371140012811365147411578516511751018171953211312690387141245222613673581039293105111311216719624173714610510326976778281399116108211813126081351147411526169817487185619110205021320223141512791310849054636317746816191711015011901228213810144115901642117921856191872014821412275023562443255962630215127913307495357165976284539941312426373490562629737890971510497119012781362141214135043254161047140835099010152115112222137361413251571216173178114221593352412551686677600841791251028811130121113820149815191639717797183119162209021797223062317241552512026672712128902911130861140246231164454511916957738959562109011222129401310714102151201632017951825219021403130430559667271968479222109731114614622143140416754761203790811419901010811471247813901456115371612701732181471962201202161225412313824772254126912790283191836216534147851406907132896394110751190121481312111319349058568417578105953110166111651962857325349159067671011850592261070611401247139511416715156169617673184119212205121402212923188242722579126307274328147299913090317733219401708221231104193510716677638708910510531117861285131080113026523514715906124766854097401071190128311313014111590165011786136524633904213596623674188472975105611139127713110142241556161101750183201931913229639042555906141724783295610521132012671481230177023436144757916907152866912510109135241390453954769071032817914110105114252539374949052416143713685492471018121112012901310321432155116661711181317192891797217083904655586667998815594710451111551268177627636143525283613807418341996105011135612561314414311521216951739018901989203962190223711422311366417854662471068644990103211190126531310641441157516901746183719350141217083904655586146711877917103811487121713110145015320163141472155139549053206153741866979010661121212115138561452156312902539310384103590690725181999610193111912976139514100155951632017171821119333135218535394103858163387120832193201056115212320131501570290390495541610677865974710761161124713157147152591612217156185119158209521372211872395242222511026651274128525294630663142532463390343213535364637903872147278733249057664175981719101310107117312951356214901522216411734181501994020107215722791237142445425902612127120283202995302521860215536074615641637787286891361049111431288136614901542316647171351812219662025321268228123193249625202263127162811329128306631123321133352343711797278390466590676741847693510456118181212413247141611518021681177731831816627413884454514161457478244913010167113121573283791431516268779789895761096112121257131391432155116791173071890191672012021861228616621293844317590632171781479125190271322447085837661735890971310961171122241370814961546116961747183519902083721902215214127535314577575690795841970107611171266137314951523116940171071857191062207521773228116102106235804815896177177847979710981115312561139014140715485167517411837719124202472175022112394124263175027413512466582679179881539561101301131121521311514205153216861790183431996207902112322612335249625119265127662812862952614122023691411056667237131831196610105011110121521364146615731612417139184981956201502111032233111727413142444451206827172812095121015611411263614912791398415355616827908915939410751177312318142271366433851126103979081032910610971130612411332114561584168121730211727413974154159067674181669566106531117127713931962417373045395103864775028136990101211171211013158147021532116314147215439041475123648278581729120107301472491318249051032647790890960106611901246133714350196241732414905241619315123113140424951100623171108111095110901175012442138014293155261721733434895166612077301156279131044905463641775890914811212857390432055916557968479124106611810121191382014981511616247175221797252132334572543267087418180994510134617972474327741555157629275168107987104031129617972702313941043545680612728538545765170615171358289911010661156123113201410621126274137649755147641715589091021922133311047915103661427107489091032101212111391267137514773158111262292312864515750612071178278196287036641215356907468909811061611106212711320814804152021635174118244199020102165221136311641031590676171216890928910690111371279113981451159521679117867182361997205621187223223512410622590267732719014727137549055864517908609661096118701266131211435159016102148322923904132551642175683192441035119012661341149015901674177661847199020902128011312107831214362515569997518130932101064115812702138521419315911625317288188195720537218522432354424702513126193273061652903539410385740641732181791201032111553122313120143211595717271397245595119690732182219561015011314147271353245151056667328259710901121712141371430015297161141775818411932120562111022781776276361421559062927418470961410411145412371313314106151591625717691871990203612190221282377244492541263002765013002663741435541690753984799010103211321241136614700152781481460213315221593352428351906656162290341445459561407781113321803951417955165107147844016623423904625906128147246639046253267877854811872305313543125856657071281962536390473055396103872268785912510181174121033904103255061097908969931019011865174728739041425516306768287941104511177012125917472730349456510969079081619199104111678190321103111645405132761657262870299171011511549121211374114860158116706174718711935204501582413253430811162353904825216517193833691021412170138147405453623871451708250235844351002635875718930919101111117129701972361390484517690776281210910211162137379144557763297553831797751088211755121631144236331143295416172741875975210901114012511345143215956141250734244905137612577867613221383524645656110746858911010747115051776241334249051526907315890996010321113112732135214641565161101746185819110207472160011312433473422581645371158749138105211431273113714357172221353123141105716178785317072131325944851576111721388195321322741334941365139111529531184905177617573391322910352465541865971398302910217725931394138570662687588793571144267387470653826110723389098011010201462266364842225108625171078865990105511961240713917141861587216608171740189171987320871216542222223810248125179173251386414254662471848120931010331114931224113901488515320161161711711499213346741165496189425735047505716511755896984310124112221266019623803120492053296960735837199110351136011022235312041335142696750514182702365413151164407728889761073111152123911862270387470151410611179088049101615322570316147541961517968719901086111102112228073224132513566861723303741417651326155780016612743325461571611073008650162295035042025152654719829033424905152690734181559901060113291241131421140234231164465541640679182119611029611202122321151259346547025456967894147230539041653261572238909100710140311806121751333911442113164300575681722284397910144111021253511512451316548045702645763617124063904151513161171468101940109011330127161328814613159016818171121874814125238104905706674171181059371035117211472141311542725906707778149115101371185011221215131724965786147730111512198364241355147761741279217135774921177210023534290557167027166895916011442488381044151164171013850932103811321245131461478615121133247652126115716585719921031214223613184415051066907103287761622170319641115109068753587069300106501372214340145659068071021772143150449651316104747381069991090118721274113156614951558816661715215126631142125268616877068300965011191250390410751266820797789097731056118113521216332416755168567140785193110636167327663917490258063276311112773314686517068773784919521179129834654845230164228934914845666110021553181490570763671028419112010222111136121621349714961569114562893441411595436510759619029631114735596650715123743904773598669113126903165451595618814721066310647854561062168211391494051616222713181119617113421243141410657816168728214122503242413253381412136352431522063057111842934710891148811302513714358540613273781681121220235394103852026601711182361102521423312544185148610177418146117274139041425366967103283691710109111811629274133549055396103874781089135101401116712521372913721003791414059066574878329901030911141125113206196253639047755226666714181721151211320245155261467318162125921653136413152266206148146021331522144390475526865277181050196239035042415781242290317545257163901253290322245651162117181120225393103844751086517510825613123633241153864667262820897410128132245390432051681783256381141425657610211320214237064773581125324013121480455261921612753961411055962967102154024433125414451806149152240738044171511161411562361334742635526686114025313177414654066657296827015121234147756666179082969101157231350741105666617471815291021672117032144268551669915727035034405644115522073514525146633913412893714111556816272241321249655761396160262739044545142128921873270117127839641661770277031474861112124223155414251038647778812501140211436243125906804713619024063564715112690747111402129731104140511062321513290344344159564371021512523232151215332489757864771088652148826735145105255146281034141465472679779081779152109611781234314727813539410385476108716314128273324141510667667318206151256323145965174156231310704865120686732183794510406132290324846655661171258289151290331841120258211262105039049811060212911311259234147759215402993186426659067737129180027134514125530115127063414510576109615126313904181510119024543142115829031744769563317702118321641301140296352411151511312872396447753264827788158977310921911290322247505116124710511172232631634175513861783296379814814972454390466512561091512903539410385442625619627903474512590612741281769222111182101329344758866679081429901030711100127131032147615452167861725018412191762026614502412366449251306141793852297610661142312162146280310245511180241236648405115654073008723971107011186125871377514811708214039044635321617077198679751077311105190226239843751070616574188993211037114112170813901460156616581781187731910201706219379743075414624777587739901021011811662741386049052416643716189592481018451190129151319614976186629034149055396477908103291241095115112901375014442151761676611302820398412975820631726985296610601114712431378141481902140313043055966727196854094110262117291140246236243125454610571008409990104531110121211013232151324633904272512161118732890976104111591217113101314107155116222179201810719562018721131227823952411761540217431104585590627275598379872102311791123113206196280310674140590666732185791062109171158128721372144615631170623033171425525961767222141270379146195512651719888119981015311561127713104145321571164117134173626635394103851416456750819094310482115112311310361692290317014415176842766811091401010461111012175131431410915110162971713121817019342090217622662311224137611442413154325470696749687594710116113212240134714751575216901714018511945203221101617082840315544635463641771845693210511113812418136714511551016255113026639845405520654071838419561018711311221213951410615721161421731182061712903539410385626546716787669870101681616250346451955064674848419429108711466124113510145961706247431694170514165277181220941105101159611222791398415355616769724789096531075011111212413133148279133074151547064227840817091203105161114712343170821403514805666108717383192121096115701241132641441151671651171000183219951204721108227221132753481441514761157478419781071154811462873221461556061417116870691141028211471290139014401179021133214144125666197166685599610167113112869139614371545169981145283320245395208610327202823214122743904539510386177125810914814972454390466512561091412781353941038547610873281419401015011797123071311114958151166113026523414530590660766826797421073711901210321341147515520169017539184771942520902113222706237247072590261402751285102925519628313130490590660766890931104851135124113561418715511612017130181167170825083142478575686784852493611708284031554463546361317791830791681071115912706132681410214122023687413055161096711185469401090116612321131114141154316134617951811019720320217222128231724131725289113024134704775906321747821594110190111212371362145115473163217411834194120472152223223960241021130265235147159061247668746971031511310129013621431215110165751717118112919512066213122292317724106211372791330748205986367718811941102191146127071370144261571634217706181011915419621373423411658362597712842392341014211283129901379114977155181627815127913138425356665407609811196861015511371245131311672102389469559662174387892061163219335841215483646722681287922610891121212108713506144181570216103217310181038193332011521131222022314424512552126580274412856129110301163151325733141341303514063613537403890391320406141802426143674490452611672791358241655119641714784739120105261190121021389148015225167411778181461747213138648159165867518804911010103011387129013142145215203116661766189119512080216622108232262441257062632272812812816727913108415551676907818104910301090111771290138414148159616781792118626083814147518761877518319103616221080379143075110628271148848299010479119612141713814167154661677317921843195102011382190221032231212241392549265102769619272602375470159516151722381109103010981119012621329149615715163217483183219662061216822217023773245625102011382465358241205487653274385259511047011901228611312923171412456661099741869197101161126212147134941151221231072463254666138770681071934010321111124113100414715218169617773188116442503320424352086188731822093210216117701270131771437411402156313145151716957160875917110301111061212113106114165152151637173391837195402090213202270123782481254142666271152847294130783173254811402107341410459063417427844391751033911472385379141708590660766835494110321183712165137561414615471678177461707242136143315906847636838291511010191113812548131511491015431641171911810501138211319745252216424788890976101161123512711362142915291641171391847193192065011121973234855666104778129099010901181812279139014773158119623131548556661807122890910321010611351290136514581567169017861181021772217351466574167307539810389761090117871230713110145115381648717421856191102050213202231416221080379143075110628271018706914110138114212259131311489315804164317510187561373261329244351486907321837996310751111612561326614411514616701754918321913620902125622103323115246525322617727328179123073107412051026667831818717972983153456151046437878110992101711139129013247143001516516526171351878175025337914307548067375787919981048011139129013247147701510121666171711861717822580379143075108263347418870291642103911163812122139114761548169517418181270192412022121750224223321246625771261352710628782993230874317973253733903410235663616037840381871134214437816952893356475111217379149855167477668410991810206179723073611475583761871750298323244158866671008187115122873904103251247611077181789791109011177122441366141551542716578175025336648657916987578392931108611751512663644479159861537561845496131090118141228813797143071597616123176118451191932028821556227518729033154155305611179087309441101224111521211113341147511712713110467590620771108679351076111451248613681570289344148056276967257890951101210111111226313901482157016162017124182631990208402173522623232632490251602622027812896299030503111723213313390342473511036113763538903928240173415142994325944167114129035804615418670278108909144101381182012414131711474215131161321767187911981206621110221832348624681797241735741954536552111521216332416755168567140781849141051711141127513702144591596612212563314365326667174788029262105741172121501363214613115227913984675487627177828488927110113119261296135621461115791169017183181040191216206121115022138123115249025477261272775185214233964782511762727116820196610101118111275111525803514886551655179081032959210310167279131954665256612773391112267233824415110613872181512791361241105253690776841946210751150124011396147515871675175029831384820523264178786692591090118721227213721415015507119027023931413751068665725917502983480441567066672388106291001018714127037914905183610407518809813106611189714223613357490551586881790888916710721115012202123424183190414451506390794886415127913307410751206102766841493271090117612411346214751550168017101718661932120952118711121737914985976667103832793710448112021512791330741075120610276685409448105111301121601312901466157511112462348744151616497718887291701086116701220219225539641025476577503891394761027011371216113138151217332384103958196191216249135245305667690710286692301090116421296136421417215642161201719518721910912049721422225723843245062514726127027540283129933063215225393504489510311320250366441554469077728479120110456115651213013551430115651137626633414951112741388417659061387227863910310110111471271136314539151038167717661815119791674222735744454561369078148288969510961131612165135261477157501612417661894191021178823623709465759986104276889509107101551122012107131808146615155162011781187519982047721341171263353941038577666795879152236233114549596715332683307469457236487722781381512791316949251496667148669186107011170125701317214580151101619517961897194320802111522662357124205251021120625038374905305617817129899918211081112021258813411410015901618317130181701910020902190226623321245125206266227100128729206306231201323233713466354336596378131322144035148051926327722984199110811731275013901419815144616950171071851619147202091962703106468530761327526842193411712903539410385129061207321878899010321117712661312871425912062837370246305416113171743895795821028011511253139114661513016801792918810191312066219022132233422432255792632277828312925130323117111302870390430555906417146847963103181110321271319614131154961647617661820519119205721843226123886249025132268422777428821100211031524211537611073058211937101101110811221113961489156616307176491845419613209021814222882396244462578726774278211342101036641205227670171698808953910220114112901318314168151761615517555184891931311137273531373477566695779114026631131473551763618379087109106102511142121801351214161525616951730118651181727037114116510461976688977106611110125013320143151422591379143075736239754083197310471137123511115266344141045103069071328869407101451166124471172741310047051806917165863965109011761251131241141551577166617431859619303145279133074166512061387280856921710511110421283137314234151921612717537187019591205121470226422313524315251212261402767428662990306533190323213336344543585336791373073813539774408217012103379143075906183794863985101681166125451311014301151161622717129189519547208421109228234824772566265227320281511134219436643015248614171114813892801051113111266131511423815336164961731181137192202041217022547231832490256026750274892831311127413291430155267071398115091101095115512116136814320192229636647975115631671108332925910107116461229113681414681591116901766181064191562090216522902370124104257502661527902864329621309031125322973380434315352933624713755738110391714085413094219504347443324580466647791489849153505615113552132553211541021111217379149853165517628249661030711514126613511466151801615011121737914985316757755881869496109311371261513351416915228169321790218511941920202214972231231026151279131866454351246296766867979110499116612183135761475151325162101710201512791314149052176643776683192661422963299441851203686710188119751072111286122581112173791498551674724185595491051115091214713461458715110164117620181551154251315042965666367159890973010901127212590131061466151216101171331878199020198212312210123331242832525826672745285921911290366417157261507781572551390422759386216710881319140210601111012842136181444115141216418175001841192412066211312249123216241082513726183275128662920303001922223361242165626677751486691901070411121737914985316870714689091461014011511293138111413515371612117901812119140205121802281123145243725484262512737284672916730723113232277337634133359636703741238147394540105811121737914985463673179089819511087211981125411337145301537161412179321887319212073215122612378246162545126756275142866295130663140932258111217314245258416907920856792201037911149127881351143211512416661756218511966201502181215312305392413057065037106814391821077116441213313901419815571649617661830719312050021902220223321245125662612862725819222233791498568630775408709620102611125122421390141021566166717451828211302597366412657261507418909539104711901210321372145215320161501156213035141385130631749781109192103211661210013170145115701616217511851019255151266315041012553961038772830294310596110023883881322823514595990613572118388970610320118517032491377460457506273786110421913414640510326135718184239998132272931414715596125790824192531151211673414142523161107119880947103611901228911038210531984965277651079689095010161120169729363804765102114429031424515264658477845491610143171725643364109586413082137386475416451777088401112221773146464510862917556181241236644451108267315244725506722732181889901222276336843254569079289097301021114027813193419654165327781959114103031146129013401425117012550366241205141612674028184141210203904136532649731284841420228534774141575064174708959422173629033274750556612114202503190411651716325113424703904111559067067531814091040103921187122611372365370644154464841142290398450530161341161287035144252174121033110466537680172278909804103491131236532534415142561067718909861108611312313153744451106544710181231412463167444547652797381461562186312843558726542735890961152428936604121058617062413536480510699819029103329410455206134710216472133375045656711752413377496510166116621073177490535064573058135931210239119012681335149015148151290375049605120671735813297101411120112171331911402781353941038547610879084659521047111511290131038137321103414202576654722281329115104311113812123919621013155421451041577256365412659061117312156223631444141575065678401522108378450659863711562900310324165533267507508816192801108214134342025476451715582089100010384119012691139011349290715912307172622711752224219225363225157295320711482110136111112120313641150111621253904101153029781791245390412455122115726235649515624531104282559618132990370647415510677101915126313904454514211361241344742475966787132875092181782171390410154161441309245318061962123310841615331196210323412431619622513112474819621423367447553612882142310384565138657074181119615135242235224890525963911701264131154218513261317131814693661128124134149451056160138728631314325507115021353695413853161080751981073915016132647390429555906207537886922011382770313142225566117109818111312121367141754171138252334244151466343137021553217490569115121243222450019352903714965906227112126439641210541269072611677296316482057476804711219621163701434754164067152810215262277313742695761491143727439284905816177120196275370143425155624972511412130039043205801611573285089341196255037014140575691774188681557212032414247518266297751812161121254839041515476787840115226439041325966787147830111482119317458526211038263732404137196250332047815766190713761367241366461590695796081021372510311046653768017618909951096011102177024134114791590617779082969321013811269127131491505273324455146610661516216531214451511819262131396146005227147211303844148532617214122153135490530764772158519185151266311433957066142753111312820397747595570675871478111962911262820330749051016741714612521429231519023003596144923871277242712472340151277332224207141235390415515626463142424716762673271112627663882179124539041406516815621403414251598675171022823441451058611781349270634144915316748113323803743156996777170892946610411151012596151263139044545176116624334474247515862477773892157251637644355106596153021103460430151186216713017972983924413555104619074781355947105271190121851390143201550162511743188219265115121133844815771159429638243151036696737895111112155311214755116672716611392917311048725567113825237141325906877580117026631614164577361771522713904132513565671182339289110002121345145625222678737814914122023571474257621271771130269931414170590682314126863125470854164571468106614122023541432531616215282524357545157862551412737390412105320641745881814127373539410385326317222141216936684222541645743614127531304636595652176558152910214123534844965139141253632054125590612807726141216931043412554881412280335487153076457161141275336412105666121766811195861572217316149051426171715387193061102524183148410157416957326156231310704165579632173784594061572820397747745606750710687669311020612992983222415151846767548222968105461962101315542145130113027023211412830316144751016147216931204521512113324245341145231831471706224535571172214314215402553524115121033226475651105241381441525141272231224415211178321103414220114022063924811112422693536113025838817012132033004415132014121008332344751019113422113904412520762631732246231241102210673842191295134145921450270232054827151215332411255626491776841988106611812901315014511553816321798118471942120222211402259239024247255014122223414500114528373841662903904905539631714608896932110321190127613511476115661612017321181026151279133141625839619671378515959214727537490514065175388329981105711981123113107014901513916321111512120390444651206971776821493210551196175021117390417155162227118141992108301112012107131714141159216420171241390453954769071032860979110791143121471336147911512616161179125213233457254326327141851922210137111356121113141146215701164121790181032197072049121592290236724507251112643427251281129141309231511169227413446196217134111302140310434915220141270363443590617871161265274139613226073219421358111572100322243254161401572145314642201540226352412815724132224536162211382943916221134424261622730310749515598190214437024500157211533874842162211310614167162211320246111622563764781556212131131152264390413259667874589719102615882221138724131310193242322241051170629603904981578148821241100236390460566640611712706355345311129023734781497216111552653901110321673457437115722173164108751596268774017352486368456524168001140259390495541695725417321038312141450598115162165356484510664173208270197123393869490554061167208899011842413106414653886706756833011122217731464645809612771448149922111552207361410785821161921231424535335134021032313746215826110724181049304114021103110144652701613218432141205716300114026773164115590626411902713783495611402321338249805115690726411122275319047157836956152234231554219558169075681189740152721423116482568064601190271378349561140232133824980511569072641112225503983121825043914205527652770281209861103361142295131154905113632711872395011266210053904754553215223363187453557568287308111325138242055107650750281448114221463570445011902713783495615223423155411352461587375815791140232133824980511569072641112221463454983152234231554102532631745815992701165290317547705706907520114029963762472859831140222231204895524061767893878399561140214532274773580018932783395611402321338249805115690726411402143314406598117292465356414775130169477441362281039041075416907218890924014122023108412357801122214431084237132216731654173520624715123743904861533615621363904282511066578138100936015225033204786530614722923324245986325114021073442411559062641562320319149052401562130032384709151263139044545261190221431944124510067441329114023821730219311452941431237731231130254031281148235638824139132214163904139116429432024375126761391103828823152196211137174110151331472706327143061932423263411731730219339042415932173628539042445906251193242326341173120227313208413331932423263411731243230136011108280933141073193242326341173181321363103433119324232634117314122413822490524161931932423263411731502903116413111282143222470659562991932423263411731106290390453951038650756811990103511932423263411731139029031647121932423263411731112610384414855169807518123799010311115391210381391814311512861632171521932423263411731300217131207490525161257111811911932423263411731782285131424551521561111932423263411731846231310141205757611173785419324232634117313602370315841396519061831932423263411731710298344147325863701161268368498551193242326341173112626813181420755041932423263411731110821821932423263411731136218136641932423263411731136290350411156719324232634117315302110358047859067637698544955193242326341173114527923320470561461117177837954193242326341173112625483331193242326341173135221315143251511932423263411731962106350419324232634117315411932423263411731136218131902193242326341173113621113686429719324232634117311452121131191932423263411731214283739046821932423263411731702614311141775376541932423263411731530211035604160053886119193242326341173162321013222471059562991702257632131100261237281148623561702260331032420414682673631551218359315162193103611822176341410251761108241734141025417125622501672429190245432011535290312811762903892111024603907153021163633110521553914730132232038749051701312230312643752031117281312761842219381477112202130159221033197121243378420613122363964103753769521322141313241321108214134141025141190226431450153290019362941572128111727351312230337421115862401152245833621289222512732605113221411535290312815412903892110824023414102540219021463104193629031041312207337427019627831324750578018423563110458951051184220237124491577660471018853970416821241130251312848981245241355145651861540211131749185849113729035034905153121729639816392115390412916392502386170621323564951108284131474650173224135461492211913414108581811082355312244775476108727011102513864632547669074183195961140258033874785147613761732241311641492273834141085365136236131894595145065611522136613221083350173228237414958149225393904128541610872141362361315949514769761732228234414662149227923909441510864871108216031325451852661150210332224105111112201321941301622230336459651020156238132701902423316613121153324341149729032024232178925533491415515652367311141178114727023143242151497277831606111423033464150510663177481147251351041210516417352513510425511222513714905433129422753459417014825137149051026141121125039041025141148251371490585369221167290398154126115127063414108520111502103322241051170265341490553961038717812591091352903539410385386466717811095010320113141112683838411435996177528320915011127413730453951038690746585295401047711110126011315014411543169017103218471981320962147229723902414225472628327962817291703061314132510337234433559636302135290353941038547666767382781492101390428755562877908101917101501111031233119826833074244581616371270895987110981115012244137514204152321472903314552568633371508533926410110111301127111351145101519611127413974110581641274638903990101402114112287135714661562163261725814729033246375906102766871975110539111038123113486141501590162311790181321951920537216722101123212249025791262382790287629544305731803266331593472354336596378121902701374141110566611017119810469351041112041227015626103227457451506301762870915510563118712454136131490158141628817695189619750201121124221051156214633584709582069871208861299010316111401228113277146181525716108217107182681935205216722952328424111725902613727804116627131204170513864271668970925110113811104912166613133144181514162411766181266196820143711672313131641505996377908791930710108112821215131371478153711712613820498551613707183895096610471187129013139143715931681117414184541990201322112022155237624640251832673627135282971148251366438510326767452810496310901144312190136561512325367241114566611017119896197510811120412270179729836843015676457291835791241024711751224913307147971530716735174651867191022092114829235549651026477788128791221011271190121091379145901515101676173321845819540202821686224112354024862559269627837287732931830133131903266331063344735553696373238511391437117024131325490526266471076810909142101038114751282013981468153011675017910186619431209021321227223706249412510511412943904147590610327378909251103211901242313901413215511625917511875019110206621280191246831104415541637769584394621072113112201350141071158861791269833134142566569674468131966101111109112931134234233414496514561557454814591861014211202121451357149515631631817247181711918620662190223552330124104525512666271162894114023423654265516069071356894946010215114491273613135142971540224131104747534362477152853929010473111251216013901413815791164841728618259192792048921412247923155243225141426105727662812129282301083168732542337913498351353624937736381353929711121737914985508666710483039476101901190126531311914901525716796177181296199020722112862225817121503364454532637071108320990109101166125713941141615661643117901832119722070621941221051110421703664136544164587908229113610411166127213180146761551166617180183021791211723150490516664175584929511049211321282131351410215232163111790181671922020572166221862312861797211723904166554061467718138989810307119012132135114512157901614321771872194320596218121170270317422155656973790813295110512111701270135491420115520161811775018533196820307214562222236624427257732681151279137946653076429761842297911090111771211013139144121546316427177731810515626273664124519764371478105966101271172121101350143201531917126003514665150641790853994710901110321241138614901569161036173218111931820372170522322311241702537266527902875029373072131323211331553461354136783754038117394340147415642187435144664552463204715017126003414791562612071008540914610711162121251352614574151681661617327187081940204421432270234824725662620827902823629673083331663243331863411535983619237152383711112173791498570269047111886195741016811616123271346714235155531651417661874119462096419221003904401510567917988106910481032111321275313661411615661657617223111217379149857026140790855599010165112361215813661490157081614017365184451936020662179122982315024797254142617127608287229433059631812111217379149857026504732782319621024111201219913750148101590162211713118701941420131216622128623258192225135514625246120759587819701058711409126613170142381515716414176418103196620307217222812234324596171260034147915443614771802866915510411145121501337141351519016110177531851192061752663754774531969677184197810206117082147358418151206102766815597731010518021460316541235376877908669321106711102122821345149615691156262736641245264635761818499010142119612110133201432159616451781011175215534014237592066676781794011032115112171340114451594815127913794665307667790882214222663111345253066517668116994131240731474162568693783287799010131166123071342147815591671710918719703207211025226723422249025183261332766282162995306953145432613339034814352883669537963810103966401654110134212543674417456646324751481749665045512451702653414905539647790810329171012511109111274138044791530769073684549901026011671253913411414401551168201796318961960620199219022662352724662590265182770284872988630903118332303338683446335723631372273876039114047413251732513422466515567578478909961081119012837137731428217502983408466530769674118669131106611318122041412619390495576107271568110913310833116612663133321472923664110530161357121853091151090116401237132231410615661610917295181101990203212172221102350243202531414129236641105301690736834191451036211746123431349814218155916133173018311986204521622211032315024472546226327271391284729116301253154332514336634513566363183720414512340379148115906260712981468991110901166121064134121466153071667174518282179724253236413959061777768909209108611371273139014345151716811741418778191102023621422271234724786259626116273082819529147304531245179722139041215202625371281881974510791112191213513371450315901618917103118820199820253217122296232581712600341479152386202773387919307109011361245413901412441593316170173718139191502014218225723976245302572263192796288091902811331486951556967543831945110961139112126132391454015311640615212305321249053456907668750998101461131122511312657312443259063107193879901021711207121081310714318155151612417189187101975020982114622312326615902791390417753136808739828698110773118115902401370141315222630171518300913110611122212110136114682156616202172321151261939749052826695796875692110106211121737914985508666715868190941105441110341251413661451156616812174318596137248338114117566623772368679451032813124863102428251086897102889945101851362139370643825110635764689729605109011915126613456146031510581617117175187661112663741431536632711814191043103521111123291328911126637414315366327118121920110162111671217613125142371569316121176618111195861112663762424453676357143815998010351141129013539141038151716125171091112173791498531621077908146958105861186128813110143071543167417901813919869203272178225123503246825262265127510281243291430903111232142033145134716358636883758381413943401131414742591439644195451504618447830487749133151275639349058669471018709592101091123123613756180266033104375102656718782109122107211431259613302110424713904725123690725987979115107011113812221135214213151501687175321890196020662135122622313241132512826117271850288294183050331683223333234136352593648371821385039474091415042904366449045320462534713048507496750104516752371125323135544535582063077128788192531071114511212513109113427139041355726123712087192191066119312832139614446151311666171118109119931140266351411351226687791852591351055117212314137214128615258131212636641205791670760789099510761187912901327514511565316582178618511966202021300192212636641205791659779089598761090112751211191311014865155116487179618491191472045211058111217379149857026747568865096401066111411215913131146411553716111177341841193322031215522382375243725452610427852845829413023831373262331703451355393670237912382653937405274120242338431054441456714614447414823849790506851665278531225472551505678157254133204905786417332869394881079111110712631357014411523816514176618741194912072119211121739347025346568716381109511031115801268133211437154201637171271837195902097213722471234602475525622680272952837292503090313963221833174734853566365137663812863925811121737914985316843714781802966101551110412871390148371561168017332189019102203391702653414905539647790810329171012511109111217379149857065927418319636122225413124466551654374183196361512663204791559769071078171911610113114261707213131164181511614677081222911010596116112296136614101151511610151710091866191832072213122292317724332170721313150453529061176283129611029611661210113235147115621624179018643195492029821421229023862410625532615127592849629138307063126832102196297131304691511066677538179941041111631272133114291517716106212802146325646651406727480826194210225113881112741329143015526707139811509110109511551242132251464711121737914985356957110860995231090117731281155226833074475590610276681409257107901181012901351145101559611290290381847105454661379088149288101771126129013454141241575016124171051181724723340490566649473128508922711121737914985836342766861913110150115312290133451490153521641176618131193122010821342226623571241052590266227312287062910530146317913298331103412535188361166180265341490553964779081032912110201111251210911127413572490514262977135844691551041711981220113454141101557167817901813219120208612110218672135371415554761771258109175029103664431590632177287069941101051157027913854643554067071008590928010881134312721357014177157911672917414186619722031212922177231062113021131747915176517557811195810651190126013142145771547716511751018255137256138443554467077281509106411302513477474157366957136824195401066011411214113104314352152121643175101859611121737914985702670718689095610149112181241139201466159131611317790188101990205121510225961782213103157410385906103271416890991010661193412661373114190155741708220836094754269387478652915210130114112124136614810159016721796186401972208102139917022343358413853596717326866972101501171123311372143191551163621780911708214735841815120610276689697110411178122061750298398454053076161711081839125103111251170826563495415055761537570821191161090211159121361350141131515516451711118103419576206621612217217082140375450851750690729686694310321116621216013511477817721553214147554167072140875980101290116612751351146615311629171771833214527913202431563761107908124929610661141812947137114668155391610381710618362193120251120229033244415140689371098969762107111113123371326214106153621631172061112173791498531649571388379102101201192012661396141901575016147174518948124429034144185906132751842197310477112261220213671412611541163417312182751977209021220186281636641915702614740872981210431159618026534149055396477908103293510121114112831317141101550163201731411127413790423053016156713687294310596113021730253931038414153626199735685293711150241390453951038615674187169471060611721215013110314331171247135347915307690713288889391028611811277313811750258347148565335649672188503912610387114491215271366147215106016621117279133074515806589713084292181010521154012538134314580157561611017661828011782683307429357416139772843959610812156218338641445750656714848969106106811156121301331014125154861665517454186131990208142128822695239624825750261242710511797230737354465567610272828695996107811371141294390414753267537668969106106811191213713721452153201615011032663103432751316886717281109347101064111331662313364325116116766857692231112173791498551690778810898110901110401257135571459115169316131176618128619258192213831084535572612972048102015882663414980518461037244881192811096111161230813195141471545162451512150736641101511969667908129699010721152612881141210433352412551091112173934702557961527280855991121011011514126613262143115126416901747318371986320322151224712339624107254562622276628962948430223166321843397034195353136614371303866395224076417504224217822108238942625398677442839893231071611104121501316414346156516790179861871990207121106226823932483225962651027662811329353084413282903518431548069674668110966109111751251136614103315246161041710318661980203202130518821303904889590618175181043960910103611506128813701486815444161111789185119930201332196225102366241132535269027246282711750224136649351016967510866931010125114861210261335142051192290351845705906737378146291347101651157127013438147815318161651741818930191332013121112122902354224265256542612227398285729117130161031353281112702706313549055356967304811593121035011811240713661431151401666171911832194120408211732266237624330252711872903315487051206241720883019208107211319128351377414271112812393247477517862477861175266375477453196588766811947106711791129813104148815661610117921129724463170441256665037843879199810153115611290131402144115287169617106186819156201302164922454236132490258142628827695289629830104311193266333534308166274137304132550869671032862594971027211117125771351146615110165017320183141957206621104221923522432025141111217393470564864173986695010181211144112381372141286152581104210803664905443616277281379171018111109170722613934415872623752381519453107111117126613115143501587716107717120188721915120592172253123902474257062613127113281812984315128093414665184614907199857915071011511131126613111482152511613517227181431976207502111151140220735142095516517198811916010571115371295213814144781548016913172311112173791498510762517112825291221014211254121161310614193115309163117226186619412028621252224123312111217379143075316177778789294661041115101259611121737914985415641766841391551014011262125113310141801554116710174541861319902081421288225623312462725662693277972898291153030131150326233703415535202362533748138813930740128741814271431104450453204631411121739341353326368719378155999109811781237111002266357148205307664276486489451047211808121361390141281518916117817150181071191662090216622321231462463625282261102772611008266357148205986642740687019531102021153124013144144131590168917119189019406201512111922902317724106212962453336144415549628978618959901026511600124931320814433154771690176421623274132141215176110750832093141741273034774615138671711981419171012511131717412730313245085113641761089097301032911901288713354143231535166101790182951540227433234680519266173238672917102781140268314249651536166725084409532107511773123711826230732494773598678737117022138396417753664167218686142524573904194159161417968899136101063117112471139601138242310446559606853718784198710661190123201351144911532169017861182321144236371422057625074187199010102113711838279932494132537115127913966424751045675713258210923212742196374216576567150811039331132215039047305176160784311127413103490510326767742889091191063119012312135214587153229039041425516750762810329782101511646141253139049051426517300817091021073611110129601140272237914905177619077182801772217341425052316572796884191851032113291256135214320153021912706374141155769074108909601032911511238813321490151406191270637414377551612173128329401090114761234211712360363411051962079183609771011011300126501130211374144125109690720183319137101711141129761130211374149615906103275289641208245037064111551651072551130292317141245666987528960910211512212312244805206791730781469706107411151012713530113026523514116566696712087929910170112231239213901477315811130211332949257612175078736990101111901286113102113026523514101510761207717084819531017015022073474335141245131674222515115725032354121051861772140373041020183223641832607151222231141415926830712081079171014111542111124793853117236345942051372479350411951051532351314211612870351445511500276375041071512713701471511817022840311544635131628171281215211038861522134361489510268977018208942610200137210761170211631004905222651715715812391154222001512101231104768551651073911277251315471512313700487517061801101721103212436511512213313845259171322108335011312121371413159066775261138212132534525716103112132917311048725543113821139745257161070114022533514975811696752841925310125917702804380948375223636778820615126603124424754546201123422613394141290311045241412903423495572015129039547151266141290310241615103864175681879511090117112524113525637524127141275353145285578651778825515624103120416151466417104811196151976233937504735511067871408419104105111187110402963732470855536822790851893110206187275351444550014125363205412559061280772614121693104341255488137329832224375470612174458701965101711100616725136304165590620777828314917108261492220731884905220157235379143075253634177181779951102081156121791472113324920526111451412145147222634141451112225503814409112225503143410581482753143422055806486186621553132471561265271158690917710961137012116138214680156221115261037549051181202406396413759846658124722963247414265130662181522713101948251896907250118929031325449257516921782273039043275735624148421032373450552962418462576321318572142395476652711272110322149455706222723187669606176621526331410905150669611222903417442851176226752831894381612140036141715861912903385410161902583116120127015725163764435611690783867714829034174428537862267118500970104071143817622053414861112446347149471412106131304861552130316511311211211540292313115402903185497651886972720215627133141065686105113728183110412052111180235387462598137212033249051150131266332470711112201343474814723137481562166329642701472113138457151716417552137213837641715416137614972903202423214225363161487251791138229531431540226039544971121215039041351256791622135536601582220351415058221622303311043921622138320111502103322241051191210137754177142121003354155190266371043451673213732514465906567718350976010111111151373229338419622713871262231315624763142412614822673176137210139849914032203314436550469077738766969151226221621244134271962903103241245540678151257394011332376148029032074452111921671512193373041121702210535314871708210538414167132225117912453110456651111797290312341085186116123311797226035849517972453904773524765761512773324741210513717972453364410451322110363475416490714781769121010176117021413321747505147645716217972453568413053271797245375842071797245311045665105516729034544356115127913307415251841120214131264402513711302503251413555166447588170151252382648152061111220132044672512806527391111025138648115135647710882701102521423312544185148610177418146156286939045405332611674181429952197623393750473557506877741878914615223423654415151651795181669901013211511246613773148111312113146461590696071021512843664518515211290290390481858826417348150951103411661270213141431158161636175101859611312202361448051566717263115026639543254821672913525417105756110720989097971017741155812304136961468515402613525421015402613551475586767574631610217483262456571612821300214231704446112428031184119590645471198909258141290331465956563081110279032181712607311047305666132750881131109237131454257510964317265172251339041032545415402154396487958061722103390410325731547296393488113126432024965226648679087092610761151123213862127322613224114423131350449653761350711837913810371115161219213317111028383731437541161062732886218121075313084722525261507248759901060116612343113726432024315130061107103289093921021617125131345484759763775183292851030212022128134048751266634742281379262105741137124111310621432156041130225341456557163307908849218105211221123521376129241353541725768675708255914162251137425354161701710683794116227131464206511066673191582100135148055366142790811096610723162271323449051426842723689098410143113061102295736141440551680758286691415821813142415054806269731983141582713224496521562307170858098210171135123091329515823132644501521569279081032941102061147122471350515829132164975606750771832091091582100135148051306667908103298610135112081582713221450592677170810692091011111691126631337143061582913257497525761707131814796151050514822573158412852015723636094110535562977518110516552953964108051206920720781259774101651572139365411154816110766814162271314147656669573281429115103711302923814212537652177814113026133149159061001737850511302613804283590666713886981090116512483132210343904665703696717086693071013111351225113981469515961681418270232084415146634679089519342101371179113025132154313541653674181139351021211461141210433111411155110610177141322903141149052966136712089096210291196127151329511802513104410405692624772584398910115115012320137911121731481140210133241711225273241495517117211311546365382610411522250313041375641151236631014155305626715381411512503904287571656192721013222483854668431202267131279431536632711817869671299211034142025260620978419662859347419651266171151295310346811272701310954780582156268331032473547766775338861522342310142975311617076183429411040611297125024063327414375130264911902956351474055761137122831311422379374715856227151271031325417053116170174182079103151222231504715546665790810409101102311110411211113901479115130167217314181011929320140215122802350924483251702639827412867029903038231140325133146341503510503686337106838903910324014684190429104366448634559746904710248664939850415167052955316454157554145664571114586659110160119614762551632816490658106641867124686669117081171101772205731754746675517666771286782581112173775114021031122823021539229412472289137254031580125823731782235039043881830276635643401110239231210428019602963113042915092353724951118231614552353460154021293514221512563714493513513712171156230033101610211033041540253031104304154021150154021323268154022073689121125137064325268671615127063324136553311962360147222634143601312512337413001502562111625353570147215431024282532610674781549519103211535128201330714660157911641417454183219791209821103223723613247912541426454272292818229791309031183321040333943474235206366637708385713977040840416642904332144354590463214747481504963502225132521153475415553256930575621512377110727013207113727023341157253325319612562112023113150451555467712111502190343448252701322102314119024543567112023741412170390436011382703704905251176270316942111772145631104150217727723584951418245332011121264534564542112127531204135651170111622483835168029033711322224350425151356517426817995951512323314747583715125631325117023113925147298633245153216667118369547104211135613122013584187137220132234113181219338141635101614223653110451512661081322224319343235871101262356418717822302332317462371111924313377114621933766461535115123132131412222376648311632193376644351446807132219331104195530714221413102613126283741615533671512161311843621782235735534356154025131614681512323466414011362283712027663105614122083115612627663268113502513190485386151270231432474211462903301195625634121917219231941412222376642321111219433741301106272234521540270734144154691472503127154024735041271812193351463057417123031444905100611015402713205481051561183295310749515598110127503307411055163874871352411311041935686907240870980103211196715227813193490514463457497823991811030315227531334425522648730715225263421418151069634715124353568490581671757830811312512384775666355769411522983375345757165057720119121513110415518164677278192222934446653162647150821937105271522731390425355761397560123226635004750587618271055847316224332994585425153029631104263531626679684019371046317621553967411665201611711106215536849058856367471851815172903885431657151232296382471557610311312963510419311112155391473057026656751587397971708261135404611517169772331156251331744160057696517268890988510212112471250413221151270637149052167772008567152210831384130538264981373298322243754796135754287930719272101322242275138196210131484355816717561512523764140597262627578641110828263365430657086361787861794471512710313254170531161701741820791031472767332451532166675186697110151117916442903321490565361068775875977410821768235117532241198925511893238116922921197127395119225363207178221303509170821423683170826735901708232139011412563434186223114722263414565231146276638821712105312815402567389217702230337614627663882171284039045151051239290350141201412304318614352240339214627663882171215331032450213024551160296327741342528865176821462766388211972413414510576117811972413930471051031637213129703374107059066815726503702444117624743370146276638821706256331422513727663754151614627663882170625632314224513411312713904345170146276638821512631390496151421118281377115725163764435510659615227703704249146276638821572923317141115339146276638821708214037542985316356146276638821932522381416211102567112028431051174124539541206151226615402513266171215331032451173241318472191160215634641160210139411602287341211192246313343101160226531611452903832451550818832731144601460219315125632314715552156274039043275937692189421423551413167626735514264151298347143361113024415932963113131287239642075376504132299311681212188196278331426957217352465372415623203165442418932160313143257741512660312911232131110526051882111131223639641037537672412129032224905721202253931038447510863297318156995106131562156324541435171631755683299010751113512329131371410017502873139417053116170174182079441522106237744313556611607281841954410201115212332131114500154701660415662130117982360150927116752163175822421562683332018782321113827663951300297612022533340490532517032713101248551138245037024225586611722153215424178224533041352422352241161701261320744452356251708241340645651019121023535044155164371462413222413901287247326318022176154022073150158821451211252326241421138626631014837584151290375043075120692014922305373144151426591350212631531131627638104815110382763750419180429635743231732268151229032581782241438642631562133031934415140161529231204220112229031019170725539611312923154881482903681418152076717221812095211312893154881177212031674625307113024513904927141222235021922451399049059171116256327247055496327385879815113224521512193152147224431354471729303685496114229031521153123535041472130332447148290334415011729201531212534451512573132511702311392519021783305140122591272345126124071530219334143061902113320473519021443735438915402133327515402447338815402702331145561512713910441524611270219334141251522145382493154025513103244011584296311112929091480268711292103311172101512290325817822414372715622903281490561615222415122731802251313547665351610751202766338518342100712627663116412071711270516724533364319170224313626170821303675170826736701708260235091708235139081708224236631708222734161708210235001132752393017082209395017082142372917082923730170828935181540219034141409111122013743124121611107270232601137270235901562166329642701710211131244710560161201120254031011472161315111402206321441331472113110410435912147211313843705253114121163151211332492052611120231131504515620147276733245153216667202823217022142374017082803155117082242368317082339311721540219034145445120711121731934415122062247301174127503167420419021133014415311624215123231178497157217031079126224831206241363615124353120417015723153120461119225639514724531264107514722263414565951540241322644155669515623134904190522063217278876696514623291791270234594110514266121708210237411459261322960367496567418621020156215631424232523215125134234315512061231472226341412314232386146276638821791278835849514727323743255065147551170228403115446351316281712815123232514110518364177881481512963120424757666145154029631574921540214137064741551067711781512513423443551206170147222634141661423238613242429151243531204170111022633121617502903654105552011226290331841086110462120396475057116718162290356011312512384429151279132514785906791798889417082247347415141708219034148151906165170822523138451552691714722983155410491167279139849053326894111022633121613525083332441578624617022142385111157223835141708210323444153724139641436111572238351411121731934715336417222833926611222903417442851171226281372428111982413414507148290341744285217611101226290370911462341156271390441550715629503514805224142251320747157630311112201351311072473166137727023561170221123120411111212753314162170823103155438253161331322791330747881722141343414216272775381132279139841535561675720481210918611482110132421932157131623611530210236461282211013147170124531164180151211034142465229631514721973135432551611376881259931741235390453951038672711085093201031915127913537422755746540770842591551077311981281137731434915127913984153556167574548613990108141128812750131241426315123113222434815621132641001172131735117062601388118127132241352422352249414062556132279133074905113217229032624671322113351457190244310341148234714722263414341112426341512503190471511669891127021933804730173029035141851813290362415356501562110327843351562442350211212353904111537634111482110133041103821101319515621663200147211375196210033514123511552392312142211702101322241421741273031561747230439917472804335111882151132514402111352013224133114665566150723984797001346234011000251360049611990290392014772442174121403282426315402313456496537638110421193904437192621013207421013221162355496184328103119151270631204209578117822593122135242235224134712027663976114621481530225236415702903130466110027531204325906108013121603374107059067912027663166117621016190258311613125703964104619621303219196246034011362927139723011226210531112212163414645110611301472142311047501472673110454214721032311044771100029234514960149021553351132290344643061867266380442541512923591540251316141161320177257014872643110727023270135290375042005740621117126003110418052226771241211013146144127037404576590668155627913134921544141227103443179121016390468180829631761172215532224755773151222233981122219337024415439620773468171922610212113111482702341443953846115731282269212101071512323314716549113721265311041205211151321132352471147221023114441512702342441032525625120222231274171517112927663100476651330619376783599611146211350045445459184623137824778513137261636124131112417322141851284241322241016510551725290387165124631312201370846714572383708467147247340113427813193490526181251380431451156131146245637243718125137042155131712153335419011482846181214811112549320814722263414208110023071721213904565710611071461270133471721813701464715402713904791598651073258510932616721023176179723073465445510264171155225131451437282113772702343712932702340110727023131711482473591103824732411962473731162229535191104211939043411102603390471111222550310241701262334081211275329646651566667183181324623168415552476799715313726913179110727023132012932702344314727303951459815122003740112229039045171200216114652340148290363241527172821611465240014721070312547657026614151216137915728138664841149122523134013121373324442174127223452113725421741242637644471472433129490516564201322141431442075142118221020185511072702373141210032224475140187228103504905781182211932224149017123734614971392832399139211231141112224913111470514821323111465514821673222459217125583504314193321403233174129513112514072503940113121103361427115121103361427117822168032231472222312831497251012212180171226731321134278131934905119655615402264317142311322791398415355616155720481210918611212752376497110126637141601302210332224741573017302193390420013022228329217412140320311402193341470515015125131934105915122063152115124132224314161227413751772702313016122513714110550172241354916122513722445217121503534665220151290370446552916189115627283625119427011842106151231348447457091522144390475533514722263414755335175233538104905111650514872137325149657536247790850924111312153418414953141702803791430759063674548657925010418118561298129629036644465179625919624223155147278037914414545463279087694110459119814722483324123566682073589591491017311157124291364147561564161861512791330749053664547657890925110981169512961367144515500162481512791398415355616677458810924816221243247445451246613790881492881069511961281310101466151651610131712518750191202091021207170224743103248111210210323638113721933414361766291238101532222325436176623043142411035247618711702150367149055811621519621503671490555016215152328111768211311762210118312732211205273114151219332374110162211037504349162240384143481112215037024772541690733911342413904331151224734747665842140714124071472226341440715628631424632510791482267317645071122290310304119191290338541016148290310804119112622714722263414201251264197211521418264733741512146359615402513146459615123635964140520116862921540269231304201154025713766412052011397151219331204860132279139841535561651071418510932514628035748217412113372489180251376464015128423904931472226341493125126631861441250931104131157215531451902114393171260031104180522261047151171211337949051270129721553220446169522193904103122822603971152261011672243374242171203220237064443174121653904795142690768616122741373249718302741384449113728183110412052111126228017912453120456651221791245327712322198152216137571200225232651512381311463411302113174388131277341453213724913133441577137252377441551613724913133441577190212434646417022143340466552516172142370049056466679211502543222417525566717410180221531343754081412106131254765476821200225231101437165328435019022334049051041130211366413166216517024437645017628033541075131130277732044241190250034147301962500311614702510819625003106349052051962500373470257211302777320441421902142136214219025003164474217412142390430051421902893148”
6.2.1.3 Cumulative Abjad values of words and indexes from Basmala verse
This is the fourth known coding pattern on Basmala verse as mentioned in Chapter 6.2.1. In this coding pattern, the Abjad (geometrical) values of each word of the Basmala word is cumulatively summed and word indexes are placed before each word cumulative number and all are concatenated as follows:
x<- nQuran
tmpl <- str_split(x$text," ")
tmp <- c()
for(i in 1:length(tmpl)){
tmpi <- unlist(tmpl[i])
tmp <- c(tmp,paste0(cumsumWtIndx( AbjadSeqofaWordSumValue(tmpi)
) , collapse = "" ) )
}
print("The coded number of Basmala verse: ")
## [1] "The coded number of Basmala verse: "
## [1] "1102216834974786"
## [1] "Test for mod 19 to see if zero: "
## Big Integer ('bigz') :
## [1] 0
In the coded number of Basmala, note that the first 1 is the index of the first word and the following 102 is the Abjad value of the first word of Basmala, which is Bsm and calculated as 2+60+40 = 102. But the following numbers are cumulatively calculated starting from 102. indexes are also still before each word value.
We observed that this coding pattern is multiple of 19. This was discovered by Arık but neither he nor anyone else considered it as a key coding pattern. As you have seen in Chapter 4, my book has a unique approach such that, I hypothesize this kind of easily testable codings in a few special verses, like Basmala, as potential key coding patterns and expect to also observe them in the full text of Quran if they are evidence codes. I call such evidences as the key coding pattern based evidences as presented in Chapter 4. I did the same hypothesis for this particular coding pattern on Basmala too and witnessed that the same coding pattern also exist in the full text of Quran considering all the 6236 numbered verses and so discovered the evidence code of this chapter, Evidence 6.2.1.3. Here is the proof of this code being multiple of 19 in the full text of Quran:
## [1] "Coded initial verses of Quran: "
## [1] "1102216834974786" "183214833504582" "13292618" "19121473242"
## [5] "132215831964836" "161239231073"
## [1] "Coded last verses of Quran: "
## [1] "113029073111141253" "1902232" "1362178"
## [4] "1902590375441496" "1741288339734127351415" "19021793327"
## [1] "The number of digits of the coded number of 6236 verses:"
## [1] 400132
## [1] "Test for mod 19 to see if zero: "
## Big Integer ('bigz') :
## [1] 0
Here is the 400132 digits length big number:
“110221683497478618321483350458213292618191214732421322158319648361612392310731300210913165241807530176489675051850889601017117502120431235414475154261561722211791295331998422205237762464728678316317972959310024109051151611987128681376915281023731124181226401672177319642865533660676518896151284231149412265138162778728198288994284104315114477110402110631216413995151561730718468218593497103578114351125371196223833284474556666347729815619160810165311185117412807316044170251749624897252182757928041034401902273313134145051516625577263883411934921035351136131244011708284839234954515056159572627827659285710296511318913221283173444455506581712171708284839234102151082611737131581453916001016611117521219391319711420671521121622991724051824361926421708284531636417345187261964726728330993350103775113913123965134135144227154335164913166255836054710580061915720961672858317664266352715628367344684495945421046201151291615212053194642517527696292074132841739422210492911499512529813596914605915743016746117781911302192331244375468680717212932194361545661827721078241592584102793112883123680133770144068154976165453175525185592195986135236831067414065149762309723848273192826103534114505124660134808144850155161165227175964186181196526206577216643226753236803247123257437111228317042545516612577204782844929341031261133161242721741284439344196652548626967275982853929431030851131361240201340271441171552891655971756871857981963082063732164342269312375271572567365748695950610887119881325918131020861121761227511328391432191533091633691734351834861939962042511131220137884874514616204972331827729289410303611329012376513418615082129931397415505211162162722378269193304103394114208124496134587144901154997165087175832186140196278206984217725228083238173248305258719268726279475289556299652309670319929329980331007634107671512117314846465697617097228082321932041033251135171236391344301445281548141648701750091850991953462053942161852264922367742475162577222677882784962890672999073099143110645321068033106873411418351146536123053712312381234439126761791218073188641952520426211872774830259306610330711337312338013343114356715378316387317490518497219501720596511102866393441450518996205972599831199365910375711429712434313507211127523148241572516136170372735828599339910387611391712405913426114439315490116491817497018529019544017072838310604122651287613917148182513932381033761138801239761340661442201543161644921745781846921948122048862151062251562352872453482554892655302755612861571146219133344390593062045721558229292503102632112746122798132849143359153614113822793310445055316563760481195912661017171118981220071131214231874295545466057704886399941010651111961212861313471414881525001630391740771842241942652047272147742252842362001707288831054411295120461358713908149391506102195112272122362132754118721983243437458256867795681013911091023141128321235831336201443231550331655721761291862191972811164256536914162151702617747186982056920801030121139141239941340901441801552121660121765291865701966381620266537554962514536193672051821079211810255811284711812205330144255547610787117881197913671018391118591219701326561428111528481628931730241797211043183942304523716247372755828009289610358711127333854131351883623247288583055931551032461133331234741335021438461104214736354870594161111711488163191668101969111976122013133320143744154335164506174534185171137253636754750516236176272259828551164232137354799511036121371595169828403107541647518986239573281837359384710450316042929310924115551422614547156482626179121807319034208052327624297247582805111273338541313518836232472885830559312210449211460212483415142571360241022512126133271522818439188010202211211812257413261114392715402316412717416418420919461517072881397141002514086164071716825209329610342011397012415113424714503715508016517017543218645217072113831200414415169663054730858349193988105594170728393955412885136361903740448417894268104349114846125873154027473927410175109361843720338300917072116931285417395220762397732621707283839544113551146612927140382813930641048281149621254571354981457711563891666401774301882401983302084542187272292102393802494362594472698872710176170721277312884140451484616307168082098923581024241126371244781347751452721568781540212233131341389518956208573061110172118732299424445261462735728788293593025103447113488123906133953144980155086165164175400186436170728883153042240525866272372819833379408710529211594012597613604414619315621516754517763518831619845320870211162907318844202153231639727411284187944061045161153071262841364951465851567271667701768481871541707213383145441635518966289973082833249413810423311518512576013589114599515613516618517629718688419694120745721754722785423792024795725893426902427100562810300170721277312884140451484618267193682056920751022301123111225331333461434271535081643601753921854821956202062432163812265272366612467922577452684862784972885622993053093163110126321015033104813410612351070236107433711274381268239128374013603411381542138414315645441573545158014616551471664948167274917093501750751175735218175531832854195405519679562042957204725820639592072360212631512842394041737517546214272342824329252310259111268412351613366214379215394716419617432018456719460420529021544522548223552724565817072205932770431775342363669749768501795539105652116586126627136722146912157868154021426315164159252342624897339983465936351042941148341249241358761140272031511419935214362233727268298793062103145113454124185124023423413447555056552712688229592955170728383954411355118661252715638161492731103038113176125328135347145478156255166323176374186451196541206671113822133294451655886669771087259856109121110581211151314221414531525341625711727931829201929822037322140002240412347431138221332944516558866697710880299331098911113512119213149914188015213116222317288318412511382213329445165588666977108725977610110911181712197813203614208715239816246417299911312187333343905697672871494826049363610367311424312498213515714518815550316559917573718581919623220637321717522722223725424750017072167731868425955269162763736068364794157105073126121275321554292552963630297351683802942191044091150651540211003129841388514646221472309825779258410288911306012311713320714345515352616421917431418460219465920475521482622533623622924632425640626646327655928663029665630674631766132772733777434784035895336906437966016562707382049105102061091714818161691852101943112009122549132908142998153074163115173326183377193583170828453163641734518726196472672833039422010426111513312527113628514632815681616688217705218717019717720730121756322767523833113822443295436155116552787889259114111412248327944855939697171073811309117510120711222311262946314344188851960625007270283408934981036221136881246351346421452331554041655301756051856861965082065782166302267052367862469341144222437754105751089611427127181401935421036661137321238121339721446921547581648421748831854751955852056512156922257232363191422132321442995724673171765819129201410229611234112243713312817972895310484160951676617787186781912920081026991707220593271042772530846311573647836799374510388511400612472213506514556315578116593017610118622019638420654121695522701923755924844525847726864827879828929529104611707220593277042801534176353273569848289507910516911544412598413692514742215818715402103131083420695232063585739768412694216104476116038126193136767146935156992167469177741188277198294208582218752229602231023524111092511563261232527131992813320291334130134313113621321437133145213414553351517036152603715315381541139154734015660411593042159714316276441708045171274617193471830648184174919013167285831766418215191762756728678363793802104606114643124688135094114026023718411725141961509715908191392381102531112584122874133368143445153661163856174028184102194398204441214472224893235144246267256738267900278297289283114423333144341475516706173672083823349237510253717721363559464957736839710738114491299101383111473121605132619142729153520163827173978184037194078204435214742224749234984245050255160265552111321021310284126451315616327167581763918291028421128931229901330561431461540611641711742611845821946722047542148542266582367682485702589972697702798751708284839234102151064611527121881356915021015451116331217941321661422091524311624481725871828221928932030482131782233282343142443882544542645442746762847272952373054331140221433304826513666350773641837319381210430911533617072205932770431775342363669749768501795539105652115836125974136195146422156938167028177211187345197692207822217935228246238253248415258466268976279172113021813652474259786181571939820059273110282111288112302313360014407715412816463817489318625973605464851192612627133481484925481538283739794108951113612097200082528925481026061126421229621330731431881532351632461733231834131942172042682145882246602349622450052552111130222032914372564767837875898591137101890111956122191132262142324152353162378172896183152190216132424307581961120713718147891609101675111755122176114022793340475251215612627157281580916121019401982185326541022514126154771579823459237610253817721363432452256466712794681017911721019241123141224041331951436091540631644861745521847691959252060412160722262781486252731363417745188461974721658221292512102703112809123220133527143733153875164174174221184309194419204600214637225249235902245949256150266240276253286671296818306910317018327553337664348364359050369186379227389673399680409742411002342100504310097441014245112054611212471130248113154911347501210051121665212778531281954138745513911561416657143065814453591457360154806115521621555663156466416483651657366173046717412681745369179607017967711820372182397318317741852314221383236475051333614237154781613924231024591125371227431112283819491759486149171813819629316410334811377512454813462914126138524115951249612857173981776924271024781125751227451328351436451537351639971740691851691958242059142162352263072370132479542590051412801389149075914610807153182343924391024461130221230931336331436841537501638601739101842301945441712611366247285763685371392824309247710256711265712271713278314287315291916295617330614127113762412605161661677717778189391983102115112211122657132988143123153307164137174214184347110274038304866513206135671686817769185210201411231612238913247914260315283916292917300518304619350820358321372222396023415224457025499126505727530528535629542230553231558232590233621611642321373547995846613977167881768925781029961131201231861332371433031533461639421742441144222438684957598961079711508116691173101524111974122121132251142664152982163033173543183798142213232634282534763647522863798461097011117712121413190014205515209216213717226815372593310934147551585619057244282824933241033801134901238101338611443571548111655811757121865031965342067402173102274912376372477152578222678782780652881962982743083693195451962106731197413575146561531715828251292608102714112860122950133759143826153867163938174013184064194720204752215503225578235668245764256381266462276552287389298162309182171274232021422035264663266732808334693397103463113600123750114421845319114195252078621107214582186922761028151138531239031339381445451862625316634237153281635237369583841938761039461141121137292839594116551232613837144981456923181023341131041232351340261441161542931648631750441861521963352064392165022269452371212473431522414355541068520356207272563826839278510287718621496316364169251729621117252983401939161040461140971241161341821441931542431643391752121852801953562060972161312262212363922464332564832665732766392867292967753068123171621791212983175242253523616320373270834329343910353511384512385213399914404415499211127333854131351883623247288583055931221044921146021248341514257136024102251212613327152281843918801020221121181222221322591428651533211633581734031838091707211503140941616521096268572816828779300110317211325512338613348214480215493316496417505518514419620617072861313044185252023621217383583925941061043651145351246711347121449711551891652401754551858771960972063652166922267961707283831097412995140362109721468223892552102593112683123855133945144036154171164239174332185164195295205391215691226287236458246998258013268054278827289109299187309558170721067313264153851628620717228982542930741031651132361236871338981440791253241436444694579062151721978237292422102680112902123310133471143542153993164433174722125328323967412645139961845720008243292633103087113197123295133366143817153942164051196213083142841503517626179471884820299222410236411261012270013279614285815294816378517390518412517012832386741074512056133671867820999233111122120337944465640665177138764983010102011111012120513131614221215224416274117296714125513871415725258062768732458394694077104174114215124747134837144923155061165187175243185285195319205578215796225972236009246029256143266178276404145024963600416305166661707721898228592326102848112885123432133543143621153827114422273243425056016141771547815799165410191311206212210913218014227015292111432235330343505438653075778665970610965111183121359131553141663151710162127172243182399192446202863213012223102233349243380253810263872273885284020294134304169314395113122293801484251373613807156481981920381024811126531226981327881432891536141636801736971839081940891109721163312594137851468615347263182745927801029131130265037404806582361076713448143191624101720111922122036132071142887141263336844943511616133771531816419171910173511174212209313222314271515285616289717296318305919403020416021462022493523506424515425522026526727533328644629655730715314502496360041630516666170772189822859232610284811288512343213354314362115382712062393348346255666674878688144591886101964112080122210132275142946154225164254174344184665194706205006215656177629903103641112516256194572055821979228910261611278612310613315314330715347516391617438618450219453420475421484422532623565324578325597526608527627228632929680030706731709932720933800034801935808536813237820338826939918940935141940242946843961244993845101961104236438964930510206116271438815759298210309811313212364113377914405915458316462417513418525719533720585121590822669923711324756725780326785927799828808829833530838231844832956133967234987819629073169842112525666261872634826759315410370611375312420413467914525615530316622017669518683219770420780021867322874123883124890725894826898227907228924329931430100163110136321119817912129831752421735223462650727598281693207103342113898124037134088144294113922293451456251088611787194918621053116420858586210072161822029268510309611315812322413334814339915346516357517362518394519425919626143181741933519676247672614828949295610312411321412343613348314354915466216477317536919626143181741933519676247672614828949341810345911396912409213417214468615475716484317501418518419520020523221602322700023713524724625859726957027100472810617291078730109833111848161240335534850510006144671616820799219210240811286212297213318814322915329916378217437811067220483258242622526596341511122838194917515156184072003820549212010223011261413725803700412405133061432714988194691978102008112114122145133171123425563646413635147961725718158192492152103330113838124222179121493320324217952317623697243482492925381028681672222374948395108661345714188146391999151225335414631512126127871448814599190210190911262012273113279314290815295916306417311218320819369320450421463522470123522224537215128423136841409515486163872132821889227810235411239512246313263414272415317816324517345018351619372720396513228233123341375514506159772006821619221910265911294815128423114941603516546195572022821779233210239811254112268913286316952791382241592517576256172598826439385911022138315741885224625672678596988515121413871414105244863566736678396094127104568115181125271135512145555155765165907175954186042196108206198216340226430236481246581256588267620277696288148298656308752318842328892338904349690359940361004837109793811041391118340122214112663421283943131051962238332842038521286218872254823159243610246611253212332913342714373215374316380817385018407019486120583821653922680523760924766025780226786727799128804829811430843231923617012130432095425755266563456739368415094954105939115986126083113729283140841444514956157671801825349266910273011334912344013421014447515454116472817539718555219559920564421651022660023688211122831704227530863987143081500915221015591124381234541338551439111540011640811741831922403351249485100561548716588172491765101796112392170828483923414035144461532715988173691768102290112331122503132618142683152726162797172852182883193149203470213507223982157621367316744226453005632357327883309934891035211136061236771338071438691539891641141741451844111112283819491759746106471486815279194510247911254412259513310514312215365419223403510499651077611617205982106921421021491133891234551336251446351558451668481768851869601970712076122177272277782378442491302593881512842313684140951497615637165382107930791030861136771238481339151439561540731641631742751843071945892046262147712248372348932450802551172652092752902860632961441672858317664266352715635257488385004953421054521157341750280338694956514106155171608823999351710360711406112418113468214476811002333338448275907610397171082989930951033281134181235091335771436701545021646451751051852641956812057832158932259082366242469672574652676832777422878752980733081693185033286513388083492253592893695083796343810336391042340108134110903421100843120564412130451222446122914713082481328349133565013401511402811122838194917513396150971821819119248210272111296212307513318414378215437616454617470618474119483120544721576722632123675024677225681826694027769028886029895030921231947132964133101263410202351095236110673711840381192119621863498452255336580764788379179314222592312944230252375628527290383523943341044761146371250371354661455751556851663161170221133284503567561221713318212292229102280112346122526132676117028513941410775121161218717608196992076102187112728122843132894142960154246164504111228381949175133961509716818174292164102274113065123155133347143537154493153257837484819596962020720278213792477102636112726122778133579143695154486164676174775184895195075205245215730226541236632247442257477267534278077288887298977309028319538321013415052159632337424255252062902729218309293561103651113701124169134339144648154798165334175589185685195756206807216814226924237264247423257513267565278366288590298656308718319019329056339280349342359703361023637103463811011391107740111874111228421129843114944412470170828193906410365117761489715058159091696102398112523123125133165143314153326163501174071139212932044376511876122871409814649155710164711214412223713232214246215252816263917314918465619490720539021556022571723589724605925662326803927808028850229856830865831872132923733965534101273510217361086737117113811801391245140125534112643421295743134974413945451411746141584714259481429649152605015757511598452160745316213541666355166855616751571686258175765918346601841861184846218901631907264192476519813137249536334755583061277712858132691426101914112305122395132473142615153189163686174282117722973369449955146107171242812909139610162911168212249013293914302915414616425217448518457519508620550021594922603923605724657125663726682727740115442634373648025159362250722878316893219103285113316123336133941158821106322774313853228637467461685188954931055831161441261811371631472871574251677051781231887301988252089562195532210215231098524110062511398113125943725479152077623351588210063103741513520486214072235823009243110289411300512313613316814327815434015362816313544163452320626017277183256934261039881141031246751347161452011553711658851759511861051961562062222163322269631244233434364502553961076711638120491695101827111878121944131964142213145424963848491351044617837190482635927251027751128121233571336931441111551531652031752861854561955272056772167282267352367422474532575432678092779882880782982193082263184253284323385623493443598753610045371095538113033911344401138641115074212238431232844123784512548461261847126354812856491389250139445114034521407653142195414921551563456160845716659581675559175056017625611769562177756317816641883565189736619253671976768198336919987702003871201047220422732062614225483113541305523856253072572826839346310350011374612378313382114391115395316400017458718467719548720564221570822613823626924707925712226766927823228824329829030835711002270333243835219263103731938345594237105558115648126399137407147473157597168238178518189456199517209587219644221015423102442410381251050126114231540214383152842046529286307074824848909494110500711629312655117822213232363433715343764437745118451894823105744115914126056136146146292156545166997177087187183197230207265217355228192238282249013114122313377463051082611727126881391914871023241124471226041333771436591672142329443755464653678768978193421000310904114251667618377234082430925461026571131981233131334091446101547211652621753771854971960082065222165882267422368532468992578631962238332844335574666477198815911401012061113161213571314471415841516011616361723981708211543129441384524166260072696827679350610368311375512378613380614398217082848388341384514506315673269838439399810409611420412428519622383328484851043624577389883964940361043321144421112283819491751559616497181081916919531028321138481242491343051443951544751645771131263837284804584561319718138204192092102158112252122330135212513128341334518006186671956829169300610411811426112517713544914549615556216623517651319021523464452451031611217113781204913001013461115111215771316671417431517841622031723341824001927182029221672887311944124951345622777236783158932561040531145611247921348481450351551071654241755141858351970472071181712213325942835935610017115481756928121029061130611235151336561437641538261639681740991852171953122053592164702265652365972473882578062678962779722880132984723089663199793210086331018534102513511042361114037112113812329391242440125144112653421341143134834413512451360246139234713964481426449149141412551360241643517326180972280828509364110427811436812456013510514521015625816634517676318690919723620803321813122824623869624903625910226913427918528952529959130990311772919312154134551386620577214782957931981035981140961243141343731445061545531651401752301860401961712062372162442263941422259231154411715139661486716328168392315102636112653123463133553143699153750164167174488184505195005205095215167225317235814245845256441117722973833411135164461739718698240092495102727112827122947133049143115153421163428173572183852194663204704214799225022235146245212255784266007276097286658296695306799317456327874338154348274358398368449378997389093399711409861419981421005043105804410597451089846110454711464481165149117415011837511268052127535312855541313755131825613278571396915128423940417375195361979720698217192237102304112573123221133287143359154645164903117722973116841515516456178172322825549280110297211356512378813387814412415430716504917534518547519566220643221650422657023666024710325729326844919021863102941212513326182471954820849215910296911302612411713491514498715513716535217544218564119568320599421606022667123672224678825688226696013725223151441932520386212072261830719316110372611376812430413434114482615547716589517600818612019625620706621715622771623775824789425796126810127814228842429849630858631862732871633100783410836351091436113313711502381167739130631183230331192413225133362044726398279192881103770113807124570134988145262156044166708177250187340197858208159218225228276238342248362258862268888279633117728853975414635223162292730428319993480103994114060124214134325144507155015165242137254736134168851880619317254083453939941040561141981242701344501446001312140831474425435263362795729018427894321104803115001125073136359146447182029223101241178518706214872654827859288310301411308012436613462415721813352448355496729787916172136931617426535296963006730548313993190103710113751124481134547144637154942164993175063185169195237205330216162226731236840247101257191267941277992288205298336308427318997329738339903341033235106323610797371100938110813911175401125311712862310644146251469621477226982306923541024441124951242031342841451961555171655491756001862921963242064852165072265732367042478242578562680172780392881052982163082783184343285653394503494573599073699293799953810106391099240110884111572421159443116604411807451185246129101131227633874825586069507102681444919221019391131541232851334301435411536031637591738101844951945462054972155482257092357312457972562532662752763412864192965953068011708212873143942601526906295273350833579368610408411412112470213590414681515691116710117785118803519900520920021923722113442311756241182225118412612775271333528134012913571301361831137063213876331396634144203514530361557037155773816091391615740163114116362421642843164804416800451695017082128731439426015269062801741628421394351104424115126126534136641147070157820168806178813188903198974209124219230229298239391241022325110132611051271114128113622911434301158431120813212112331270814792160931706418105196162081722878233892788103895114011124128134163144525155072165501175532186062196252206284216426226457237858247904257952267989278075288110298157308273319011329581331033134104623510669361087137109913812392391252840134414113552421361443137704413827451447246145234716460481656249166735016735511690552176075318177541821855190695619498572001258200785920232602028361203496220392632098864212901797213493149942471524906324273490837689427410485111563312671513680414691515697716714717727818750819759820784421827322834523838824898425979613729932694400519106191772007826239277510278211334312343313368414382415389016400117549218559819562920617121643222646423651524705825719526759227762928815329833230844231886032990233103563410395351054936106003710666381081639108574010947411119842121984312352441240345124694613755471384313129332634314589361045710868115691717101724113211123296134391144968155078165285175594185710196481206790217302227731237840247950258199157269737874919597061531716418316193246104341114641124682136202146234156285166501176508186674197415207436217615227725237782248339258642269218279255289772291071330108353110886321095233109953411591351189319962110631664418275194362102721678277811312125131566415735184762629731608416894234104295114495124536134606145089155685179721349314994247152490626017269483206932471033221145321253371354681463211564321664941766641867541967952070252171152273612374512478472579192680132780911646211573158641695518056243617702842390849985141561605722611712671371241503523136240372663827149283110373911421612442713450214456815502116556117562618567719574320647921738922749923764124774725846826861027864128922715442634373648025956610077107381253914031902791315324264252708638097392884974950091059621166971267691376811477681578201685491712671371248145904696671278813689144410156011226112239913249114256615313916322017331118389219398220408421415022428123431624489625494726536927553928610129613330707131720932725633733734736935795036804037814238820839831840917341926342952943965044980145102234610378471094048113834911415501158651117215211793531194354130071137221233194370543665407111281202916481017391118771219381320241420591521801623411724551825641926872027822128582232742334092434992536012637322737832838492940353042053142283243043343943445653547053647773752033852983953884057094157814259184360681137221233194370538664817532810139185310194811209312218313244514256815264916326917330018341619345320371521419822433523438624447625522626527227536228541329592330611911512351379748935102461075711418168391940102110112612122707132887142987153083163153173287183423193523203555213645225326236611246632257221267316277348287519297654307805317827327838338635348733358848368986379017389132399213409300419742429816439947441073845117544611850471202748120934912153501224351123385212513531394554140405514775561552857155945815666591577660161601772293376348375975612287250982670929631038711140681244661345761447531551451183293631002415385155961999724128247892599102709112860122941133262143335153489163555173697184614195488206062217094227200237266247972258882268992279224145028623928414205155061691717688188892309145027713173242649527596363173766838569394610401211436812528513589314636115651116656417685418734819742520764121783622787823818924825525829626922727100182810108291022930103193110395321043633108953411389351149536126133712828381291839130094013150411324042135404313582441389345139594614000471493848150444915110501530051153415215565111228381949175115561236716548174491876101927112348122404132435142517152612162649173284183321193777204171214216225274166297313341655176622574128443921491022641123011223971324321424731525631631021731491832391942712043612150622258032362632463922564242671822773322873732974353075053175523283073383443484373587593688493789943890263990694093804195164298114310350441138845114254611460471249448125114912652501370313122583348444355476100971544816349267510284511315512460413471614478415496816554917586318651019654120680321683922691123709124724116621123903410015185961949733518339293679104476114783124882136329147243157333167620177661189063199130209232219514229559239655241034617126713712414535146561724718148202192072102479112545122666133367143498153757163969174710184748195214205345215397225426235883246014256273266404276470286891297324307414318085328566338574348664359937361042437111653811465391153740115684111597421177443128361727683100841118514336145472076821869276810289911296012299813370814377415385016430217482918489519495120506221560222617923631024637025730226743327836528842229842930930131935732948833952034104523510508361061937118503811891391203140125604112630421315543143124414353451462246148314714847481501849161755016216511725852173685317781541832155184635618542571869358191555919190601932161194626219513631957964196896519739662005967203731707283831097412995156061670720988258592716102793113289123420133462143568153717163859173990185370195648205738215988226413236474247014257118267228277278287313297458307479318019328149338640348781358928368979379045389139399217157021361316574178051870619727203882628926431034961136281237711338611439111540581641141741291842011951622052822156032256752358122459621791210873121041300514026146872008820399257710261811285612294713298414369515377016401917414318439019442720511321526822530523535024548111362532318634267352763629627345084161942331052931153811112283819491759486139672051821749292210368311392312399913422014436215439916450517457318466619549820615321674322697023708524768825786726790627861128873629876730913731924732956733964834973735980936984037986938100463910438157621367316634178653200646417470786026961161063521169421270001372151473151573541682351782921893021994332095032196112296502397692498412598842610480271078212129431454621565667147804814949162410223711232712314113342914346415356016365017370018487219497720523021527122618623714724732725768926778427803528922429999430100663110132321022233106653410855351201111122838194917511556124571667817089223010231711317212326213335214438415442116491817606118615619684220737821869622872823877924110262511121261127527113262811392291245230125141401254539564127351705617777192183246933411042581143301244671346171426253036204941510376145371557817419215810296911370012374713467714470915475216481914727183808410435105062440725308348093611103677113832123879134970145060155402151246431090413315134661403724958331993741103832114642124732135048145228155318165859175931185974196570207382110022303285439154576486757688979944101581111671122481132842142889153575163607175021185035195101205148215785225875236685246781256882267379277410288836145121242315484163851740618067183782452934551035451145771247021347721458441559341665951773901875481975792077362178782279992380462486832587732695832797142897802997873099371791210873121041313516066186772039821949244310256711281412285113353714369215372916377417390517912908311424117351385614177147881634923751034011138021238921340231447731548711650091751011852141957842060182160632261292362422464962567302669002769192879402980303082373187833288983389393491093593613694023794683895643996394097864198884210170431021544103114511002115822243458468651312613847141581435914851017861123371512842394041093516546180971966823809244410251911276812289213313914317615386216401717405418409919423011122838194917514256149172404824459255710264711288112293213344214363811312201378841626518386192871994823019235810320011337012364613378414381515524116527817670415721283834411695240462445727608281793418104228114318124369134879145475151425713130041395514366150272042825389258810277811281912330113335214338315441911122838194917516196252472590826319266510281511332912379713391914434215447916451617452918495219500320543521549622564123570724624925639526713627725128739029793630800231820932824633891834901335933436946537953638102773910392401053141106874210694431165544116624511693461225247123034812383491239450126145112665521280253135855413964551405456143485714479581454959146366014929611524262159416316071641752765176176617968671801968192496919309702070971207697221611732164874216617522012762271477227557822836792287380233818123432822426583255668425573852580686258478725886882667689268469026970912703692271899327564942763595276679628677972870998287609929236100298451013085910231535103316571043183710532007106320691073210110832935109332581103396011134883112349201133593111436354115363911163671011736767118373541193749012037736121377981223831212338378124385941253866012638732127387841283910412939254157256736774101751093615077193182267932201033511134421243741352471453771561181666151771121876581977242079312179682288352391812492772597532698892710430281056729106393010682311127832114281652106319647355782687271904819619237410241511250512275613276314385415399516400217406818543819555820587921666722675723707824715025726026731027763028794419124183461454955956685789281121911711012621113301218421322751425761526071630371730991831121932022034972136412238622339992453502556032656702760411312171323744285460660276388679911611012831113241222071324601424911542491643001744711844781951402053932154302259082360692463612564222669052770152878062978963080793183323283693388983489393589703690853791663891733993304094514110738421081943111254411576451170446121764712286481246349128551711662973133416551766225741218722173671481251047611187118081209913031019461120771902222324144125506696871019818109211710253111259712267213344514376315383516392917463518522715121173148484859636128371373824059244210253211267411127523111841208514896159971920819519198710201911203012215513226411127523840497051424615197193182440924951025361129901237971349461450681558591659491761321871491977672078082185162286112310025241059125120112612463271251028126602913112301314431132103214164331425434144253514627361471937147263814776391486640149904115243421529043162204416252451629546163621253228431691418805195662657731278314093221103311113415123668133739144190154235125323243438458056666697790981004910551011211111521218721320281512842311494122952689628547297783014931011031911132571235781336511436961538121640941272583464412615135161528722578272294148104214115019125091135409145613113029503125742805537756381673914839929407311042175326542815371692171853819489287910296911307112313713395414426015457116519617540718556819564020567021601722610723642824647925656926731927762628770329802816722383248499151081612337138281789922241023141130521239741346511448331550321657771765271870381970932071892172612273902375082475821130225931071411615195162771732798340393650104104114717124807135621145909156604166700176724186983198046208136218202228274238576248686179129933124641348514406280172882836919384810462111490313842676313244169153568638711309237534314462549865307541868497331090411105612125813128914132515135716136817149318160215121463270433654996546716578244892862103316113348123438133514143555153614163785174798184905195001205311215725225791235922245988256328266430113121693379491059346999710958161891754102574112988123442133590144162154293164431174615185032195089205532215704225834236898246970257272267382151284231208416225168862290724438365593763104365115156125463135665145755155897166524177299187380167285831277414645155461650724938254092615102705113106171267137124150351917620707216082614927541027951132181232841333921434991540391644951748851850201950712062371750284839864106651617618997193181984925091037601138501239591340001440781548241190289231101411875121861430715258202792077102267112308122790132841142872153908113022363327444851264613857147582186927191028401129701236811341641442541549651661011761911869021969382077792178502279602380102483302586441439254036304917513626164971739818409304910309811318812366913487814535915544916549817621118630119701220822421829513121741319644235652414625047256482791928871030771138271240071340971441631542531645731746051846561955632056982162042271882372542474492574962675622779331130218131268413095139961759717668218392338102404112560122601132691143230153277163367174399184471194581204631214951225265156246335134703574461284713748218493233103280113820123910133986144396154432164483174551184624194670204757215741225807236002246074256370266480113021813691411575122361842719248199093286103376114194124266135552145810113022273293462657576120071331813979142810144811184015121173307435254236460771987569111710122711145919152179331883427555282763007731571701212323187442235524376249873848838989393910402911410012454913516114526115533216578317599418617511512143331964421665222763509740708414294283104326115602125708136659147271157338167854178144188211198998209020211034222104322310833241111716182826396641084515496200372122822649250210259311322712334313358114386315387616400617431418444519445620474621480722485723556324609425610526619527631928638529643630650231681932690933723034844235851311062181341946265757695979668100691096101200112115122141132212142392152508154026773694484559856107571357814089147410200611204612228113237814246815253416261517292618299519308520330511312333339444805520615917170182793930461037041140751242061349761450421552321652731755941131233334374477549366247105581087915771017191127551228071328391430871540141642361749671850431954562057171707212383137541386516766172771793819949223410244111255112267213290411123013862411145119861505716158199717502840390441947520266208772134826049269310339411359012380713386314400315429316434017481018489919560020679617012123231369413805167061721717878231992416102511112617122766132916142969153259163284173374183470194313204409214842110622483338441854806576779615312733379448805920696071036812669176810189911266912273513347514351615383716453917544918569119586320600921604422611423628011612615372541374515051303234434064718577968837135681374914641017261117871225181326081426981527981628481730981839091940042041702143902251432352092454282555252658552758902863772971303071963173253273683378753479223591823692723797503898013998914010641411068742107774310828441133845115341241231233744398548861131712068129692168102909113157123327133806143824153914164176174764184830194982151211733294597576561471717718242111512220337045055836696771057814099145010151611164712195913206714240915247516256717263518295119300520323112532345338848765140661733722878239792798127325393605467751487618391701283238984909510596112071676820539209410237411246412325513356214367215446316496217514818593919624620628721634322653023707024711125748426763327775528788629839630849131100571122291331220421185289263211733018339794240104287114362124452134853148283939374109051651618827213782209922401022601133221750212413137141461519046286172970151262137714895596161551715968233192421103024113564123695133730143800153966113922293451456251032611227189311702202329743875463650475388628979910100911151712164113175614188615206416225117249918275619329620378321401622456623463224474225555615127573798411095124861295713858142191453101519111576121642131683141808151917113125743705477159216119811302141317746315113961180712758135291465101593111625121751131783141849151886162456172463182784192821204531215454226327236534246624256684266750276881287324297547307864317918328144111247350145715103961129713888143591923102566112697122729132819142900153012163668162497354941004511356122571232813729152210199011212112222113231114231815245816253017268018317719320820380414121123371440754446846795281023911721013431113901214611315511422021512983240450151321618057251782610934071035051135771236231338501410251536054641510956113172087821349303010306211329812334513398111124735014571513276174171807823049306911124735014571511196125871333822559239410289111348715372642373247685122261320720638215192261103052113150123164133451143765154571164746175085137254035724692511646128871418814699151910153811160412165513208114209415266416270517356218356919365720378121404322417323422424516525518126524727567828576829608930616131629832644811100217553184542166522386294473885849361962132358646765727612237158581610916711018121119021219531324491427161527471627721728331828651929062033502134652236172343672444652546032647032748642849542950963051983154063255163355823463353563863665921422132322943155832696371029810499168015128423180841889519556210872699828709293710296811369912377413386414470115473816488317494918498619614620623221628822647523651224660425668526745827753915721923613471551301617577226882358928121028591128701229601334141436221536331637231738471839131939602039712140612241852342512444592545692646352753882854392956451412112364446955112661192716468175191851102391112537122708132791142869152909162999173059183125193231203314213637223680234190244786255240265289275799286519137234833994250652643628027300983321936541037301144311249221351481707220083207442725528786294973820839109433310441211495212502613532214555615562716579717637318638019721120734221828422100312310141241093125112322611370271192228120532912450301250831126783212768331316911702616369241442515896163471962112912135531421424895253062661727518284193380104418114504124736134788145127113022223290433754256586763387219831101090111308121484131678141788151835162252172368182524192679202769213016223047233477243539253552263687273801283836294062196215083271842881529466310673248833439336010345011428712437713532911102139320543525659673578828120491255101582111690121755132249142321152352162381172558183620167212931804335549065567699884791021169527913822415925175762561725988264393859132282331233413235139962149722918242292488103774114032151284231149412255137261912719368223792317102849113702123775133820144738151284231149416035165461955721158225792347102405112485123517134225144267154762164769174836184911195684205765215812225887235977246378180256838014121951856619377240382450930871031771134971236281336941437011538511502201327243115403671577478788910361013481114581216531317431418751519261624131730561831861936742043192148422248932354032456581170286139714103751790618807195682706928531028981139561130232433904950510256128471433814809155110164111229215128835004137651547623177234682610926351028961952507397041151514106150672145822169230810237911248912263113264214308515317516371617376218386519396120426121439222445823551824563825587011302141317746315701614577187181937920091023281124381224791330751130214131774631570161251713718147391539101629111720123184133264143761154081164128174194185307195418206014111228381949175968614647185581945927361031501136041238841339601441221544831116287231369422095237962791728578301393314103410114020124088134272144291154332164632175282111228381949175142561491715998250592542103438113470123967134193161426563722484658836167072604831649323010340011410112461113469714488815495016514817576918633619699520751121762122800223829524838525866726965827975428105242910596301066231107523211169331135934122241506265637024842588361724720378246692593102713113054123127133172143417137252031331421185324263332734088344993508104002114075124150134923145943156212683128841764517846190672697831689323310397411405012421213510514590915595216646217721814828393205242117522876254072606826519274710343814502862392841420515506169171738818049202810299911326017121123202474157886878719108195792023102696112974151021320313664257052741634387386784384945041048451154031254711355131456041556401660941761951870061970812072162174392282112385391802115631188418995195662563726758291493454103485113891114022155732323423845242563112731448318693276103342113388123478133620143646155450165540175606187014197169207375218125228223238301248667259081269147279749289854291106630111743111924321196733121343412218351275811072184327443105764681079668146291874101940112002122103132154142287116222303323411555146861897720248214492485102888112978124220134293144383154603147224433344114451304616257169781847924801512842311494122952689628547297783014931011031911132571235781336511437531540351640801741761848671570261139074997517076176271858824489266610276211305212354613425414440015537716561317615418620119721620728221738822762423866011122838194917594863055731228321293332103363113520124154134171144212154772164876175282187126197216207354217401228491238836249059259163269226279316289759299810301032031109761624973545410565109361229717878224392298103006113202123340133432144140154777165654175824185977196067208008218138228591231056324106142510680261083027119332812264151267137944130551362619147199982304923121023691130681239811340121450821551611654821755331855991956422058482159151707221173220742263526816290873123837149378610396611411617012114631697418475189862709727818287392989103055113631123854114025403606481451311620477263582701928911038671701212373149341574517546180571919821819321910333111342112355813374514229337924170552188622787260983315934331036951144021245141346041447411549471472155322142535765685571400815989160510165211202312205513214514226915233516246017256912192509359941390516976170472181824609313311002150324045125832683971257814129141910224611242212344917121123202474157886878719108320093320103641114429124519134840144912156198166456111228381949175948614067164082593935891041031141691243591349331514279631237417125213311032169350246925139613442385317104180052062621267320283741947791052541159141791210873117741479525276358575526857749589410603611610812612813637717972149931686420805208763064733008422794293106121116954127050138340149129159161169227179303189610199720209761219948229999231020516721293145441544517916225172864829549376810405611475112484713501314521715544911042113431224414165157661933720238305594293104403114474124652135505170627693940496551992626521372499353641008515056169371744822549245015122813589477358736105071358819339238910247211256912263113277314295915302516381617391418563019578020610021617222620323622324728511842250310414113951303616951412551360241643517326180971959820259281610283611298612314213352611402650311964167351763618957194682487926711033331138301254361472139317144675571616017169181828921491022811127221227291332591438821539921642261743221845141946242048112149712259812360472463682564642665302771421472118333843895123561267720208208692510102590112686122900133409143505153966164062174158184372194881205718216179226275236411247023187217732394770588561153718838200492072102143112282122372132474142540152587163544173591184130194202204222214606147211832994331538265207773820549213510294411334312343313372514463315483016522817533818551519590715272593311024119851322618317266882740927601030091112283819491759686146472255825629284210295211318612385513477613229832354252510626149412502340347841269515766187971922824509251810255911262912272613273314288415298316326517334318389919496111402394346045455124661815725738299193693104543115517125607135879146495156585166661176702186964197005207471217621227711237935248031258187268277278501289338299878301030831104733211015331115534113063511486361155837122643813174391328440135111701213213135841850519606197372306824569254610340811405212509313613514622615669816680817684918739019742720746821762222769423850624854925914515402628379848885964620357213182313936331037381138881239991341031445941548301658461759141871241972632082132182982285002385352486162587062689782790682893882995183095693198413298963399613410707351079736110333711074381110539111774011227411142942114654311536441161745117074611979471229948123404912921501298351131135213149531365954137495514227561446657152575815679591583460163956116436621739563178836417949651799066180806718440681862469186657018755711895372190257319175742027875206091512842312854143551491620327222782319928621032631141371241781342671444071545581646241747891848401949062061922162801112283819491759486143172242825499269310342611412812513713522714625915626616634417736118739719747520765021769122813923818624872325886626893227968228995529100453010228311030032103383310804341087635109193611515371181719621066311564125851324613317181183166932561033221135811243911344721446511962576358341553516246169072654112323763466453251012610877112981599925801045201146831256511357411458051560361662011779481880231985812086712189432297252310242241077825108882610954271100528110712911091301167815124613527463851671617617181883218933881040891148301252401353301454111555271655931761691863921472118321042615130161397724678287892921103951114007124194134734145230155280165470175511185993196044206075217111117126443170141767518776189072561826519271710277611287412295213332314526533777484359156121771260814661134222432904400562761328719008203592332102422112658123104133259143676153774163975174429184539194596204674214764224896235016245877255979178263237794883514166200272572826339333910346911348012357013369414394515399616406217417218422219454220485614722013257479859936182671892820789230511862977312154136151436619447248282572926741027401127471229091330471430831532731638051744191844641948242055902158932260282361902463922565322665732766732867632969463070183171593272023377281791292931662418495188562023720648260192731103033113153123404133881143932154442164697137255731348418855197562077721438259292624102654112778123025133398134823913838490459946190972943837369380610396111400812409813485314488515557116572617576318580819593911028211953128541351522676232472390824219331110351511374217912126531330416635175361829718708200992348103168113294123429133943144147155167179129223997411395119061332714368155691646102678112815122918133062143183153249163415173512127024373527459351509615797179481870923561034131134791235511342571451671561871922882312834197952042621537328584028940791045891147851372132392341320514106174171837819179293410300011332112354513361114364315375616383117474018483019566720574821652122754115128423175042081522166229673313833799370010378111455412463513721673958412655135761487715628237292638102730112860122935132998143540153621164394174499141211231784111851345614557149681987921021025201125871237301338201438721539191639901740561842651943752054182155242255902360152461052564002664902768112869892970573073583174153279183388313490013592053610225137216739584165651699621467221282302932171032281140391241141341461441571546571647321749731850141956532056602157162259032359742467252572642683022783742884172990133098251134230433704506512976143571486815529194210205611312812366013370114383915442016452517573718584519603720685021762322797217502793313374142251479615457164582618927641791292939804104651125612177124981395917211021391126111229661334221437041538341639381740121843021943922045342150302257792363492464992575202675712780812883361131287931063417855207562165723178233892834103080113540123871150224031056415335163162173724438249992686102856112886123006133288143929154018164202174290184337194392204488214520225031236468151826083746410035165961749725408295493408103498113690123786134577145105155816166547176604187303198216208347219097229187239304249582170722008320744272553516639307438484931951021051391160601269031371201482761591901691971797881899591910111201015221111181312551313424169651739621477222982280923491023921124621226591327701433351534701635601743641844451952182052991712161370041738518106192071970822909260415121413871414105244863566736678396094402104479114546179121777318434199552182622987240483176932661039961145351255731358261458671569971677031777461878871981182088912191731253232434144144851730619147293782984940751041651145071253235535764682575769197970810689133210150411175712311813319914400815431416443517496718551019562020605512532711375241283513936170371740827989285410304111311212314313425314440915472622386949305961618427198282123922731023631132831232901338511447831548731657451766161868321976492077392179992287192388092489212594652610008271038928105542911080301184631123003212913331300334138173514105361461537147053814829391489540149674115096421521443157541312131131843426345294163031730991511268131221413145141261490715711100289131399416465172162175727888287893692103980114675124771134859144949155073165139175186185310195376206186216650157214731834637575768637931897891066101167111214121302131388142419152484162515173481183895193961204552214723224790234865245114255238265485275536285602295942306044111228381949175121761523717488226292328102518113092111228317046785940616817247182561927511027751135111236071336291441371542731645081752391853661958802059462166872272442372512475382575892676552777262878962982091414290631029410665190963052731068314393601103724113765123903133959144030154047164280157211773120941785518756236772533825749258610267611276612291813351814455515483416496517608518611719662820673221673922678023727024743225818226824727827928879214142566312164130951440615017159181711920311021261123171224581325341427951372850310374117551616617197178581875920271023921124881226261327751428501529871633841446293831356420585309763207733388388994024104529114771124857134980145017155480165823176037186088196327206423216494227555238365248461258532268923279094289523291030530108993110985321110833115053411660351177636118443711925129424463527411475127061666718538200592086102706112829123225133306143436153531163538174258184411195538170821716319524199552338628367305483493935881037371138121239491343461946217373177342400524906324574160851129580010595511658212664813683714697415705315128423959410375152962500725928270992799102911113163123415133756117622423332443451414619847289283544936751037451138661240521350631452281562591663001769201869771974482074722175882278392378992479792579982681342782892883702989903090413191123291473391873493183593883694683795033895433910260401027541104314211492431162344116944511729461234147124974812652491274250128185112929521304553130535413060551312456131945713320581335159140116014067611437062144606314661641575665158466615912671596368160296916100701625171163301962316335749775105561106711768125691341101381111512121583131668141708151878162181172262182932193022203098213209223375233383243390253454263545273848283929294989305040315110325190335280345320355451365522375612385652395817406438416519427579437669447745457856468408478416488423498487508544518615528848539564549650559657569904579945581054659105536011554611171462117336311869641202465121556612233671295468130446913794701391971144507214540731560174156917515767761587877159947816002791600980160738117283821832483184358418525851859186186638718813881890114502472353846345723678971096817459219910281211290212371613400414469915479516555117567518672619622663332463951129611567180582057926931027891128301236031337081478294931374414645164562502726678294593095103226113542123804133894144343154761165313175790185797195910205976216061226164181821296314464227952410628147295084108942741043251143911244621348721451311922536364647125153261738718458189192431102905112995123307133454143872153938164093174170184236194387204466150629503177041976524886290673608846169467410515111528212534313614514622715626416705517756718761819791920798621851222858723936124944311122838194917594869967108681137922441023961126221226591340201451641560381660791769911870231970742075452179412280482386862491152592462699722710192281024329108753011196311131532113813311476341228735130181572702312004121651327613437220082269926301027411144491245441348651466281570871676351777381116218783198842879538116385274724860819623110688311882413725223563464157116801795389859102610113011130012135613142714182115236816244517254816482818313254184452918634957459385052956841061431171751276881381601493411510415161050517116121812065191224620125272112999221308923133662413456251363726141092715183281524029153713015441311592432169983317055341716635172283617398371748338176073918398401848841186724218729431924944193114520403462043547204764820580492075050208015120867522093853222255422484162627163868490059416143171593820169208210225211229712238713242814264515343516348617529518543519568320689321714222726323867424868125882626936827963328107282910765301082731109973211128331297934129863513076361315237142783814329391439540144664114617421469619621663715486559116962710508167092238102408112449122939133101143191154142164710174782184923195087206019216109226981237201247954258045268513278778289207299796301100631115963211633331377434144303515212361536137154923815953391634940165944116814421685543169654417585451767546184794719229481934949202595020810512096052210175321716542252655226165622688572397458242321224229033924482557767377152881618918101022341124041224761326261427041722296334747655935611657195682494932371032881137751238561348771224229033414111151291620277222083181111228381949175948614067154481666917411017731118241223001329091430291544301645801746171855541958052058562159222259932360552463141962286310364116852145623717255682808928851036351137451238111340921512913311464118751698618237217382353928941036441143191245901372934397541885519516195872890830009387210416611431812439913488914507615522816530917584218594719601320610321701822706923713524720625725826757827772918622403327440851028611517154782344929181030801136121238091338601439261539971641071741571844771947971265246835784730577361683717498266692776103648113697123935134025144148154789165741177131188203198246209234219300229778231091524113332512444261272027128102813755291482530149563115146321525733166663416831351693436169853717051381712239172334017466157211773167841786524466251572605826469272110281111285312290413312914326015345616352217363018368119374720381821396922478219021563193411205112761448715888170992427102770113268123486133727144437154780165021175107185245195333205392215525225572236062246224256275266341276372286392296482306553317625328512179121489318024194452609631417318283629936951037851147001252321356531464271565331797210933121641437515796161671778818469188310197211280412290013298014338115341616377717392818428917482903393941037511056119872030822749235510270711277312285013291614296315311415121173148411285179962704727618318193304104271114693124783134872145077156098119028923956410465109661142714638153391555101665111717122037176627863157741884520576238472420828969294310397511401212453813460414512711122838194917594861657718148231192602103020113567123608134200144237154293164325174608184710195128207025217082227592238642248649258759269099279106289120299133309283319373321042433104313411002351115436113043711718381176939123464012521411254342127394312821441291245129634613029471310048132574914544171267137124150351917620707216082614935801044771147631248141360511461841722213336144775545659277088776911271902881389841252513736149372415826239284410307111324812445813466814499615503716562517576118585119594620598821608422622223644324658025675726796527806628887729895230910531921132940633947234981935993036100923710124381029511122838194123351687617857182881966922011022721124421225321326641427151528741628951732351833451935592035662138112238722340232441252546182646952749362850022952291512117314841438514896201972026833229336310342311417312429313461414471015524016530817549218618319672520774617126713712415035159661832718648193091977102067112388122425133461143982111512126132007421175218362936730528305993601103704171267137124150351917620707216082614927761032141146671248751356951460021560541660741761641869551970532071561672858310534111951215613757144181601920081020431123941412116326843585479612617129281764919061022671412179332144315472691979858107591990102174112636122667132926143380153490164003174094185115121523053396440355446634772888539969101069111410151284231149416145176061985722378232893581103669113801123845135061145914156718166769176835186906197001207080179728953104841609523986285273465835559436910465711535212544813545614553115562716564517590418663919757020854115121173428447958966142071461815039221110271911278112292313297414344915358616363717370318386419490420491121496222502823509924528025558311122838194917510146108071183815109156310183511198512211613308414317415349416378917383018389619422920428021479022534223541024550325633526708527789528802029846817126713712415035168661782718808192392011102072112119122207132297142449152729162780173266183307194754204864215112225163235480245487255717266118276169287054297916308003170828483923414315147261513716018166791714102041112652123014133174143314153419119028923143141578516216216572235827759281510299911306712311813337414340615352716413016728583100841074511156120571388825399270410372511386112393613402614426215439916544214723893479477558076927716808174691788101884112585123562133798143838155666165732177479187554197881207931217997228407238666111123393370453259506105471185816889179510233511236612239013248014271615292816300917431918447219501314229435674722577361311715628156992380102470112745122786132977143009153179163314173356183452193639203680214722224729234830245641255716266027277340170821245313354142051625626461151245231103196218532514584573168417163281793918591020141121041222571325581429151531411632651733321837231750216913178141847519636203172182111228381949175222463192736108451394520104858114982157220733274438556961123712708140191505101666111732121842132543142613152684162839173159196225031160412505131661542716138168392153102275112348122403132414142914153384163539173713183807194828165127413843490951700622667232182417932561033521138931239831340851441511547711647781758201860461965172067222177431472137316841155512456134771413829609305010331511347312360113439214459415484716570217579218650219684820785021789222800223808324817325827726832427843428851529860530870931906017912889314864157651678617447254182848934451035351136371250841357021457601561611662121762461866471967182076791712671371241503516436171871825819109207410223111264512270913286014328215343716399917470118509119522620619221633422726923733524734225764726856227870628895929902930985131100123210574331064134118933511934361196837122803812410391292140130174113187421403043148404414960451547146155084716934481745511022585387941356513986190871998822099256810262511316212328513343814414815423816436217442818448519502220510721526022597023606024620425633426638427647428659829666430681531686732704433707534716635741736794014121553245436855386604765187659855109401111101213201316881418591521561622721723401826601902179350646905771683779338137991500101862112017123016120822933107541291513816152571937820429217710338711412812466413473614516815520916568717683818700319746520757521764122775723782524789211122784311664120851279613697149382703927691028191129141240271347581708276731008410985122061227719448272392730102772112987123028133355143402153449163721173856184031194822205414215549225622236532246598256768267427278370288771298803308974161127013803486959006143071462816729268610291311305312311913317014328015334316413417444118451319481820488221519322570419025503100641129512096124471396814929158810204811250412258913266914270415283416293017300718307319318320323321355322410417082117631601417065182761923719308214692197102263112334122444132494142814152895166297313341655176643974808536972310754119661210611311571413521514421615081720311121221133014663512136128571611816549174310241411246512288113297114380215386816396417483418490019506020546721550222560511725338094870511776178971866819779408410421911427712469513492114501115511316517917531018575319718420777221829022879423883124109382511073261112027111572811508132282331009410505119661318714318208292089102169112867123212133263143870153877164425174616184658194969205035215209225379236086246217256791266941277548287692297793307954318075328178338244348334358489368592152321384316644171551882619967218782237922781024891125301230961333841434801536111636811742641844171945182046792148022248722363032468912574092685802786932888472989373090923192433293461472118328443355875610127104481654917501022801124171230271339251442321543731643981745731846141946552046872147382249492350802451512552412653872754672855572955743057103166083269153370563471133571843672743774203875423976554083064184054285804386214486624594864697934799344810104491017450101915110412521097753119505412363551245356125195712596581266259128136012892196263637734132851430615287216482260940681041341142491244101344911445261553001663211112283819491751619630617315183253933191038681139051244481345681447091548101649721754621855991974572085272185822286782388822489482510079261081427115842812094291218430123163112486321255233127223413271351332236133883713459381350239140984014911131251737794869510966230672353835849373010382011392212398813411314435515526516533117547518560019584220595221621822643023648724656725663326679227770828777429791830802831829432849933952016082703320344229352370624367372383982151284231374415115249262728728668299693506103644113715125225135315146347156485166556177026188027198093208235218931229027239174249267259365269842271018313221573316634192852086622147224582860929131029501134251235281147228733534404557067357812887891035102322196231534054507557365907680817129299410372511386612396213477514486515528216553217557318563919594620648621672522720223738624756225777126788127794728802429809030937731963617082215032240432725345263622736848373594532104622114779124830135950146001156601167392177699187750198142208220218310228391238494170821178313134193452009621667281682921930561031861145401250841358661459401561431662331765101873471974522082632183332284702387172488472510201261115427117042811714291250530128123112848321441433145343415093351607036162963716466381655139165754016612411667442168444316895441696645170284617739471782948180784918085501859551196455219696532097354215325522845562381357238645823930592400560244266125200622530617822213232289432975336363515737028381893939104721115312125550135707145758155915166386176496186723197147207700137249935894200352180622317271483241934171035541136151241421348071448971549631650041750351853041953812054472155982256771522191325247065847613457140781549915921018141118801219171323871431681539091174721813318644193052001632887354713724753595413865250362739727908285692887102907112997123068133726144278112062129631438414755268162771728378285493009103710114188124229134260145280155370165537175614185680195723205929215997162497354941027511926128271337814339160310165111171712188213193814212515216616225617234218249719256419622463323433051310615057204583795938611038781139441252311354901962188373049025999611097130481381914471015981116771962188382248295137161911721618216892391102575113054123513134061144164173298331049411795183862313724188255392604103470113517124413134445144681154728165814175904186224196318206384216514226968237078247244257285267355277825288365298442309352319418329548331056913128413931416615175161856718888197892219102420112427122823132830142960153022163164173260183450194200205614217055227121237347247818258023269044196260739344102451100611417160381638916881021761133861234881337151438061538471642931744741845721950492053901512117314841438514896201972026833229336310342311417312429313461414471015524016530817549218632219718420727115121913281434653786931798881128911601015311117861155222133584213952229623267247983606196221194315664215852910631037347584855955851056511157471274571378581479051579951680551781211883051991652010077211018011292290333744665867689972306167216032584295536864947643179728953104841609523986285273465835559436910465711535212544813545614553615560216571117580718600219609220615821629911002264330144035439689379838113391210101230111237121274131291141326151416161476171542181589191626201977196224633364897598761907719148247592492102628112775123475133564143601154637164998196221532804410554165607625864298001012791113541216131317621434691535351637941744651712112320247415788687871910819879205310210511242512249311032211223127441404514706203072175822229267210284211293212338613347614393715408916456117459218550919555020597221605722772123777224831125985826994827100702810127291068030112013111403321145033120373412127351293736130683713134381320539132124013363157230431385414755158361947719548302793138103200113356123407133546143654153783163948174758186173196395206734216791227316238229248360258426268497278540289136299949186210423109341604516666181871860825989270910319611324612335713474914504515510216563717655018668119674720681821810522836415728483190841974520256211572650827279279310293111301017121123202474157886878719108205092207102998113412123866133956144148154226164277174785184851194908205615215746225811235852245942256481266528276618287650297727307793318854328917171211232024741578868787191082026920941021611512362311394115651298617157257882655927211028311135811238961902161338548945990611947126081769918651027081127851228511330321433351112283819491751000612077140981729917941018361119461221971322041423361527361627871728671839281939352043262144722245192345672446782555572656092756602861712962283066713166783281553382863483523584233684663790623898751112283819491751015610837139081850925911026781127881230891335491442901543781644681746001846961950062050742155862260192363202464132572452674292782592891212992081512842394041480517876232772425829659327210381211383612413713420714428715435316567317574818578519588920599215022864391749925176661848179122557329494300753097631577338484853950221051351152661253791354441455681110219733674457591169627166482274926861027521130621230701335591435671536781642591744141848321962552063452168672280822381932488952595102695612796272897412910103301050131105913210689331081317912154931611417425181361903723918248192547102685112756122876133046143103153174163595173747183885193956205180215350225626235716245943256089266167276289286345296532306618316731326797337218347328357555367658151241331154412205123761957726658281392854103011113159123280133557143699153736164722174788184820194991115042156632316423475238862440724778251892570102666113536123602133762144169154204164307111228381949175948630557344783505935951036551138821245531346041451141551791653491755001856031512413350347585960610507133281418918251019001122511322823312334137551989620577279182900929651031121132221234491336011440171540831643101745151855361412231329741132511836214372680827579282310334511349613125131174356546565557722875498441018141118911219571321381422891512464312754128252373623807293783057931331032641133301234011335581438731512842312084127651577618637191482311923731024391127401229481330941439681543241651981754841855351972522073142180642281671672112350046095114161562723368244217972895396341264513406173771799818129194710201411216012263113288614296315302916431617457511212157361146625114961304717288181891960102144112242122358132581142671153421163639173891183957194170205996216293227310237850249558259692269782279858289899291035830108523111139321125933120093412477351259336127443712847140726383884415825176961844724868252292590102777112852122883133364143454153947165305175440186092198033112321118318144216552579626457322683331945431046511148381250271361371461691562501663161764321867791968902070522170842272551353254036504940513996242011872239382049695111961172714628175891824101871112412122459132592142698153005163080173137183928195046205141215261225581235676245717255792265799275889286029296061306535317516327563338104348275132238734534499557666427737881615721473183463756696855786289949144510150711169412178013193514225511052211423193341950522496240472826832659334010348711360712370913377514450611352215863169641758518836198572063822059228010281211323312336813414214422411002104831138413095144461673718358187891966102027112074122162132252142404152691162848173387183451193680203748213841224673234740245311255516266537152212831894250532663677431859096801076111843128841311431413611515371617311718411819971920222021542124222226192330872431082533241297240137774907599761129714268149691871102001112097122163132279142780129128933194942020521066227772387824539246910254511286612294313300914310415318311002166348545285616667777708917910601014351115511216191319391512842311494125651376614787154481648924851033471134341512842311494213252202622827234883668937431037801138841242041322351344941144512406124871325820759218510225111253211122831704274534866757816890691168101346112157122247132304143011153142163207173248183338193877204915214992225058235209245288111247350145325196962059721838222092763102873112939122971133110143202153351163501173554183844194140204206214707224845234886245176255396265491275669285737296038306075316618327654338117348928359018369110379176389212399231409357419408429494439529449569459604469645479735481027449103215010411511144352115595311627541169418027003849490059866106371128811659130210173111182712244713256714304915374716445017449618462011222913310114116451725619567221182293923831032981133461241371347551454511563581671321772141872511973242073992174892275492376152476622576992680501112283170427453486606769689589110310120411146112156411222913310114107951693617007252982619928721029671138831239631340091443101549611102621156312224178251872619897204082287923421024421124771225171325581435591536751638951739361845561945732052892153402254102354902455262555662656972761692871802973363084483185293291493392063492843598963610131371025838113183911888401279641134484213520431358644136764513727461496447150364815088491540850155581112283819491751011612247166381753918151020081120401220811325311427011539111639991741341846311948792049302149962250742351152453391112283819491759486139371974820409207710261311289312293013298014301715319316323017333118377419405420552221643322652323677024783425854226905027924228927929964230100433110189321024033104003410520351065836109383710989381187039124104012520411275342133064313343441387745139874614559471472748152414915307501535851154245215742531594616482818313044138551469623677241482450936901037561137631246451355391462351563541664011764521866151966472066882178582279052386152487252588982689552710022281013429109243011164311125132113313312122341242935125193612643371275438141053915068401515541156464215736431586044167474516917461748747189034818993491915650192215119391522040153204915421266552247656230505723621582375259238186025104612536211772919395841033511636120271292817459179210237211246212271113286314351415359516379517386118399819407920425021442022535423545524552125563626615027621628626729633330667331677518721263216466957956158672000824549249210258211276812280613288114350715359716416517479118488119567220608621654022663023682224752425843626870127894928101592910408301044531121953212851331294734132573513392361357637135953813740391375740138474114684421477443157261112283819491751619621997224082397935751036551137461237871342391443611546991649991750401852231952802057902158462261482362052467152577652677722778822882222982293082433182563284063384963495473595543610125371027738104273910841401089241114694211644431166644118624511944461203547121304812171491239550124615112604521277453128645413075551318156134055713719581420559147706014940611513062161061934210993116541335519976273873405834129411310468311490412504113555514562115567216573817588818699119732211122838194917510006120771272815929179410183111219412259513274114285115288316339417350618351719382020439621491022497623502724509325590526594827654418021463937410355118861749718248314993359104379179721104318394230452371624737256511122838194917518456240572471826419334210338711353312358413367214377315384316402317409318427319478720485321496922503523561124583411402144131507421585222062532731618329693857104427114590124727134793144854155024165114175695185852196709206773217310227612238386249933259999261110027112192811600291178030123213113102321355633141693414259351507336153613715531381583139159074016657411680742169914317821441789845180311123211183181442010521706235372529828839300410312411404612416913507814515915608616609317613018656819707720718721785322798823802024819125832626855727872228890729895830902431904432929319628873102541077514286278073476836739458210466311559012559713693914704615716316901317905418911019929720944921956622963223967524975325100291112473501460556796102671098811889191910200011251012364613373614419015436216448217521218531619539020548021554622580223623124633312923631024192566561727718198198192845102935114337124378134665145423155503165544175844186494113424343122541363514146148071491816409169310198311211312228313238314247315253916286017291118311719316820323321338222343523372524377725387326396327499528511929519030528031581932685733690434701235775236779337811438818639829640834641866642898015372593398141089511536121971248813789152810237011319012322213371314421515434516507517636518648519680620759421768422800523807624816625870526974327979028989829995030103211112473501460556796102671098811889129810198311207312239413244514298815302916309417318418369619373320469321487722495123546324642925650126661127666128698129729517072838395441135511466129272220823859245110262111332212342513357514364915381816391517438318442419449420491021492422501423524611121573799418315207162512729348300093090103127114138124248134516145185156106113821493265431654126559782588839963101653112071122891132987143118153938164034174166184857113124153505412965204362204722708242693068103223113259124041135126145317156406166522176588187131197182207692217888113821493265431753976108771095811369118810128411207212252313275114336315341516347717370811312333339444255516654877488136591826101939112007122184132516113122683561471651049611647164581735927671028781133391234491336261439581437259236454708575368947159581898922521028641129541230131330891436311537211645531746841853151954462055382160802261462362362468671902561360246365165661697717498182391847101908112489122550133232143298153500163732161227633274745512986186572421825119261310289511365112367213473415652600379541325519416255672737828279377916522718319224244252532635647381983929941561042371148531249841349951454421559231659741760511866211973272085612188592289402395512497322598222610008190212438744134751457615197183181887919771025071126981239101341001441071542521643421753741855661960962062382163622264582364842466762566962668382769622871022975613079023183983289383389893497203598553699313710681381077139118034012269192211339044118151247615547175681846928781030241130751236221336291437681537751643541744241847091947992055102155172256642357542467862575362676112782282883182984143084953185853294223310195341121513228233123341323514556150672217823729260010265111271712400313426111122838194917514256149172907829539309510312111321112331813350814408215128423114941185512366131171352814429247410259811317912329413382514383215392216469517475118493819497920551121564622572723650024658112802331311514124151523615707161582481925771026581134311236211398280131068411395116061203712868138891478101544111616121710131788117025733663473951714618497198082046924641025791126301226961339821442401712611366247285763685371392824309321210330211362312491913503914536015543216554217559218591219622611122833554386548161272716698175992090102180112971123109133201143341153417163913174096184192194983205000215227226009236236246412257273267343277780288134298255308345318421329343339545349596351045336111593712550381260739126774013494411449042145864314800441486645158014615961471645148164864916576501664251169635217030531782154178915518105561817157182225818446591862960187046118794621889063195076419588651967866205156721288682230812272100931117416455177661816719658207292079103150113315123372134842145007155167166203176524186581197049207198217305227507237558247624257644267944111622703445410885118461252713188185892360102450112526123276133323143390153619152219138344930594961211712898129791446102237112375123195133212143568153817163860175316185406195829205895215979226094236414246525257832267974278937288974291028130107053111296321146733115633411633351171136117543711842381190839120554012100411248814792634373047815100261225713928155591723101887112675123459133606143749154003164284174454185048195055205146215452225487235583245653255731265774275862285928296075306120317178124723573110441256513096159971834819059196710199611208612272913320214332715342216344117370318394419401520407721410622419623483924486425589126655111142150327543185406647275678663973310811118541294213100814115515120016152811452206366048015103661107711698119891288101742111894122009132158142265152308162396172462182499193371203439213550223584233674243813253893264047274197284772294878304920315231325297335490345536355560365666375804385894395935406397417047428289438330448396458769468893479105489148499658509753511131915721263233427653646430746781339914071023671124181229841331041439761540171641051741711842321943632048062150272251192353432454092554602656172764912872942973513080823181723283143386411149223431302413985151761607716738174291918102140111228381949175948630557311183499935571044741145321254041355001459911561411662771764121864631965292065602165892267662378281690214813157141754527946319173326835289448810453911509212531213553214559815564916607017659118659819683920692921705822725523736524740625767426776427800028815511522943310414109451885620937216182173923201024161126161230351332221434101543311112283819491751007616217177181891919601021861126071226731328211428861529731637091738191840461941292042392146312247102348002449022549682650052757522858332959143066643175743276403380713481613584823685543786913888411922198326445715136861466722578247392630103108113172123223133570196254236084915517126181071941819589202410206911318911122838194917594863055738468555495678105697115806125896136687147101157555167645177837188175198233208747218813228864239374249570170821213312544141153124631437325284002941001042461142771245431130214131774631566661312714038143591486101578111646121693131781141873151920162008172098182230192287203068213365113021653288479058806163072183823079237310246311261812268413449214460715471616485117519118609619617820762521769222819223830424914125926126933827947117082788392641018511286176972102821539225710306711307412314613328714333015340816393416162134731482418795196962541727098281193310103412113453123531133737167217835284777589761078716508175292251102353112394122472132748153725933607467351784632147328483447934901036281136601236801342481444881545981649191750361857671959022059432160312260922361822464042574752677822779802880872982043010054311009532101513310338341042935105473610799371106938111663911232401143441115244212556431270244127744512805461282547131001422933129458356816119571576817419226710303411348812368914221383287493051061611087119681282913721016191117071217971320281421241529321632111733461833921940312047672149022249732350142452201112283355413875142861516715778166791889101946112016122596132717144149154845164917175147185237195379205430215496225527235556245733256125113021413177463151161612717159182009925661032091133401233871334751435761536661639281740451847761949112049522150402251012351912454132564842667912769022873632974733076503180421512842394041737517546195072338824289251910258711268012351213365814378815389916458517474018477719482220495311342148632137421995251162859729458323693327103386113682123725133756144177154413164804175533185930196526183211535914112651323614667200682409924751026301131701232871334301441601542951643671746691847121949181134243431225413635141461480714918164091693101983112120122269132280142342152654162738172804183016193284203340213430223960234028244212254460264526274641284730294789305071315118326209336299346641113424343122541363514146148072511835479359410368411372012375213378814380715386416393417440618451719471920490921570022600723614224691525699611122586362746935251062582738688412614121903243453355656861796581995920851022221125431225951328041428761529881631391742901844001945122045872150302255702367212467822569541130266337534813587969207951810519114110214211217912238013245214246315267416285511302141317746315662620997218982313935231036621136991245781346011447471548511656881757781859101967542074852183282284482385252486581150294131248413385140061712718228196391984102140112193122483133233143276153443163527174067178210936314751510616125271354813959147310171916102134131476419785276963076731788321993763103838114074124125134794144860155015165111175915185960196651142212032824350544964967584863096711024231124811225871333181434531537501487279239344102051840619387199482791933191038121141601242151350351451331559241660621761141864651972152072682174032276932379582480602580912688391708288539264101451055613827199282168934581035481136931237741341311442211543601645621748151849071954612055712159721472128315943055373642074858575971410889119401216351318881419981521751623951629269537384876513306194372033828479313510383011392612468213470314495217972110431839423045237162473725651112283819491759486160372025820669210510217111226112229813317914323015329616332717334718395216321443511457756476669711838124991990102481112488122680131214083147442543526336279572901842789432110493511506812585413597514655015673116682117689718693819751320761921762622815723816424898225928926945927952928954629976730108033110855321160533119113412073351277536133333714335381449739152674015339411540542154954315912441610245170781112283819491751009618807222782408925241027871128771230171334181439651541551647291922316371747685954610767119383043931331040041143511245211346411455611556271657531759101860251965162070671103216932724599515216165272538827669285810296811331512437913451211002210310014109951252618137187582006921321028341128751233831334871436401542011647411752491853531958932064012165332266052366252468741112283819491751105611717149381583917181022041122891226041327841428501529401636361746811848511953362054122161622262772370502471311112283819491759486188572020825179276510286111339612354613410114420215477216481317534318543319562420570221570922641623652024667025669026772327785128785829816430828431846532847233857634932635946836103143710353381059939107504010816411092742110974311193441126845119484612014471210948121814912275501298151135731392129323344745605611177120781549918031019731120771223101323511428351530841635981736641844051944512054151103216932974740510206117271343818859216510222111240312315313373014378115384716399717403818412819466720471421480422583623589324595925601126633127648111482199326545835787684479108219692454141215134784510515746164671796818379229910234611326211302161364741790518486189071986827119385410444211450812451913456614463315482316539711122838194917594861446715668188891939102345112435122961133018143516153642163710173807184189194595204685214836224902235028245100256386266474110422013347443756296116971277812859164614121443210430055256562764086779818108551190412101013180114210815285416296417303018378319455520458621485217082848392341431514726151371601816679171410204111217912230013234114240515252016258517262818269919275420278521299122331223334924382411122838194917510876133871369824399252910335911406112492113496214502815540116552517573718578019629020688611122838194917512326135472056830649313710361411368212382413442614513315523716538717539418624619633620760621765722814823959024968025107122611346271149328119702912542301263231127083212865331320634132743513325361436837143993815359391536640159574115999421607043167714417083451712046176304717945481801149180635018765511888552195171131290131011411085167862220731528335993586103676114467125036135191145320155661165729176520186629196719207475217522228058238110248812258932269994175028153866412845163261742717628176992467102518113122123224133300143447153961164027174211184283194314204343214520224852156217932454566579261534719808211892149102289112370122441132892143033154082170128323898490951059611127140282323928931030231131391236001343011447361549521651471756371857791958692059492160112267182372782477322578422684912786222893292910459301054931106493210699331094934117123512922361301837135743813794391455740151754115272421560243163654417072451827546187624719525482023249208125020874512118652213265322027542248555229815623192572398358242905924425602447661251826225214632548264255841707211323117341489515406163871650819649210210219411251012261413284017012832311444115551305613587164881683922421024641125151226121327731428331529231630651731961837041937702038212143312245271138240234534554565061165713548155091601101705112350122482132598142688153089113122813334462457306983710718123291292101382111524122000132081142166152284163142173164183274193639204096214906225305113121973258439155616731710418111791267101408112186122960132991143769153783163873174105170728383904491551065611187140881860923901025611143281243851344811445711546311646971748281849691950102050962151362251872353242453652554652655052756152856662961363066713168553274003379403479813580713682713783083884493984904085804187904288614393124494534510502141257136464678571961420714278147891562101628111840122108132584142739153059163100173544183679193830204786215256225707236050246205256662266772276822287142297461151212683144441541515986327873353835049395510408011418911312197390349595116961455716948176992223102836112926123740134028144723154819164827175837185903196068207081217206227956238080249131165215536944173251779619247194182051921011024211127351832148388941619521586319673305847079500010554011633112663813688714705711127523154241632517016224173151831869322610337611350512404513453614563211728331734712580861840719908231092584102740112781123319147290339934100951099615117175881790918681019941131641184291331054411255118461410718768194091981102059112066122614171228833484455554567227812811629131810140811244012248113255114271115280116314917329118344619389220405221434022495323504324589625612826693327734228743229755330790431876514221803310473458246119471415814879164810243911274612279713350314353515380316390511442211329944145504654676858776917161019881125281225591337751422201329244815715689471049810909124811402623391541005511576134672139830069314110318211326012326713381511302407349741529520696322773337834089358610443911302250329143815920619587208882153925751026851128801231641334271434681535241637111737421839541940492048402157072259432360682460992562611412823212430254036696771389249110511302134131407431085315563445739848502295039105168115205125334135464145525156166166217176294186331196421206552216589227115237205247856113021913873492451494617067247982535935551902470359541361515456179872554826789281115722473313413155142661827718628189491905101962112152122964133055143165153215163535173849117235435404622563967487159111302141346146845999611297119581514915861017141117451217861324921428741539151639221740181850501951712059662160172261272361932462342570452671752772062875162976463077383177493277853378043479213581433682243792001791212983175242173522346265072759835509441710465311477812480913497119621067311974188851998620647278782794935161039351139911240221341501452081622665378941329515156233572863829249351110430211481212538515402610310804205552087621387227682348926011026421127131233331115121261319904210052336631727333783378934561042021141223138114872510326114271325814019145210165811175412255113285814291515313216318217319818322919334220335021376822447023451024463425478026557127587828592929663530666731694832707615121723297442055456602772387559991101038111674142265231353415465165661938721568216792658102912112949123721134135144388154520164610174837132239311441555233697971069812019124310145411156612163713169914182415192616273511442195321042425712680878558963916431422652313534154651656619037203482135928411029821131201231621334211435521544451652491752921858021965581104296431755424845262762693731118381394272104439115846125984135995146714156824166865177205187301197352207496217756227866239022249054259125269166279439147210231984230533263797650814879229710311711368312379513445111042294335044755121661418715948162592433102539113601124015134081144162114021262315524164251794621737228382324930531037731141911246381350291450661551421656631757291858691959032059932160462264671572128335044805159761728726688271994531104762114852125884135891146022156112166254177190187208197250207561217627227815237925247975258086268612278702288832192257731368416045209762724727908333093376103715114422113298441354296519772688569907109731112781213881314391415361515521616581724241824551926611472137314942395127161308715288175791836101868111949122581132622142962153052163506173596183916194456204497214744225318179721526319914212152189622797368183771940821041481150231251191354301455481556581659581766081130280238534131552088621547216183022931891044001144661249961350471455571558121322493579410695111061640716868173792048102620112661123637114024823523460456946846723238243093478103653115189114728483907410215249862604731648334793420103495113896123937134015144221115122683309412365124361782719378194991999102319112737123439133734143777154191165588176995187777197822208010125924663643414345241162500725658276792999113027823833421345220062430727908383693946104144114234124270135480145546156027166034177185187295197715208158218698228743238983113028023853413155208862154735618356893781103816113881123913134090145148147238738084840514426249872668827599289410300511369112384613388314392815405917972152631991421465295062993730718337711302161329843885522611907125681293914341024771125141226511327411428021528921629431734161834481934892035232135642236942337292442152543672647062748182859741957296431755425025255363078731198336693466103541113631123696133742143779154239164414174980137265031441415815182862871732888356893587103628113758123848133964144054154374164421174511184602194757204847215167225905236461246551257613177621307322244309853281633347342483490936451037351138481239491340151441581547721708274231533416955216062370725018267193093103355113465123660133944144000154090164230174380184457194503205043215446225536235617245752255888267174277432177621026314694242752529629031130219136564707578461575721058219592255102321112451122482132955143038153142164402175104185151195203205293215833113021913301436854586670718388184591886102020112061123080133087143138153237163269173334183534193673203690214500224792113021663217435153926141171418823589263010270211283012290213304314410711352664317074173851894619267193782093921341022241124571227041327511433201534101637211737531839091939462039612140512254222364542464912567022667392768122868442969343073573174591172758313154141851574616157226682555930951037371138321247821348161449661555061655521759251864651965972066402171502277461172354354046225928610987209182509932111032251132981237751346661450071550581650891754441540275137924858598061119711518118691285101302111633121795113022203353444351814620477229482829943001050011150911251971352871459971562031662931769051130219633294425552165717793813339182410280011302141347745875638612207139082164922541025001125071225971334051436991537061638681742491850751960072060702169422280932382032486232590662692412794921728273539014918510576118771677818479191518021333933410855168117082131932110435825367264135752868545195869107292117382127904139119149167159367169768179879181045319105292011490211160022117772312839147215739484151451604617207181082130922361031661133411239071906216973340543514536176366575316853719546710639311640012645113694314713315717616765817775818779419788420794421801022805623809324855325861026911427916428926829929930106153110711321077833115693411669351171236118013711876381237939124694012567411334642134274313470441354845139141130226133514411547765187549881098471019081121681222781325031425791532801633411734071841681950452054562155462265782368472468822569842671292771702872202976823078123178633278823379483479593580093683073785173887493989811572215337248905907616487169482658117275831488420275306563206732688341493484103650113791123930133971144092154148164888174978185305195446206489216841226858236967247810170728383109741145513536345473637836789373910396111413312422313508414518617762103631295417915233063368734908358093867115122043319442056316680781181517917291018801119911221221321531421641523661151236237334174451875625817279382944930551031861132761233461334251436371537941638841740611849831151236237934180851939626457285783563937861039371144481245791345901447361547971650191751001860761612475349941269515586209773135832849333110338311347312412412321743305478458746940710508111091147101829111870122846132853142885152936163257173469183790193926204138214188224508234649244761256537111627983839418005183762974730858404694114104155114225124322134329144499154650164741175222185331195455205506216016226612179128893965410745122162193722608233592457102508113013145629183138641645517556190672306829149300410336511341612363813371614386617021053275446955206590766187319821109531110491223641323851425821526071627691728911831591939352040052142541244228834444552560266927912121823953527457956366159771707819391962155315174222652744628657290683206938561750276938354864587169617128281372914541014961120241220731322381422791523571625631672858313654181951924620247215582465924731025251127091228161328241429711530781630861734491672858387749435108061590717208175191903102018112223122274132285142317153247163508147235834244532584161542716808172191809101875111985122487132577142897153027163117173205183659194400204414214421224537234794244819254990265554275934286402297544308275318861328902338972349519351001036100473710117381024739103134010853411179842118884313339441350717122113531279415425177662517725798260893994104035114376124472134522145319155481166320176482186489196540206650217216228271196210673119741888519986206472787827949292510295011299112306713309114313715345716355317368418383219440220444321453122459723463924524925595026700827709828873929921630935931943732950733103183410569351065636111223711895381198739120304012540411313242132424313308441451845146574615173471529348157104916848114026503945410065184761884721298319593236103983114200125371135418145678155848166369177160187717197813207963218494228628239207249329251016526103452710386281089629114691512117332843695472612857133481424919051027541132351233251333741441641542301643711749331211234434534554568561122714998162192371103085113210123391117275838614951510816192771935820259339610362911387612398013423114467415485016505611727583117041260514506147472354829409304410329511373812391413416511727583846493651078611297206482071925241025741128941238291339241455251563781664731764841871481972442079552180452281602383672484372588972689872791112896212999493010697311191332126613313819341386035146053615307371604838161893916240401633041171204217562431773844179001116218137124796515776249072525826379309610430811444812457413509114520215543818626253166341724518106184571885819619243110246611257212330813335814367815369516374717406718421717902856311184114951185612177122881959920091023291124971225141326241426741529941630601312660398541002512366156171578817389258111042178348145715833610037129681601916971018171120131220601321121422821532821776211963163941828524926264572821830271473251435394600569069127943897991011101022112099122219132870142235334194460598861035712098136492363102410112861123016133084137250631297414375152761587716538181291878101959113171123311134081144149154229164275174460185000195041205288215646225843235886245964256170121422823294444155316990710068119291200101330111422121865131989142055152102162742172799183501193915203946214108118827283107341134512046131771324813619160610260711269712381213399314221443282436855056646711338169891853101903112223122356132397142475152618162650172701183022193088203194213960224064177629303101041072511536153371675817659179910271611275712362913451614468315609016613217644318666519670620689721792222796923871511536215823168242473525046266673505845629539510543611548112635711291213573277042839528566359773685837869424010448111527812578513623914644515650116662817671818694019708120719221771822780823857918462133631558417535186461895719718249792514102725112906157253631257413475143762469733358345593557103623113674124212134244145225155282165327175359186315151227332844425551561355714758158291599101740112282113722183113841239513056142071471819819240010259614721373169462757086162871729817959191010202011222012231013235114259915276916280117284218449219453820459521532622625223632224753425767426772527794728795829809930870619132201932591426645271563506736548422694362104405114483125329137249535764646515766167771743818589192010219011224712265813276814280915291216305617311318368419379520444119721683619478459446979712368159691603101693111835121945132520142610154012164112174918185014195784205851216272226313236391246597177629303102041070513856160971908822159231110235811268412271613295414300115363717082116731183413215140161547719658243193001103042113459123749133815143881154022164540174653185349195521206312216563227854237978248044258823269141279184289262299588117023843450450155356105371352815449164010185411190512275013286314316215407316428517439718457119466120480321557322568623575224604625615626694727697828714017122101231234418855198962240726838285993845175228034424566581368307921896491042101248162262537494760513706145471558831799326910341111354812364713373714387915413216510317602618690019798920807421881522924923933024946125974326103502711045281114129111733011214311152532115913311642341186435119423612092177628723174442806536796372273800839481112621370548535924613957168581835920911022611126831237651339061440221547281648661752261853361955782072292172842273802377022478122580482681442782222885831750280138714951511736126871609825819262910379618626943775492259696119172304824159262112282131932025423095236062671734488463494724104860114901125222135283145695155785166700176846187707151292362841059511066159771779113021413287443555456111671177813189154410214011223012270613274114291915315516321117324218337019442811162181326241163512536199272191823449256210326811333312349713420914482115494216501317561918573019586020590121596722601423608524615025624126637127641228698829705930710031723417762843316034169352344628747296183533938281039731141281242371342791445901546561646971748881859131959602067061144285431016417305194161972721078213992229102590112754122922133570144687154855164886175872185973196039206155216847226962237097247140257218267964114421853275434251052612457197182978932721033821134511235081335881440431541681642631747941849291951502052062152842254341104296431755422925237962525737378387794138104179114531124597135289145399155465165569176406186453196531207040117275831110415645258163797748148553195845106996117052127562137890148639159855161060317106601810750191149520121972112938221335223134652413521251362926136662714413281446929145003014520311499119622893378496551022611037147081536915731024521134681238691339251440151540951641971606262437144159652207623037245183062931921042031144511244921351441451861563571664721767221873741975022076442176952282052384601962160377148675120061811719418295293200103241113893123935135106145221155471166123176164186674196994207695217852227918238626248796259767269897271058828106982910764301148731123573212499331371134138513513902361396837139993814028391420540152671130216131694259530063257366865597651088511101912105113110214118815164316165017169518189019189720197521284222297823324124324825348926352527476528483129483830500831601832722833823134826835834336847437869638998239102401116290739244122351273619837316383259935921047191150181251731355731456051556461661241772811872881973452073522173932284332394452410195251031126113702711428281170911312879310894135152057623107245282489927031027711128911230681334421206299731525415615187261938719798255192588102649112686122985133075143395154165164887175678185768195945206363217171227285237415247450257634267724277864289158299239309290311021832102503311231341128835117793611811371315711302275332241391515076181871918820921130220535854137651751618027186882116928221029531132691233801340891442441542811651531751761859671966962071612179582279892381512489902590412692902794601130263831069411105135861620717908182292749102756113077123217133338143375154312164414174504184676194784205201215264225301236010246436256477267582277678287725297786307823318760328981339422349670359736369768379909381069939108564010863411105342117091372746381741308513406178371798819179233510337711368712378713387814402315422516425617443618462719465920480121550922607923627124631325638426708527739728748429755030764431843432859133859834878835101641572763310734172452288623257320483327941871042491143691244761352661454231554301656201765761540210023111841572520546216472905830249364110372111404112406613432514450015464316489017505217122113531279415425210662620728108351415125943686477451228613387189881988921711022281122991224191331291443301725503586463857266887713418144291462101597111781121855131922142012152274162299172558182728193699203829214551224965235031245211255337265467276258286498296618307081317157327961338004348082358322135212513128341334521906232772334827559297710298411340512427713468914491115496716538817626018667219689420692521713522732623743424750425797426846527855528868729869430917631926632937433101853410315351187336119253713571151284231229413385142261803722938242892518102838112930123216133257143323153863163980174023184101194347190210432604375594561523716198163391751101862111892121924132500142551152582163618113022413311452355646864715148157991730101805112064122213132260142331152421163072113021813712485859336143071495816979192913125613596413545199562053720908235111302134131407424205262362640728428289293212103249113731123781133971144003154119164156174763184982195195206006216546226587236849247222257434267477277987288082299648117275839214164252674630307396284148950201056281157661258561358971463591564101666321769721871761972382085542188121161142325113572468357636853711678137891473102853112860123796134052148025213609471058006106271099819789206810213311219112236213240314377916621563471458456846798712128121991264101461112121923318410195107861192712248127591413101465111536122567130121092313834146951696621171400255536974744581561888110028663100541175522056232472471825169276119621176312954144252233631007333683379934571039221149581140231134014143351593616837177982200923711024121133881140298131521419285246862649728158289092965103119113151123254133324143404153494163653113121723352438458516155272213823449239610320611330112449113458114483215597316606317613211312228332444455531658176328165491750102634112705122795134177113121342313834143952077113122023292415731131225431731419865206162381730621540210763116641228512986139472149822759242210254811297412301113341814418415476511312935310314182852087622077269982834929861030841132341234081172623193464456866775790689969151410226511230212300513371514425415481116490117596312122288368947455821686271084812509134010185311199012203113214814241115253116324117378018381219386320434021449022449723497424506425579012532314340545255765116121569317204252253061634677354384056942521050831152391253291356351457241558321660801761511862681963882068792174182275552376462476972580982681892782692883711132238531406416485170561775734558353694241104447114537125489113121553108741989520696216572255832879408710460411464512471311312227370148035170561807730661112733118422253616531762588529137910189611199512254213329214410215485216494217535418542019559520658111127331184149579961200712618206592144102234112323122460132626142765153061163574173630183901193912204065214155224673234704245405255457265611276022286080296900306931317093170828953128941427514916160771672817449203610204411217412222513229114232215257316300517359818370819377420381521384622444211302371358347855949610297115381203913101014021122221222571323521424131524801630161391241038074915510706196772063837719418210424011433012439013445614459815469416519911127331184142551952620767212682233922961028121128491235961336521436831537031641741130222034684540560661047718518196392422102512112850122980132995143815153913164003174058184154194880204936215123225893236143246586256762266968113022223470468251108611497225482350923971024581130361240851352971454361554931664201764881865291965992066962167032268542369112474542575642676302776712877022982981862132316649485962610417107282399925351025721132421112733118416056916981711318138791557101979112149122660132795142906153592163747173784183829193960179721526319914268752813628807298283264933091034051140961170211413127141962520726213872861828689359010400911407612421213440914449915495316537117607318653219687320747021760822766923771024822025875026884027890028896629910430994131100623210384331049434107303510826361090437112651131277338634944510486207872168823609245010253411268212277213305414314515417916422517477518578219620020690221713522723123735524788625873326884627909928915129100393010565311133932122903312380341266235127933612873371382338139293913960401455615372620314974161851689617797194082030929401038331146371246801351901457281512842315714203652732628587288983777938521038641140061240431347431448321552501652931753971854871955872062382170142270842374581752165326343135409664071947827239279310385517972895310484160951640618207201182043921851022521123541224431324881425841532751184222533154660575061780723938248393336103624113768123851133916144657154718165454175501185572196071206138216189226250236316246450256864267154277407287548297621307672318162328251339410349453359963361055917121733262436456466697780188659906101037111290121399131514141967152008162088172350182459192597202757213588224384234491244542254697264763274873285935179129513107141173512396231972399824509328910364611142128324446275861612777132881486915541016561117451217961319271420971521671628231728741830591708214783181742358524606274272880831339316410371811382812400513506717121733556479151252614107154881589926501028301130031230501335601446981532844314854151651652617187197382615927041027351134211235911336281441191546401712173345545575646669771595817569184610192811193512201613238314244915258716263817270418299819310820350017912249932608426505275964410744658456194728104934114995125112135253145354156060166107176185186650196731114022493674493051040611807119981458916341017961352125131283417355179162212726648281093601103722113812123944134048144462154752165005175146185261195342205432215893226440236521246528256782267052278262289003299074309264319368321023533104713411307351147236115133711591381233715123133379411205185062389734278351793982104034114574125051135161145762157082167183177470187526198545208982219359229495231079624110442511076261111127118722812150291277330128393113041321327318223443181542516525726260372623832281372588367841710517866192272014827019282710287811352612359213390414399415424311727583105841308518116187371897825509296810367011420112427313490514512115518716563717585618586319594520688021688722697723702724819925896926982227103092810499291187517321253938413965214962356731038420594236105049115081125156135926146346156789166965177551113424763541458257336944795581101911851012511112921213821314721415081527231627841734661836361944092044652154851131223333234474552668277917817789188011312142328843885400612667138281678917681019701122021109321785319974215252242623897247982545925861026171132131522257336474156751657619197202982262924121034621144051246011353051813210133181041925520156217673534843259505410551911561512569313584014601014721223769478559166927710738115791223101264111354121444131480142695152807163763113122333102441331514216157271624819259201510216611222412327413336414417811312142328843885400655176678963910531012551114871109321785319974205552145622947239515222573364741567516576191972029822629241210346211439612509713526014598115607116614717629318635719643520652521728622736223837024841225847826866827924211382603375948255848618047184581916920021020631125951226381331631432141536841637741740601131223534114581567169337119683004935591036491137611243231348141448901549311650181750841850921951822053322169702270312372012472912589721200299731112413675145861694719018269293421103886113933124011134207147259731244413745150561516716628174691812101853111943122033132069143284153388163862173929184019194281204991215147225213235303245319256311266762276852287853297919307956318468328546339997341077035108511934216353179842519526096268572760828359292510395711611312620313631014670715762716769417811318912119916320922921926622102432310333241136525116091131223331024417145180461955727758419394313104404114539125136135187145317155647165737175944186082196134206177216468226475236667113129223161241664524076293872945833021457264431127412475148861735718798189092019102481112524123049133100143570153660164081118262214532333424235267363277152626913828483959856111972612829089312010367411376412387013390114436715460715227533884410655192362348723898261192619102709112722122812133044111129983126341579516696172971881819139240410255011298614721183130428153136364750281357914471022171123131224251331051200224732794926513976148772781130724623712419435205362124723028267614721513798411815131261323714698155391619101660111750121840131876143091153195163669173736183826194088204262214353224498234535245604255746266113276150286701296791307823317899328035338825349635359725369776371028638104821372618367049705150662062721828228492350102440112531122538134008144088155022165723176233186404197264208428218538228609238787249062157212832334383548161224719158192292033102103112216122596133014143092153158163271173288184098194258113122333102441714518046195572908829199330110409811419612432613441614517715518416574417583418635519648620652921660022688611042846395641022517456179671921820119254110261711331812342313348914358515363216371817379918385019398020407621410822415923448024454625479926493527518828523829555830569931580932587533638234663535712436723737730538750239764340810041891042949011372239310304133751427615787166882581929641030751137771247241182622145323334242352673632771791215203190341974520446311173207839989472710511011518812523313618515262691382848395985611197261283304935161040701141601243501344211445311546771650381472389347947945884694679788233092372102479113527123702134838154026273738485451008614267158381727918311019311119961230381333461448231562301662811763121869481422933129447055686108271651818069242910251911266112369913380514453415601116605417613218628011722208354946005106661180715948164591802198213434754526599261106719248197592143117924393505461657176977710438107591252102200177296391641682527146280472880829229297310300911337012355913436414450115461116479417491918495019518614502791310314116151251613217146181920922551027511128721229501330931431361538651639551740871848571949482050142151242252622356541472111390749975107661133711978196392294154021163312534137451490619557199682402924931035501135581247891348991449701551481654231137225332644670573161027711178131991551121823283379441055476657772387559894109981114711215401316301418921522631623831724451827571131218236524106551083615647157281623920931021831124691221238731169411845180761909113321523934494951772630431131223333234469587569267163281931920811224227531148412385229963121738181138234739604125751347614837205214372489375849081202324373048685919610007123581286913571014651125891131229134084528596111382149326543075358689879468997911231012311114921131226934204558583369647110681831918581021281131481822123323942905421660271384813999200910205011221712562395344244835561676711119212253142142772114724513579113822303434466612022318358611312537310684107551207612587200982099921501028561131461238571339471440871553271654231754651856911962871260234536454735514466198672249824231138219032314484576214726373728476058116903713178157091641102106112359123640133801144094154637164867113722393329447558816218272298824559264610273611376812470413516614529715593716604617659018675619681420704521740711312247342841026510946140071451824839254810327011336012368113377114385315406816472811382906399641128511796204172137822139225410271811284912298913325114330215336716350717475318484319587520711521722522782111402149231523419295213262378724688364093815104801178221241313954153351614623247238182918930031032391133571234531335681436001536921639571740811841471942532050192150502252561144223031082410895117961195719448195292073102181112231122429142225773754499951206621987227982691933321041021141861243331346761772253340846495787679879148989910701012921113351214141315581416481524481625691728101830361930862035122136422237042340161151260237674100851049610837112882172928741029191135551722285732334424245250562603733328379793881104007115178176429413173241810532866392774959862149665510692911702512787113836114858315874216885217891418922619926920956821986922991023998124102012510607261076427108112810889291152517421383450469151179612897143581671917811019631120381221761321871423031524071624881725251825861926612027022128332229442330902435841512103374547865831692679748101591093101299113121342314084248152518625357350583615938471707288239724100351409616417171782521931171032411137911239721340681448581549011649911752531862731138225431345414205196462536730568360793814104147114222124359134475145121155383166154176244186400196535206572217444227546237821177291320748395940611477127881480917411028921129531230841331641438251539311650821751231851891953202060812161972264232370842472352576782678852779802880882981133089193190353292963394473496293597603699013710703381076439108224010859411108611312142325843195929610397118181885919941033741134151242461343221444121550241479251436044681577168217114182162927791028591131791245651346781449251550911664091765361868671970722074041431255139734176452452625427357484786949251049821151991252491352651452961554091654171754741856911957932063282163592280802381832482402584572685592796002811321291142430121743112272321300133134663413550351367636148471797215263199142138529756339473581836169369210372411376512384313404911707218533196942059521406223072323824279249510253011333712340813362514368115371216385717389418396819407120578321586722689817722463336440656206716782081657917951018851119551222641325171438131538941641001741901851421772350346645075658625117265382784928971041131142031242891348331450741553361654831755601868671971302077462179642280102381412481942582352682862784632899402999783010634311074532118853311897341201435120513612614371272438129013913963113123333161441654523016299373083837519420810445711479715128423255042684528806468274772850199576010585011590512600113677714684715765817972944314564199652406624967257882682927331029551130451231271344431447011772557367747935262663927740048410095216105235115494126314136359146636156909112082132431475416675190162533726848443094749104880115082125118135828146329156419166551176579187086197129207309217496227587237638247653257685268635279865289873299963301067431110993211189331190034123513512448361380937138903814196391465340154634116835142925103600413105140661529716258246292514102574112635122766133549143652153659163749174061184725195261205311215631226200237020247586258064268128278925288970299435309597179121329316564174951831625727265083119932881033781140211241521344481448771549941651141754551855091955842060372163012264562376002484862586512689872710086281052729109983011153311202432121223312129341242335127803613266371355338142943914382401449741145644214609431485411302141315843005361665777238824994810168911172412181413235314339115342216345817349018350119353920400521418322425123455824465125473326547427558028564829615030664031683032769519622423358440454796620763388031281212423181741891519736205572096822129291310354011369112374213474514492815517016576617586118681319738820751921762322776323781324792525851226952927968428107962910941301109631112173211360331141734115073511929361197037123883812435391346240135684113646421388243149181707284739224106051770621167217982275927931035431136921237141343621443981544661657961758861869761971072073561116290731884420195215663366741078424794322104744114899125110135200145342155385165463176499114322633609410505152162535727768347793617103707114200124901135757146271156327166834177405187467197498208026218057228913239683249816259859269937271024317072123831284414195148962915730628312893268103275114132124906135225145363156378166419176681186862197428115122683309412365124361358721498227092390102497113855124646135623146398156480166523176601186907115126283748478958516976711578123291315101624112355170721858320804274252897629387299483181932711034321135081243121343631445851549551651591752211865371967951281237131403414855162061836719778203792787102927113479123997134172144511179028803100141711524246287874245853159602110611711632512767513775614781315826916933917991418112361911307201262321127782213429231388324139342513965261411827142282814294291432630144653114742321478333148783415120351595736167673717587381815339182654018921179729833143941594517516180371834827649296810322717072130831374416055168162616735798363593812103859115166125207135729145842156776166817176912187102198058170722008322304232052382624277251783673950281053891154991257351362261464901566281666701770301870811976242076802178672279192379902481102588162699871725503642411635122461314714468152392438102528112649123236133279143459153627177621026314694165051989143725923645413865185362316731378323393791104192114343124433135531142240338394847595861593716348266693145103162113817124407134490144541155019165134175679185686196711207256218006228576238753249544251027326107382711099281141029115853012351171264238194161052339628047304683124941601902109317542665756685271722818699191410286211402109231220419515204162125722738234892486102517112768122776132857142988153019163377173385183466194218204249214485224493234560244773254805264850275681285748295793306991171221433734539554761460722518235992449102566112702122743132821143027113629173963410385117961192713621797215263199142813529036342173452836581872162321342575757177279438354983510736113171182811939122510218511228717721244313344183052369634077345484184942501043401146601247171348571449081549941650981758011858801959732064952165762267381902960310264113751157611927215382243933581035391177229734644526583369637105581201913251015371115681216271321691422011522121632421733321838711949092049402158112258432372502474272575182676162777422878722979643081103182343283003384063491273592693693003795061130216132524482568367207172181753917941021051121711222131326831428241538671654781755681864091964562066162167232267742368262468582578182683362785122886741112752315424163251822618467195582051920731022431122901224411341481446261547051654761761961862031963542073852174662275322377802478702587322688622790682891582997701151259937294833586861399715308197892569102635112746123332158726283659413995172061771725671372652372741068511056134171747157258236234673570461252713298149992071102112112603123190151284231372414625152261588716658229792503103105113195123246133756144011176231037164724576568407855812329124010128111135612148713184514185315189416196917272118295719296520309521317722376823430824439825450926611515121073173491451001614557147281928921481797213273141741482515136212872528825659280110320715725823623467357046891715438275992820102871112902123260113002148731734421175319463314734441482118531275416765273364044741128416894348104498151284231350420525219762297723878278894115104897114942125330170928643954419955253562566730221708277831624416425178061847726698279992891103364113405123439133480143570153782164488174791184881195143205168215427225603235765170821018314004205852093626477283783541192721149312394144952920636217368783926940161041831152261253851354221458921559821671841512842396641188512196196772087825699271610275711289011772297349046205813687871211817999186510200711310812323013333314339915370616375717426718446319223153110641808527286279473233834169412410496411511912553613599314609615621216645917698117912100731164412515165461950167211233354444551961127712518149892829103142113412161288531107411975162961770718278221892308102535112847112422143353447059326104471271813129178910184011305617072851391749405153161588716788215092201103411114512124874135350145440155670165736175787185905196044206542216737226944237336114822873344441754596684710541701231273338943936540266408774231843449443410457111495514721553221425357656131071317815159156210193311196512205513217914224515229616236217245618253417012208132293423895248462587727578284792989103040113354123361134084144264154474164875175132185242195440206358216365226542170127353957499851135611967136682355931461032441134451235351336731444641547711650741761641863501966032076192177542278042379071750284831256413225162961725722368230292609102740112806123124133328179021687317444216552938632201112283819491751619621997299083297933931035041139911242301962187395341164511966192572486824939295910300011309512327913329214509615518616525217531118540919548720585811502113131237413035187861925725758327693926104032114098124348134436144663154758164801174920184971195037205217215367179028473913410145104861440151214063159041664521836224073102831939400310409311415012463713476114484715630716648717703718735819740020852021857722864323875324898011122838194917510146108071387814249186710199211248912311513725203133141469516906174171772820081512551359547195785694671039818309186110212714221823248438351194614407148281698921711022221133881112283819491751400614657182782529926641027351128331229871330381431041531581632201735011836441937062037522147161514210493108041632524236340073550842469440010445111451712483513503919342163532126422965380263892749248606196112107271117413127561137642147989158362168452178905189095191007111122838194917594862011720778241093479104032114529125125115422463384449251027610847115081279914831025031112283819491759686187571941820549214410257611289212307213361314490915499916507117577718671819776917072977399941790520976306573072836389364510448411481612509213515814523015604016639217082154831703421665230462408726298266593026103237113807124513134564145270155302165583175711170728453951410025107361779717908192992019102163112493122654132871142961153103163110173572184347194428147211831844104151498616337168081751918171026741127251245311472122315449815104761098712588137891516101796111843121921131984142035152094162126172753182859193625203656213862147211836844808512516128371354818699276210356611360912411913487515128423114941445515686170971829819319199710243911297912345513361014388315442316552117631818662519666620676421733819721633130641396514486156772710835879369710456911492412504813524614533615543416550117554618649411302950312574130851780630707314583186932901034601135171236141337981450381555481656761588210063103741513520486214072235822909235510248611294912308013314614318915339516369715725003728477958456982711428125991425101806115422463177641866521866231772382830879344910419511453812503613525414531315544616549717600718653819660620665321679222690223702924708525754726760327814428833929841130852131857132889133920517012119231310414065145761575718128207192242102392112434123355134936145026155182165288176238186304196546206617216844226939237029247084257204267271277315287405297423307543317610327667337733347943358093170129863105241142512936146471506817739250410338411438812447813475014485615492216505217510818525819636120669217072103831739427205281063001731728340893498103674114624124690134932145003155230165277175343186016196294111228381949175161962199722948328494218104284115015125205135779110321693476451351048619457305883336936421036931137591238691342531372520313314214152231624917270382930930721032381133581234601335261435981536411638471739141707277438494125051437615747160582638927281028151129051230471331141433181534081635591745701851421953022054122155992257362357972460192561692662302764412864822965133071693172303279123379783480503583683685721701284731205420025209262275733158451594567104676114772125238135348145414155545165611175705185783142265231353418595265062957730948416294227104486115305126078136427175027933133741422514796154571645826189276412725834644126151351615287183582249923151037411138071246121346631447291548451651631753671750280338694939596962220723858255292662102808113226124453134494144732154789164855175035185185127258346441261513516152872257826719291810315011395512531313534414575015580616588417691515125513595471957856157671883820089203910220117912127131406419465296263086731768322693471103522113553124119112221297313874162852212622597234983104932791042651482117931269414155208162914730008311093187103238113304123335133355144107137216739584126551434615307156181707188216332044118451274613857148181693923641030271130341231141331801433261541931642831743881844191950602051262153212253682360052460952564152665052766072866732967693068703173673273983388241572125331544575493695571065811319118710119811140912159015722883339410495118061270713368134792088102123112470122705111721793362439851029610707116082192923161023571128681229301331131432191532851633961735031835591936532037311112283121421152776373786689569118311122831214112951356614667202882079921591023091129351232841343331448441549011649811751311851871962362063482164382272292375362476342577802678112780621822842390841088512346128571435823869251710259711274712280313310114415015466116471817479818494819505920610821627922703223709824717025728026766414121123204425553416376764781065922251023151133471240171350871451831552551654791763161863881964822065601672490358046465808699871129828709364310466311372218317484181851840623547242082471925371038231140811112283121425153716461754686369938109891111391212051312951414931523041627801735911836721949732051232164192265092365812478672581251572288313694155352211622777236782499926901028251128971230471331251512842394041162511886131371555816459174710181311261012262413297714304415396116401917489118568819578620586221608822612923621924630925680126689127721128762929785530791231877932886933896434921435958536961737972738987339999540101084110759421083143108744411470451177217972110432021420795295162983735748404494579104669115701125852136084179728953111741143512336133571401821989221210256511263212267713290014300915308416440917472218499217972895398541061512836130971479816269177610182511210612302313307014394415403416445717452318457419464020469221501222516212182308337446815722615137203382123927741165225531287415655207162225723368354693676103742113799123865134522144914175828483914412215126261404714608150291756101807111873122095132185142836153143163274174116184207195017205107215164226050236278246389257599267729277795288303299094309401311017632102571322823313434143352084626247269483010933311034071145301247001347141452421553281654521754931859821960332060992161192267501782215233206042339529576360874126846309598710634311653112660613665614699015712116753117768618784319825720832121903822918523923624930225105882610846157270316048115149661785722038238392474102540113080124118134254145004155102165248175279185485111021963876495551079611457127581576916081023991129191230431331811434611535821641911742811849791950542051052151712251912358221110216731289414595149061809719598199192028102773113899124039134458144641155413165710190821322313884197952150623317245182558926541027251127661228441330501312399348946255657669471439815129155710215811312541369648535126761331721298221992314102570113013123189133395157263437814871594761071712138130391427102045112101122432132528142559152661162736172911183432132210193116641743518906194872755830829313310321511325212349713489914504515515416520517651618656719707720727315822140931475415625223062646728018319793497103643113839172322633328164324053306634167350683827938991040491141271412551360241629517066185671922827139273310288311295912467613476614482615489216492917523018526719549420554821562022643223647524707114121123792484351170612787134481714918241020601123931224601328791430661531621634441734891841801922412352045865676676778358928917601019081120651224821325461426221535321635641736301838501939172039682140612241512346911544272037634108551223615037161381704917721018651126971227161328061429081529741630051735371836611937272037992138302238592340362450981791288931111411375122761329713958152091762102773112985123109133175143248153293163478155728043105941154522176267772752828489301810320816952791379948505916610457124982269111228381949175948630557312983853939111039621144401247711348811450141551101656011757511858981959432070011130218132524322544861172712568230292386103619114234125590135681145858157320167331177432187522197588207895217914228004238111248890259308269729279795281004329101153010146311017532103523310684113425343600469057966153171593817119241210294811412812427813572814590815622916753617770618873819878120939121993122104172310723154026283694412395134961650717668199392087102151112221122833133611144402154709165465175486185878154029583102441114511906194072050821409246110253311381912407711122838194917510096165671769818809219910233711261712269313284914355515361216473217484718507319620320626921635922727423732524763625768726775327790328798115382132931360415225159061627717168254892585102899112940123188133254143561153598163728173792183931194021204812215226225680236098246194256250266370276384286435297782153725933880493359996153671918820679212010218611293612311713325714413915427516506617537318546319559520617121623722629823647011708219653227442481525716263172697828529290510319511324212349013352214364515368216370217373318376919380120381221393822404923463512802331344747035769690979388100491036101087111537121798131840142065152453111275231043413445139661466716058275592865102960113015123057133282143929111228381949175968616997178982032923271024741125521226941327691429351530551631571732231840201941632049012158232258602361622462522563542664202770472878222979031562124324043305581667971195812039125910137111253312323913328014379715407816497117501218552219605515121303672479658626141471984824909258010300311306912312513385514439415543216552817580618605419680420689921708022719123856824871325896426950827101592810265291032630109833111089321124333112943411360351147036121011922253328043705701615417154882339926461027551128671231921333041433771534561634971737451838111939462039872142352243012343682444432545192647062747782848092948383050153154071112283819491759586104871750818909198010231811240812251013257614364815368916472117617218622919632520641521725222737323788424793925803526812527896228899429916413227693161142385524676297973126843969443310584411616512623713634714639715671716703113227833967413125137862079728888367993986104547115158125859135905145995157227167928178074188210198241208706218757228823238984249152259218269763279878289904299969301003931106513210760331085534116463511953361216437122653812331391234640124884112560421265443127321338211003173841764519046216172251823539241910320911401912410913416014467015526613621073117841491518386203472563826699314510330011373612398613405414409015468116556517573518585619609220616421631422641023721911512217335744275157861653720718254392593103384113585124131134945131212723206342225522936238673218832699329910342411366612373813388814452119221333321244215552317623857247883310943201045031146281247181349751456491422255310954120751242613217142781652917181023871130231231691333511434611537271362846399641037511156114771781827019342210455011511612527213549914557415564616579617686011342154432110422005233262477725278280593223103237113376124487134728144794154845165127114122313377411385117861215721558218792277102843113019123076133174143276153670151256336864119751254617667191382066921701035221138141239041340361444951545461648901130221033734405544668687934810159102610115411127012133613191214213511302165391349665998610217124081354920961021581122091223811324471432221533121634411734481835261943052043572145272253151130236834544461568767677130981459915701020801122271225281472252330348355970616467167881774920811021491124581224951329621431191531511632021733231833601936562036882137392240211111260637294766585369457116981235920921021001121901222451323411428591530951631461735031190225833544534558166267776892791073101519136210931834190518326183972514825879263310268411280111412231333844285105461185712728136892375102432112502122598132694143396153441164176142213831145411865163361699720068215092271102337112874122940133030143945154252164304174345184411195670192271831169413875162561741719398212292218102552113890123986134088144154154213164346175441185531195597205669215819225897114129323170441797520056201672767828979364810445811454812465413472214483415509016534917616918626719641720721421798622828223834824842325919626927711842252334241448515206182771936819879300810305911313712333317122283284437454016467777489059940101191111289121925132021142771153419164470191821276313274181451969622407274782790928801030631131931236831337341438001546431646841760481962632385849505102162477726358276592834103257113564124074135012131218083191242652527286289072941831419326110336611351612433813444314454115461916496213582106731984420745294663253735968372393843104270115244125314135431145497155742165793176155186200196528180214635084121751555618067190482599926951027101128251230261330921431731539461641361811290131093411715147661626717378246492543102592113650124428135919146712156773167744178535188625198817209595211144122122022313610241367725140962614283271437328144692915312301538531154303216378171252735804137151461616387178481848919291024851126371228961330041431081540921649381752731857691958902059612160272270822371882472662575022685381229280331720417785265062957733868351393633103974114196124353134831144895155056165122175429185496195859205925215976226042236136246214180214633734947514016201472104829189320610390111399712417413420014429015474416486817593118602119608720631021706022707123719524824611122831214134546668347277182926930251031231132011235721184225232934431557167097804811359144810152411170112175913180214187215197016201717221418224619229720339421346022376723385724477225490326532827535828616929624430630131675432758133764734842135850336859337868938953239957940965441974442107764310866441091245109494611299114122313311437754676920710108192592249102461112551122771115125983688416035224262249726988274993915129825303620480358446900711018114491862101928111969122060132109142187152975171222832794345549568007911896891034101175112224179129343115041240514676155772183829809301110308411311612317313417914431415517416524017537518545619622920631011741218163182341854539946406974120862609633510652711677212693213822214828815836316911317921118951819958620989321996522999623100252410202251053412882112531386420975239362459726978274892778102903113145123235133337143403153547163578174315184405194644204774215025225123235428245637255673265751276002195521126312014193251953619967207482222113124243490453156366771720898295893168103248114458124578134586144672155610165730175811185922197372207585217622227867238129248239259041137255736674680581561256712648130191841101951112258122354132661142729153036163490173541183838137253236554748584061064711308118192008102016112106122202132720142956153007163364170821196314674151851616616847171081820921211033531133961234721336071437511547021648221749321851981100721060311534126352011620987220882391925161025471127981100242731224413225143761457715828182491897101972113214123287133332143577175214132164670512836137372187824759317010326611401612414013519112021117312074151252308623837256383354940831041491144561246281354191457261558611666341767151100221031202412395134962430724678257793368103399113472123513133809144020154722164877174942185249195290205400215649225739235841245913257199267457137214739384164051681621087266183191932221032301132711234101335251439681541501654401755301856751957412057732157972258382361341922225333541126524236247473546845539460610469911480912555713564414571015582016600317612818615919636511436215373223942952530386316873199849769505610520211529212539613550014556615565616652017680618687219707220737921791922857923862024876125980426101562710368281041129109213011517124423123402411045172761813733208348594643104808114904125167135266145364155385165428175506185654118422743171141876520076341473579837109377610380711482712494713512414545613052610391141149513636139571552815749161510170311176912187913218014225215240216248019624013491422015224262482737638447194533104785114940125160135267145339155519165669196240134914597566567587159083306933471035871142901244141344801450131553401653721754291857361958112065602166262267162373692474202574862687722790301256238034704810511896198672510826329364210370811387312488613501114509215516716562117623418704819733620803121812722813523888524900925100601136224033304635596261058710948123491485101595111857121888132473142581152816163743174443184983195253205294216067227087186321621324264307253213633437415084231943711044371144881249061350611451121551781664641767221130021390315134171252371628597286782993931481031991137401238701339451440171541971643471712228327943455356649879428106291144102461113087123144133210143221153661163950113622843644471059106121771446821729221310235411339712374913396114400415451416511018632116231433414995154162368724168283492989103061113211123289179722505326134381554122649197498185208955111056311158421259081362151463051564371666511767021869581969902071492172212275402376362484451312571366646745811693271042815899167910171611177212188113193214247815257316266817290218297819302920366021373222375223409711712292341045205103661126711928225593065103106113196123317133435143545153926164209174415184752194759204849215100225198235270245301255330265507276569131279323749785103761254713448152791559101610112189122372132444142594152672151211731028411185134561581717108176391838101927112524122614132716142782153458164060174141184256194365204455215098225229235617245713255810265896275986286052297102307246317987328510338517349273359284369408371045915002664380449705134861503718318226092409102529112870123952134004144070154578164805141211232344103151129611807293783617936591037371137841240961341861442621543031647651748401849361950382051301472118318604211952167621997231982444925301025471126981231601331951432511533311633961739991840941941452044042144472245351472118318441054512016127771978820339245110252311259812263913320514325615332216337417369418384415121173152424257816181971857823239237010246011255012261013267614276615281216284917319911342537360347135806611527153182322928061028961130321233981334881435641536051636301746571847951951852053202158602262632364182464742565212668172770751116211833197442691531096381175112852679629910634211695212825913841414865015961316966417969518976919985920992521995722100032310543241094625111012611556271160728116732911684301212431124131112283819491751425614917158081690919761412112317843185414650375938898994910207611219612249213255814259515381416405217417218436719511720521521524622540323634424638125652326656027733528742529752730759331763032771533778134970135100333610070371021738103073910387401047841105104210932431100744110144511154461128347113344811400491143150123215112525521277413723333568418735191062147721848242992451102483112905122980133085143151153270163311173389183595147211833414718582469717130181391914411018261119611220661326981427881528831638861740771847791950592051452153202262941112283819491751455622467240282492928241028841130341249691351231451741552401653501759811708274931237415085172361813719598203092447103157113260123382134173144271154808164911174962185990148283939294111252152626897295382994933021037561138071241641382304340049965108661136712478149291499102199112739122770133244143281153326164312170827493123741508526586357573616844889452310479411488412489713543714586515623516630117648418658219672820675921701011342208350445945845693971054810959165510196311213312236213265814291611312574378448645930696179978102991040101155112011122028132230142831153882123126813109341547516561722243331943705446648777208855990610185711199912250713329814339615344716352217366618386019398420423121436222475023480124550725580626590815123133379411205185062389734278351793982104034114574125051135161145762155978166250176291186381196841206873216963227039237795248585258651268913279081289193291056914624193543462356896798785488719163210217211227112233113312214322015337316393417413618493319524020531521581822590823600624678525686626690927698728735311127523855412865210762484727418305693184103761113839124040134148144189154919164985175735185767195908206118216561226737236943151214131253413545164761694724248249092580103119114157124599134775145341151284238734114251334623477240482500926141026221134191234641335841440471552141672160344244855563671115128423940410935165461728719758212492737102827113680123968134058144512154713112622223363446951338614347156582372924981025491126321226971328991431311422155322143925923615337237683316934021034811145111253021353331456021557941658841769991871801708280831001420325215862248722558243192438102590112741123192133317144322154562164633174703184838194879205879215984226754236821247321257362267440277646114022473634472459166987719648242992764103260113307123385133528144298154368164545174919154027543147541565525976268772808840389414810474417082154831703421665262962760735518358293851104043114454124807136017146723156730166771176901186942197028207068217119227161237251247792257992268043278516288548298589308623318664328725339407349458351002836102403711013381106939120891130216634774543558461425715958163291898101905112089123021133171143482153572163709173821184477117021141312714196252072621387286182868935901040091140651240961342241445941148223832984364540564367149181528917831019911120431225511326751427411528711633901734561834991935302036802137702243092343462444362554682655942761112862222968081472118326042925338636271560816339172810229011238012260213354214364915378016387517505112082275336344785494658477918100191093102136112201123839133900144070154160165841170821560317024195552045621217313283677943791044541147141248041352671453971554631657941760551861061964472069352169762276921112752310924118251415616627208082782932921033821135431238121338591440791541051644061744141848341950522052932153582254382355282455782556892666522767482867762968233069043169703277903378253479203580103685253786153893253995314096214110233115122513953499852066621567318884400945391045501145671247091348011458731559831662341767451868001968962074362175282279012381532481962587062693021922662371748135884610287111881260923801023871128401238721339531440141541561643551747731854751971762082082191012295752310531241057325106692611030271114628115542911846301191731119243212181331242134125343512605361267537141253814259391502940152794115722421589843166641722162320344085570660576958101691057101357112007182029463110541138511756149071555822559229210302711309412319613328514333015342616411717972886313984141951504620827283883573936141036891137791238451339351441361542481659591760241862041962942063952174062274732375752478572579022679982786891622665378941329515156233572863830349352510411811429612440313454014511215515316566317572618625811902258357846915819687079418106191598102799110625443594478458256139671613816549172010184211198112281713298214302315310116384711302220359746875829618677195882058922591025901126861234991335481436381541191649381754191855091955582056542158702261422364842465502567602668722778281870293631198413375215962235723748240693298103439114265177021278317684199052100628917313883234932651034271130216532554846593669537171482254923531024831125491225661333271438671539661641071746691130216532554846593669657100681145912751013411113701215381317091417381517791619181720271820781925602026512126822227112327432427942528232629442730342831442936681472529312954132752278623297331083341944111045011146401249611350121450781552281652711755171472118382441206512576195772047821079217310227911288312362413368614371515433116478517481618502819512320521321541522564714122433930410605154861821723968248492574103554113644123704133770143821154331164586132276138044874591861065711428159892050102820113542124333134423144600155831165941176012186190197252114122313337434454856575760687129719109471110881213651572805310154105551205613017150181992922701023511124921225501327721428531534491141223138674928514606203072191822339231110234211260811412231313914145251984624037255482596926741027051130631512117314841128512706159171697818399207510311116226253696476651315613477148381573918601026771127841228881337481445391552681654111754771855241956022061111482378312504199152160621677278382955933131038531139191242381343481443891546351862132342841210512246156572475825829278410283511286612390212082658313644147551526620367229111302161325244825148361520717218175391794102105112171122251132297142331153033163047173126183237194564204700214737225407113027823833412955207362487724948275193493104066114161124531154121243312844146051991619987208082190927001027071137261540268031500424775329064063747288476395229105261115304125814136352161427233734486458756109371149812879133410182511200714229331734363517336177471864828969381110381811409212422313429414450215530616622217632918653119658220661321764913228331484189527968187185681888919391020191120851221931322991430651530961633021112493515456751296111228317042745748617697185982121925181025891126791230101330351432941535501130210423110841769526016301673027838379391810409711302782382349115977610677115781464920871021821124321225081326381427041534551635451735861836961937622048981472997317884253452644627107346383519937061037571138231245591354691455791557211658271765931866241972101472523361349645101161847719428203292383102420113016123106133246143278153349163519173835184536195882205977216024226113236233246455256545267216278121288211299243309280319370329512339549341084035109303611680371171738119403911972401206241124854212587132283314142075238692471079811169116110129217912889397341539175261837084763585969557179281823922691027901128561236061336171437411547921372132331343645477654276668677988810106913228331484238532868677963810539208510213211261412340513354514363515369516376117429218434319488120491321589422595123599624602825698411127523855494551046616137170882001923341023851124751232251336671438431540791138218393190541946520726208373174832099325010334011387912392613401614504815509916528317537318552319623120682421693422700023704124707225766811302181397241718518286189472647826789286215112601369741237513296168772227831329393610428511432812440613477214372592364547095141061541717228173391879101930112001122223132393142584153930164344174410184600194666205522215723226024236621247161257192267272277573287743298788309328311023632102773310314341192011312101731138416895177961983720348224892280102390112456123103133154143231153321163582181321012311084122351313614747167982400937581045491152781257431369741470841571551673331784141540211633125341334516256166671857820029249810261911269712284013288314361215361916370917384118461119474220485221499022559515402116331253413745149061758717998220592296102761113531123615133762144105115122103349443956146752780381509918071019091131224738404100851079611537142282128921651022931126491138260331594417055176961884719498243192522102796112886123918133965144073154164164362113725433102041072513416149111512165346946005675679179298970914611016871151228934204536557761030710378133691387101453111569121620131686141717151855161995172270112421903329482758696109471464112122123358439051305613957154681656923421024321128381229691330201436051536621640681741991842891953212053832155032259741137225332644410546169717150281570917651022281122791227891330191218232833944901511546118571739822749248010354211102780387041047514391822123323948615912613217155881890923091024261129041230411332051433621538701640971137225335064577513886179471876819489203310212311217812227413252714340415352416364617389918400919411920424221455722466723485024496125507426549227570928651329662511312235365141192518846192172844829469373710376811397417421383450469151289616957176982782928691032871139891242191355501456811561721662281762591862951963272070682175592275662376242479362579942680842783451822192376248945137061460717351167230033784884510046173471750818079253810262811277012289013335314455011402200326245745623681771226813169176910189011300812342613348514365615370716392917484918495619501220519921533022540823550324667911312601369141011510926123171292814649225510263111308512317513332714346115349516363417372418394619405720458321467322544413725633653414445217362587726538320993299104251151284231350415055199562217722488241014225013551456759856120272006821181147261839334142451710618187185081996921221021931122911227421329071436801543281644181744731845691951812052222152901422353357546965786687671908820039212710265911328412342613384414393715413314721183338438958856917716708173691855102149112259123050133081143347113021288320304212052659636977374485204956471066341167541269001369311470931115217313176342333523856317673813839039408010421011584812590913607914616915785015402653399441791518896265972768829299303210325911302141315843005351686179518127191361101435111546121623132414142946153036163096173162183268193345203411214152224709235356245407255484265574275801157219832324356550565427106881158918091372511360146615727676877998102991066102096112227122807132958143660153750164812157224733134131551426618277186281894919051019621121961230081331191433241542691643811743881844781947992048892149712249882363052465941130214131584300540464787617870799691011391115591217311321601423851524811633111734831843231944392044862145382247082347761479252035544615591461332714108147691493102303112463123126543112341540520806268072770828549293210374413225153547461357246814790981869923871572180532067426075302263068736488416094279104320114354124504134926144976155686166596177511187568198011208152218834229004239777249833251006514121073480449756076657797781291132212837444108952276623717240382471942971048551150051250461353721454191556351656911758411869441972751472137314942395127161303714138147991792101948112754123346133396143486153909164011117275831488420275306563155736208367293749104324114434124516134654144725154844164985175081185611195722206396216486226562237039247265258056268363278414289120299152309420319522196294831113419175195862004721338235992400102485112517122573133039143139153556163721173836183883193924204002214009224557196294831141412325148562025722098230492360102476112782196295331124412005221162716729428364994161104291114347124665135551132282331122412755183661903719788330393513103745123028513172341764517986185972776827839309710314811330112336813345614357115364816365517366918378419387420396621441722537723544924555925560926592927599514122433930410605154862120723868296194092104180114270125250135340145400155466165517176027186282115126433733496151053611417128381349914061014371114731215051315161416311521221623481902161338544405536610157115181237914241015201115711216671316981424261672858395841033511236196071992822749229910234011255712265313270114274215282016302611712242335244195509671671173814839157810167411181112223413235014243315269216275917292118292819302420333421334122343123348124384325396826407927449928458929484430493931499532513433522434544635555236627337641538644639660819621067311974188851998620647278782854939901041001143471244991348411448931556841664131765231867701968022069572170232271332381951791295131071411735123962319723998245093289103334113691167213732304410550061532715798165091725101815111875121941132031142089153050163125173929183970194048204663214864224911234989245347167285831725419615279762962730038308193827131227433704460512976134272290151284239404109351654626707271182958930251031271132161232611333571440481570210513122341391517306194771982825199309010320211457811402482354745885739680078908185091952151282356545975663672471406815769234910240511248612112313311044141151501616527169381964919961024991131201231671334381439311539631647541747991857821957992060412160882263482364382465992566892675992776312886912994741131214232884940599161461715718163891728101940112408122661132751142880153480163650173850184347194383204665117216331944346546165337584879898301094011100612105313110514132115211216221017230618248319273020284621310822325523374911721633253466357536819787081528916401030161372174326443985106661132711698131092353102390112527122588132678142715152852163672174293184484194564205035215101225912235978246119256162266252276488286549297251307371318433113821493213431758066200772096826289267110319611324712371713380714409311312223370447115777682871139811869167710185913723073465451651121611727132181411914621015331115991218231318741429601529711632331732851840141412243393041060511116220772397826529271010293211301312371213127231364192527263787468863496661075611860129511310621419341519771620551723011217237835624643568061752718428263393610103706115102122623873484472458396910710008115192018102113112244122295133562143653153785164695174845184906196222122628223912413385211162743727978291293685103875141821120311344142651713624007258182660927561028461128961229721335831436451536771637671739291840441942112043072143982244452345362446512546832648531137236734634565563168817119481245914571027731130311212634368147715820690779788104291100101177111267121414131425141487151710161871171908182378192488202880113122083249428455546644772688579888101089111176121266131507141573151605161695171943181988192096202176212327222417233848114621573115841271513426135971470816819349710357911449512476713564014575015580416595017602718623319729517121353342455357556806786989599100510106211116212130113175814182715198711312142320642625362645275088564970410191411204312215413269514273615283616288617289318303319309420408521413622461223470224483211312333339441171511936124471356813979149710153711154412168413172214340215344216415617422718431719526911402151321542325365645671085812159133110141211154212167213175914242415296416311917321018398319406414502540360441647517276178871829822999284510329611333312349913358914372115442716480017485118506019572014721223769478559166927710738115791223101264111354121444131480142695152746163237173269184045111215731884340545566607711892599571010671118081221571322691429251172163319114217352713631287317483474936161037861142321243191344301444711550371650741759171862601138214931644205566967387785889391526102013112133122289132336142444152494162692151223732694961518336232072398825299259010290011296612328913335014357215365316462919021553335445959996103072636161291731027410935130561573716148170491716101748111759123060133619143670153882163992174292184942113125743758422515229262983729908309194277104489114636125906135943147404157725167776177988188098198148208468219466177291338344975513613107140881523917781018691120341221241328971448371456253135534967512146138771682821689240910245911266512279914862576312864138251537615997178681818918691019451122521224991325311426081527131628591728741472597312444137451505615167166281746918121018531119431220331320691432841532951637071737971848291956662057622175942281342385492485952586462688582791702892251138214932784382585269937124381375920811025891126401227661328071428931529541630621731821835021935832041142141602244121131214232884940599161461715718163891728101940112408122503132756142926153336163426173492183543194118204239214776225986237256117216338734102951095611857120182193926441027341137351238011338381443501544281658791766521869641462267331590416805194562981730338378393863105073115841115121653457457157016149871596817119196610205711215312277013353614358715380916382017396718409211307220983307543219534076349773757843611712141312084130451336613877193782244924911025231126001231801140255438954115451699618377196982100922311023521128841229351329491430541538221151236234324463598361029713448142091555102250112388122419133499143551153893163934174080184125165328093211742756529286302473241834119359915312542399841034510926117871890820029291310296411367012402013410511382674376441005510716171971785824199258910262511306812312413318614324311512858397841237515446196972512826119270110284711289215123103428444155431112270313414146152167622237232782341925821028041129061233621341351453451555991772491383248785958610057191281959929301030671137731238291340011252176351745635659679178698107591587101718111729121875131927142390152445162660172750183338193404203441214504224594235494245595255745265978276492113822723812485359346102471497815879169510177211234212238313264711312167321842585320643174388455949610766111084113821493194424655366758783889759103610137711143512161613170614180715184416276417291418292719295920362121367722382523386624400525405626422127435228445329458430489811512165345746115728690571212813289154510163511173812263811512275349745445559664971711817991472151379841181513126132371469815539161910166011175012184013187614309115312816377517390718405219411320437521518722525423593624610625687926693527700211721633257438955346736777381842919841023511123881233651334551444871547311512257831388414785152962039722358228292334102504113504113821493531410735173461785724558249692582102643112650122701132931143021153150163191173552183623194104204223214768113121423288494059916146171571816389172810194011231312240813271614283515288216309717314818392019396120400221411922424423429524451025454226470327474428568429573130633731636932643733655234740835746036752311721633194455751068611197129181861919021019961121421222061322131423591523741623811725271826561927032028492128942230442331321175422016325564297153017630687328083538935581138214935314572580761538716198215592213102514112655123616133689143923154267164314174765184926195022113121423288451355916761785189179307510335211446812451913473114477415537016543711721633311442159926105371194813409193610202611245212322513385714395315396416468717540318546419563420594617729133834497588061677717758189092145102236113943124734135711145855156043166133176393186997171214131208413045133661413715478160892084102634114024823598410635121961321141244735384109851339617457179282033924391029551154230533614548588461166712448148591772148625763128641441515036169071762820779243817502840390441245514906162071716818679198514721113312194219652432625537400484169946501050911152311253211353811454471555371658571759281859421961832064052164522265152377252485391776220773229943001543026464374664856409569110699711707812739615121413891493751057617387251183348940981041541143131243481344901452461553021656571472908394041004511281562467349849885117861210719688218392593102743112229133132041490517726184771943822409266116952791383241277518166285472886829279323810346011351112373313391414398515420914828393980411505123961934720308207192516103055114093124125134166144477154699164789175999187448111125313621487659576104371095811369127810131011137112145713151214160215173416179217199918219619340620369211402602371841172523636245872531826269318810327811350012444013454714464915476916508917518418543615721083179441056326819787589189112410193616812742313834147951882620127204983465935211035641141601244621372714375541546525236316373445834929358210367211373212379813388814394615448616451717531311472304360348905101461104712058125691806102573113085123835134765145806129924303496452751417616217187011472218330846955785697771020811379125810137811155412164413267614270815287916300917312418325919373820452921550622554723623524633025641426675714721183340443557766174871796820201422353357547085850689679208957910611022711322122337045925137862153729998309493316103468113566123656133745143893154067157229734274517558169027943818959190210201311205312214313285314299215401916495517521111362956398741149512976140771978820309222711564216163326217121083316224266052712629957326783322934841039461140611241081343301454431555541661501231268131093415475168015221963548483151021616771108234834784597590869517102781088917941021761122331227031327931429301530501642521701283239884103651047614507151182122921351027051127541231911335681442241542641643921131214232044235591561152712628228992420102470112505122556132957143179153259163361177621221314434161951709621567271183167937321038621139781240091341971442581547051648151748541849441950762053352155112255622357842459342560121134220532954451514696188172102170128393102541643516546169571759818509196410213111218212223713235714321815332015382694370149305193262572726628267692749103238113328123409133556143745113122723407443851375615317167981769931821032181137721246441349511450021555121657531138214932044245529563267818892891084101142111177121412129624573146242142522606231872353834281131219233574408515226152972217822689233410307711357412369913486611382228328441027511416130871360820629300911512865387249995105061174712648267792713102795112841123428133716144422154473164504175140127276345745451138214932044256510146162672303824599258310314511328112402413407114452215466016474117478318485419510912721373382442851150612817131381809918991021501123921227641328471429191535711636811737221843481420269631074413305145561500716318164292154102860113931124209135087145159155309165352175558151721109317714202152150622347232982419925271137287831785418755220562882731538370593845103896114157124164135919145960156736166847177033187123198155208386218476228923239478249550251058326106932710939281104529117663011908311193932121451772110931419418865195562102728788294893197162221063310744116451582617027189783433934761040131144281244781346091454201554861655421757541858731964302064862165172266452377031140258535924643565167187769898091238101445112215122665132790142897153333163389173479183607194458157026063111641361514516165771785818659190910194511247612251713253814262815283416289217296918300119305220317521318222395523403611312146381749375113761452717628185291894101945112016122261132365142455152587163261173278183368194182157212833734477556767737197581992920821023681151236236074711580161007711388119491284101388111439121543132563115621227313474205353810646127468385153952431059541137225833484488511306125571866823539247310266811277212415813416914422115450816459817545918556111512721310384172951825627067279183252940591041091141331242781344191449561557601659251760761863421966202068552169352271212374302474952575362682422787452887962995023095343196243298941531214113215242732528276296773583837039389810463911473512480513499514503615528216548517560818569819708011312333347744885529661078108856989410166411179412188313197614207215214916223917236915472582378941239513646145371509815209173110191215402547362247125788682971037814809168810210611217416402755389941440515716163071691819539231410315511329212412413418514444715452616471217498318559319604420629421638922650223695624700825727926736927761811312162364447645152761559720738252792659102710113192123983134064144264154476164537175557185632195778205809215971226039236090246929256974267331187929543978412375141361607716488171991800101851112421122489132579142899153649163739174649184715194876204992215134225240235961246103256134266720111212232664473513496215972200822669231610265314125733663472857606872714348192592001102042112130122196132204142294152444162495172594182626192691202932212964223447233479243496254246264341274522284628295349305491315522325728111212232664308538266427849816909173810257011278212331313356314365315391916482917510118584219593720733811372907318574191351967621037308483208934301036271140281249481351551457671558571660011768731870431137225833194530566261365715168163291764101918112056122599134199145006155480165491175508185610196157206247216474226525237035247312258040113822440325204256752675631247323583438113728783932410685129961375714218147391596102050112477115621733408494051030611627186582016921321022641124181225561330991446991555061659801761201863941964352065772167522269581131286439964116651174612957183782828929181030651130971232681333491438561540296131051411275187762009723188242992470103054113139123171133342143423154027154029613105141127518776198872083835949373610383711426311372258373547425893691271239813709164410168511190712208413212514215815231016278217301118309119314220335421344522359511312172385341554522156237172491826869286610317511324012328113347214358715367716375317428418492619505120513321532922546823552024613625625626645127651328663329691917502930399141061517176276272819828859291610294511297912373114722603460451157326100971118811509119110143911165112170213191414320015345811372258373547425192862158723098240492535102606112693122788132908143009113122953405410735210562166731648331417762887310734116352195626147271083228935491037011144021244921348531448901558201660241762731240210773188742707528056288973455120263237884150951624620997215082185925511772137320043315808614117150181591916641016961123521224131325101426011526591634691736871131220131068410755118661246713368147091507102265113824593584459356516918113727133824421425223262516726918311393815104005114046124127134302144641115124313472453056686679773488949985101076111447121608132261142761152819162854173929113121663317443254646525710768118691802101892112024122170132980143970153987164236174576177257231128411485246663070731568329493305103360113401124463135173146497157101167193177499187586198630209283219355229415239697241044725105072610787113122113507467751095619577260482694927601037011137081237401337911438191538811640321744441851351952662053322154422254832356692457351137214832104241512826137271377813969204410213411214612297113301814407915425916434917441518450519482520487621497522500723507224518725604326616427674028732317727183808413265161261666717078177892848103013113103123169133259143579153611163628173718183908194096205003215065225801235941246012256208266314277035287177297208307414177271838284984510016104771654817859184610189811252512263613350814355115362916383511512211327443775584667479128152892068102819113615124032134343144454154901113822843439411815182111382372353946605786680078078885911671012251112321213591138260437384131851359614237164781737927691028161128871233081138225932814332584261625113821603250426353536596768787099147910154911261118726213753484051456619967326683356934431040591148291249041350901451311552021665431771501872401973042074252174572275082378292478952582952689032789932893542995463095963110306321044633105961138218935594743511036170471739818299196110230811246412255413274914282515284716292217305318354419404420415621422822436923441224503811382149316642915342637773818129291525102905112969123085133137143408153498163747113129423100841059524106244272532825969315810328711333912404113509811512690378541512515766170771984820559260210265311271712282113412214429215493916502917509518519119532320536421609322618323633924649925671026774227816028892129896130897431898132905933912534916535918236999237101521281232233954618562966847735880891168101215111575121607131650141841151888161959173031184080198244438854956510526136971810819949209010214811242911312163365947495100061242716148169791837101903111954122435132482142606152662162673172854182963145226173754476559166102671182824019253710262711272312281413378411382604314854280552961633797385584864948711053471154371255841131222335504106251143611847125081397914871015531115941216251322211112733788414035149361649722718230892786102876113090123156133212143243153324163414173628183694193726203903214291115127923907410455105661073711988134991442102473112543123423133479143646153727163818174418184579194630204696214726225451113121663746478751407615657218782888933791034741138221036914847597861030711868189892509102613112703122769132930142986153076163586173894184025194091204122215012225216235465113826043738414595152561686717438181492524113121623127441444515316282172887829779299410324311358317152967316734189552005620197203282443927461032191133171234911772677398841119511736123471272814909164610171311176412235411382604367547955167661861115122023216475958966100671025817109201310214411221512234613243614249715263816272817279418283519286620346211382149320441945520266283572887829589363811312277320184210852320623767238783704939931151279239024105851075611217114581282919241022541123051226161326821428331356238034904109151904619397200782144921551025581132641237111339381440281541601642641743731845851946942048042149232249352356362465002565902667342767542868162969063069493170393271153371663482233586243686963787643897813998324010044411017342102444310565441062145106324610813471092212022306311774126751388619947208482531930861033761139151249531354041454601555501656461764891870351972062074112176331750284039044194752026620877213482604926931033941135151238011338521441781472768391049525165061848147258336984788599261043710548108692006102267187217731934283582261860721668228292333102459113625147215339194987510196107071686117922303108642402524926326573331833389419410436111576812581913585014648611302840395241033510746114071250815579160910170511223812236513243114247815253016262017327114723893479463156636898797281058911481011841115251216761319631420531530851643321744421845131946912054822155722257492359902468272576372684572789652890772997331418211203165241973529366303273136838659392410431511445812454813490914494615516016527417539418557119594511342205329546205897697471041810829115310167611237612248213308614382715388916391817453418458419490420492921518822536423552612712721311334158752334624227248382573927951029341130401237611339031439341540961662807311574169652908630227368484224947011048111154121262781367091470861571361673591774231875731977892080612182712287142389042490472593092699211172758380241834519436203972316825809267610272611389812400113409714417315478416610417620518649219654320663321738322782523800124876719621128313074235852818629087303283315940111042081154241256211358011458541558731668391777171878271986992087892188712289222390122497622510204261038027106461572532368748685157161642722468229992419103149113170123237134028144335154584164657175750185840196107206180216282226564236609246705257396165527733905410595116962199722898246693468103525113747124483135808145979156089167104177161187383197731207935115229433125041317514056152071536816269183310192511237612336613345214359815360816622163257473557856134671393836039388410393111434712440313472314485215519911412118431536417995237117722273317457857456841710498105691152101163112343122446132715143004135264837384800582969257164082699927891030301130961231471332131432441544641645051746531850711962982063392165772272852374912475572577052677822778932881372981723082193182943283843384493485393585761112752310324136552052621787255482656933181862391345045935683617787208482382925741025821126721229931330441431481532381633041733211836391937491352120325941056511966128671351813829192310199811232012235213244414255915260016268217375418384019388720389821493822498523507024546225549426558427644517121483238432858676190571991822239323510427811443711302220342249615199962129721958232594547104637114702124760134791144947155213165414175451186452196582206617217103227255237594247635257670268546279948281024129102823010392311045732109883311725341248035132683614029371418438143143914380401511141151614215481431549844155484515885188217833204371594269687128081839919701019841121981222851324611425761526661629481743621844151944222049332149462255212362912473032573692675082775872877092977533085503186443286923387333489433590853697353798253810857391162740126394112705421330818202129431571417305252762597730898312493160103211113286123327133417144449154573165154175269185791195798205865215940226016236118246217256315266393276474117123213413450155626652787481013911231011341112551213471326771427201527871791294331024410905112762143728251797298331024412655133161338713898152592497102744113497123573133675179721096325104252452771629267308383327934081038111140721242441345301446861548021648691749441851261953621454257831284413805150861598716578172693088103231113931124086134176144226154231113123013344410765131661498717341797218133189241958520486212472780830319307210331311337912338613343714357315378916387917491118497819505320523921532022539623563216621473485460559266124671547816049170010174711180212189813198814282515285716336811522943312504131751405615207153681626918331019631120141220801329201430101533311633661734121835021935561791288931404415875250962575726078352993595104104114273179128893104241603516306170571829818721770211323122241268513726240272492826309271110357711373212447313454914461015466116502717535818548819549920571121574222577823581024582125593626679227684428728714229334454111551122611897119681775917821028141128211229111329181434051534371635021737741838981940492041302149212250192350702451062554272654932755422856842958083058453158933266843369913475383575813677983781743881813986194089324190224292724396904410111451019146102574710308481037449104055011125511128111402623391541005511576171872538828459338510513111532112539213556511712182333344435493668377268120891324101389111920122050132201142242152765162808172839182989193079204111214152225260235350245517255549265616276436286743297048307155317275327408337504348374358440368561378596388686398696175284839384993510896189872735831369318310325811334812341413350414361115702659311004118051807624207251083324936121036691137241246661351161452981560891665971767851871771974591797213043175842112521556224372304824009245010254011282012369713382714391915456016461117468818475419479120531221531922536523544624549825554117762920398941272513686224172309824269246010255011272112276213281214290215296816305817310418314119324811402482377348635101561175712508126992190102237112308122634132685143106153124163156173909183975194055204089214512164213031714492514106154571586820401572983428413005204162210722178283393005103135114199124366134468177229433464807518396213572225825229259410267211270312291513301814303515337516347711102370311614125151428615737186481988921381021791126611227111329011431171534491635691737511839871152294331250417405207162201723118237992699102771112899122995133124143264153718123126543798485952092622347232483726937671040541148071250541350951453951555201656131662807384248835973615127155981649926811027331131541232441340171443351791213273138241478515886242572591827119281310287911395912403913410614419615505716514314723893479477558076950711018120391278102198112264122354132675142710152800163121173138183263193372114024823598410635111461918720848217493576103617113904124875134929144995155046165136175886186328196408206701217227170728383954411355206362228722948246493165103280113370123401133807144039154115164919175701185825196375206556216652227442237485247575257837268857170721858321204221053170633327342884168942191050021153501137225333044101151502615987168882720928441029751130411241311341931712542359541386514766166871814818789195910251511331212340213352314355415374916378117384718430619464120513721542822549823558824572625587026592227627328631629704730705431711232723233755234763335821436826037851215312866395741023513436163372172832109336010468011477012486013567814656015660116663517678518692319697420746521749722799923862024929025934126989227100032810074291016030102213110759321091133110131531260639414992511006113271634822649237010243611253612264613273614305715314716322917327618334719342820347921400022415223418424493725500326511927518528576129598414721283160466657766842795281013911561015841116941217351329431430591531251637011742841137292831235416005259362683737358374294302104392114913125018135104145351155536166598132621358314484156952319624397312083311939981040881962215713162141827519611902312341045965686673778451688272537604184552277627547284482894930051030521130631235151336111438331546061665461570213613166841917521046236973474834819373010382011387612411713414814451815459916468817479818511819586820587921677122688817126713722478851518620577309583236932871035981143751247921355241455451472797390749735106912222287341146225161462434731248317693247103337113810123925134416145562155683165773176546186612196702207022217160227196237257247323257483267560277721287853297894308237318278328359338449348597113725383609415195179161842719088204892128102267112813124064134111144182154222164392174482184632194664204715215255226241236281246392256934267023277274287315297367308359318406328897339839349900351060036106433711660381175039118824011933411299542130704313843441392416412143231530416835224462698733118340194215104503115198125294136047146294157157167253177384171267137814178351849624207251582541930691030951132221241251344871445771547191816287339234991517446195272970830369363910381011398512537115762671317884231653433647377482785013960451060861161221262121367131912297831769418675203662970730608311593211103307114144124990135056146118156314166380176421186742171267137124150351546621067217282473925251027161129211231611982290336849001116218132424111951239613467147682393925241029241129651232471130224731038411365130361460717138179492197102458112630122720132852142903153324163380173411183493193588203625214286166280731537420765311463208732988344093491104375114382124472135644145952156042166908176998187159197802207892218133228381239247249337259625186629563138741764518416270772797828989319114682558360846495119161248717298228992355102386112896122947133140144146154447170728383109741299514036210972176822689239010245811250912263513284812022308312194195052040621827235282884930201031201132161234371335881448741551321253231438454935522556226873478841889446510458911502112534013559314579015594716613117623118632119646320688421697022732923741924859125876626935212532324386449055164561692718928193992639102749112815122905133225143315154347164384174474184616183214838894902594261052713058151791693101744111956122166132282120223663556471358096212972382829209300512532153431574416615192361979721358223713725573623417355184661996730548314694007104093115483125578135903118424543775480651420615067184082386924081957210993115541621524256265173442844199467210552411556512559913591114596615646616699417731518739219787520851621860622873823877924886925895926900315762666383741628526056284173309833999350910374011378712484613493614553911102377368248125878611837124081311916161020891121841222511111263136974144751532618277187881944920381027441133361562492315244273453766643117453384598946481049851616299031756422065229662503134824383798425145257962861160212631764366540768897940810069134610144817062173931910429135292063113732058321693252103271114237124280134347123126813109341547519046200612432263310544136151397614757170519452101331946420425214462370725761472154324445595591663371056812421412603369347395779682672153114421553172491351000611157206682137923161362773939410785112961599716898197514121783315434754886535761381315925651522160329841249513076134272417114024823572472458146119471322147251336034899593161009710168156417702935310254116351537131219332004310513406145571583142258137364742583269747199182086924251168226039404128551317614257157181941114022943384452657386818720891105121141311914156151814132212238834108451642619507205211038211433134141437517146222472320824109246010278011288911602250334647675863613937142881798157214734674499567461347713948153691568101874112060134825983743496251052611947124581618916651021561121911229111582196327447805894616881140233131066412165135661547729391572279329048535909698771137114029213111441204514456153571584817901912877396741099511896144071617170728383106041226512876201872521826119285210294211299112319717822126332399424945258462808730658310093228114722843379454913221353148419952856395755411312142324542865336636878448954911131131220132724370590262037721278236892458102507112713113121015311114126251515157218733734414547065651131233331624416655172162359113122823372416531412973634485111312333337641853520016207672166831989434610452013221293264411151131283731137412475189715121383238428854436593762587159120810129811239615721553350452413621733185426552706405742586711512682377241226513681647278039311184222533154660575061780724398254993009103642131218632824424547165167612815171622149321042625157961868157284038514165551767111322333112341382170121342314574167551807619387199082140922351138216936084660512326230572455113121140312504130151461617147183682794113827113852496351433615237177411312227339644865739694679788189611312252392349405135711382190353245735719610621322633108416053346508132267931034410915121162505115121653196424156581131224233884754113821703254429753756470711761488262936874968134123993580467057716125071503815409246010261011262312347713399514469719672101331763420355208662293723458257092770120256319641224113121823234411345124562589151425803617416801138221533404460569211312183364646975120761448136024563576413015148211826219703267012342351352848355990612077129781400151214138914133351999163219733871512141389149375119315721283230429751358172228573960410745117611402862396441206516271513297631134412605243018426083698476551184613351182621970321701121211823134741388514666161414728283136742405524526256072592827339279010295711340312366213387114398515122733284410465122711402622375548455147761865729161312525368547265767613287133581354914891015261119911221461336331437151539711136219732494124051373161220033104104117912901312834221313082574374811112189339512452288393442011521316278215222333846179129603107041136511736197472200824061140233034014132151635616787188011502204342645025592675118323053723411645136514112652371848295180361929724468255793143197223434814571581769277101781338914281015101115611225191325751426061526421626741727261833631730212693230742448529596307073656173029233101341157519396195072690827921199293531025411215121561462715648207119621923266433451008610827180614842117631217412535132361806728548288693288103510113561123823134149144407167721747320424270652784635307357183602941981116218233764509561168257867811789127810145211127523840493051072611237121381308918111019121124151225101330761462255235594867513776210472265823619241110358311363412372413447414452015469616546218662956310574135051787621647230083601938491039001139901247401351821453581556241472948310384112852160633117340483455935451042951143411245171355031172758316184185952347624427252182741944171045121145651251191357351458961567431668381786831887731996882098842110860114722373126941546515976205172113823779247610266611353115482680372541200117129113102141052517926190473280157253837034769580061310713618142792743103001172222232634979510266163217972937310274108751153611847198082301923521031481448216583168841735523716243373071196213231514102251053612157205482237925521026031133811312274332543915541658279088955911711012271112581212781320911708284839234166551753620157215382434925621125238534814537572468207103581826927671039791141191241511342221442631545361104236431155412455142261913719798213792227102439113319123474133745143835154066164519175323185413195931205962216598154025963783414555160761668722098300093510104367114502124633135424145838156009166060176708186795196908207018217410179121723318604284153077632957345683497935681037581138481239241339661440171540831642331742761847861953821722273438324152751623618057236183114114629663147442216523046256672704835159433510446111455112526113535714548015572116655817736818756419776920840014542578312844189751987628017308983164932601033011136781244481344781445441551751791217233186041941521436227472444830869317510321811372812432413521251312834133452190623277233482755929961032181139881241681349591450491552261652731762881863541964602065382167742278101219270037414888510036105071091811699117610172411372928314564149251803618697191082037921271021921122821226021327101427471528081628451731441832341932992033892137092244792346592454502555402657172758322859422962633062953173593274921140276338534903594961246712978138191447101916113363123578133668143687153753163894173984184492194607205504215861225951236983248221258331268402278580289433151274938594914510456111171142811719126110210111214812222313231314271412142282329444415472610547112081210916661017081117891219041320131421191528401629821730131832191102217739184209452189623757316683473935691036471144301922279362941331515926164371829818649193410210017972101331103411695125961335713768235392546102636112732122855133095143932154155164191174269184475179121090312064145351975147238934794631566368987972810589123710127311222412227513278514281615341214962742388749485189962391725628260392690102776112957123723117229633123041742517936254372609826569368810369511416112496513505514557315560416624017213633145342030521516219672378172136331473425595269062952732788353617722943335437651106611727126281582920831030491131691233101337281437961538611639121747731712148318942795818686579558198792077102089112232122283132314143062174729943108441315515676160871920113722033234423415243763048731408315193187103206113308123652141282317247115174961790718858198593276103342114298147210931994364553466007114081842920021030331131591238191540212423164242673528536355573945840959434410493013472390389741894521206271611752246327744835636671771120815869215710226811277812391411752240372448505931697271743170821210312684186252792628117292282939939091627271738944984510606110171603816109174610185611191712195813203714212715276116279317286418290519303918202851310134185252422625297260083201933431033601134851235941422135931425415675258462625732458336193451103463113569124430134471144505154655165437175451185530195561206888217024227061237731117522403281457251148617347248782538926131027721128031230461330971431721534541635561739411466260039424983510646115471306814539152810192911211612220713229814238515246616323917332014721863316477058026129471369821109322810332311334812360713378314394517221603250439254436543755081582916581021101121611222511330011430471532231634591572147323744305737610177109881188912601013501114121221921322421423251530471641191747421962123731958421195427564370746518496595084105135115225125975136021146197156463131225332944413546462175722658233292751102847113381123468134104154026003690474051912621137220582427931881040011140911241641346671458171559101660051763961865671966182067082174582275042376802484461722862314024195952115622057241982460933911037321137921238231339731440491541891645101745611846271947772050911722982319144202452896629867332483445942361051531153701257221358321458731563631665101766351867301968072070552171212272021722175326543555606662577348824991410992111104121207131580141670152123162279172441183009193075203120213486114822383298436454056436753686119919101009111548122586132907142944153559111121520315854218852239623057245582952929831035791100221068316394171651853618847219882308926281027241130871231781334861436051536961639361740311842921945072045422150742251572352222452542560202660512762571100821074316454193851997620607209182405925151028351128521229021330121430941531961632251732561836671944792045142150002250112351072453582554952655122756222859222965721712108331622426605270762948731158314793245103568113575123586133889143940154006164116174166184486194800172293631026410935160061631722278254892657102747112948123279133416143606154582171228833294579518806197071979821219216210234711237912244513249614258615333616377817395418411617221753265435558336964710738116391253101296111489121908133510143566154646164708175310185406195590205812216396227399237917247958258026172217532654346510766203872147822379232710239411251712262613271614301915358916382817413718470719483020560021605022661523678524697525756111312574374648765194062073141629763104241582519246269673084162268437744824587061190717308176192527103347113654123691133736144734170829193171042687534916360274372845379457410461911583517082919317104223852814629527320583257938351046261146971248271349171449971552151653011754681855791963881144218532514101751178620147217982220922981030441791210983120541325514276149371600823749256010336411340712348513369516226843774482458706119071345814359167110174111176312208313219314224515238916251917297318343719351720383721386222412123463924492915121173368450556626109071800821439222410234411277412312113417014521015540016677611002181324749495146961506728638299693072103518113628124171134237144407154548164599174665184815194856205492137252039814233153374634647354083651942241063801165421271771372991473501578261678721778871881001981902082362183282284362385022485092586672687572788132890002990413095513196463211212142235334194612565866827788816289171810203911207412216413248514306215317316368317427913722144323064294153063635807372483800947141059331160401260831366211467411568431669091770051877781987981372134431425414915208262253723458246992535102546113356123446133497144007154603141222533694416554066067709886591656101955112204122325132366142444152650190223033604450513706137771938819559209110233411235812238413258514283415295516299617307418328017822148331865431765324463334737358401915621563191434154516124271340814569170310222519222473357411485165562452724978250493120170827953811492259386101071151811949129110142911152112197213269214272415349016352117372711302222343646315721694371084820269281710291511294012345813374811402330342646285720687571377815189225910236711241312253713324914339015367216377415128423873410355144961515715468162091686101767112540122621192279231545423365236762529729438300993082103127113937190239034584548562467317763885391079101222111371121506131612141702152210162543172838183073194875204965215031225112235885246905175028483132641381514776158772424824819254710257811260712278413317616728583939410055111561298715198186491937101982113180131227433704460512976134272290154025913813416335184961939720158205692593103133113153123458133509143731153821163903175219185477156286739174110751545616657186182363924131026031126441231841332351432661543021100821074316454196052431625277268183108934211046261147161247661348771456571558201658861767741868401969332070432177662278092378872481631140219934954630514436286973673837249475111372218358546515721674371277818379190310195411246412248113301319223403510499651077611617205982106921421033821134481234551336251446351558451668481768851869601970912071572184432287011372580365141221518226257573281833509406210431111542812553813560414635715640816719917794518805519812120887421890522908915112681376241535516161116290739244122351264615957172581815919471019941130601231661332441434801545161540259138134163351780618877193382473928831029731130491237991339411439921542141643041743861857021959601512310338144275979610447119381269912991013891120401522271831130411515119261492721421473256336594782584469347177181891921111540261636774728512016127671535816849173110180211189212254319221953688479851589627077280282859930811031891132961233521335391436701537481638431750191752116321844405546616047175881847922901023051124241224751326971427081528491629411737711838911939982040152141562246981572670393041502515436216172168822649299610303711384712426012992346365846905758679571260814159145210187211196212287213295314327915121173227410185152662323723688258211212862311334121651287613777151581795918361019741122061229471332211432701535651636551741181841741941852043962147291468258431038412035122261314716268165893765103855113925123992191521005311344124451308613647143581512920391967210083107041382514726192672550826409367210437211495812506513529817822796387649605158361753718318191291959102022112340122491133152143398153475163556173783154027993889411455130061466715468166491884102605112946151261031169414505150762009721258290792921103001113838123961134041144728154866164927175572185609195854206509216550226657237670114024023453477158286134271467816279172510214611245515127573113941168516386165371800823189254510333611354212410313415414422915443416466715728483879410415188062406724818325593337190228338164906517496182672019821291160226135544102551210612267132781487915031017901121271239661348771449671552291658121758901860911961992062552165752268312374421562218335245775667689271751817869184210202911245312259913319613022745385541067511546128471365190251036824111151336614327226282434932741033901134271240341342531444661552771653241753951862671966852073072176041708296431015411205143561727724638279092886103074113190123357133738144393166217332634650574068167880899691220101980112062122875133178190216133854525567967147810885191212101332111596122136132290142325152423162560173387183646196230231139412855132161467714848162091767101838112023122590151214531974255534564357657870497751086511108712224211151212613222243139532496412174993852169582410605311737413125343644471057476154872202830299440619162113831170416535168561702718428196392005103097113241123494133553143560153657163768174298184374194455204492215193225329235405245542255813114872156331625423865247662760728968309893393103454113727125028126224033446453657926843713268151591651101722111852123139140721108314514156451781618407197382010933121046251512108431162418205223162308727098294693253148215683173343147534006349073712843279453710461211474912506613725403574416855172661966720038248092530102632113286123403133718151227333544692581261133714538150991580101664112477122780137297431076419915216362271726738275192802103377113448124068134301137274638354891596261356714338153613729743119541636518846195071982821239221910274911376612395013410414418515433616444717479718488719544820550421557522596213727463817413085134061783717988191792335103377113687123787133899143950154060164131174278110021913893413835145361716723978314793957104082114530137261736584758580868157955810069120710153611166412171413178114185215197716212413727773867418995214862219722998359994631104717116149126216136262150280038714956510806130271574175028313856491751139612297133381370918731019831120491220861328871435071535971636951738121840711313257537204242752517626547320783318939401040771150981140256136514135751739627067275382829928611031981130216632374352539364547656813589279810283911354912415013425311262643375449565106361296147025053104441207522456234172486825439263310295311298512306513312414323015326116390217442718448319455420464321593017082140931791419455202762095728868291793079103918113933124640116022703453452955806786788281679919861026941140141242361343261447081547311647741748841851371954741108224932924928593561636722728233393040103085113154123855134001145059155110166038176070186304196619111512126132270423205292363840739518456694669114428473918419305261862671733758410694128113022133430443754641727383819410515114161501718438193392078102208112949123298133335143580155636165697176018186226196676206687216817226957237008247094257407156220631217412765268862739737118374393914113622533406484758626981710328143392500102607112658123059133130143352153433163536126224033465451658276114571152812039151410235611240312276513292014298712282369346145515109062128722688322994101104254114364125236135704145725155941113022123100341560516506171571826819829238210341311359312363013408516728583998424665250762754728968295293255103530114183124936135714145765156538166760176831187786157214734624494560267097841889791084101091111915122689133008143079153829163919174373184689147225833094649510946112671177818999190710203111249912304913323614357315463016463817468518502519547020550221659917072888393849895121161230713748142191575101823112264122546132578143113153284163829174061184151194533205320215441225517235549246620256853170728883105441129512046135871390814939162410169311181312294313301311312763314694221052870629807307084321943621044181146051251641364791465111566821131283931009415015163661767718658194291963102296156126513159141726522446228672441831039336210393411402412413313421214433715438416451317491418494619635315121383238428854436593770989339100012622100331033411235128461374716158345493544104459114515124586134648144907170828683189941989522306306073150836809371210372911388012399413403514426815577916585617604918635616122663314134147551531617647177182071922411023431128831229141333281434181534851412572362347775872614787228982669928391031111132011234501349001449431556831662231762541866681967582069192169262274091140245135134558573868287106181308917171018071122601232721333821441121542421650231763441562186323643485477664771064814929160910175611213212260013263714367315419419621673257496751088611797126982106922271030641131671572893735485551596616727173382853930141042291149371266941373651732124310974123151655623257241182732929031702216043255442609535656407774617846489505510510511526612561715728937524842518746274372839835479357810417611490712493913511011152205330946515803689371234812719167810226911272411412298338848195860620207212182478927921028431131941235081335791439351962197368946965862691271052811039170510192711210912220811362338310334170751901627717361483808939181039581140481241521343031446541136215032894407548065317604867597941143223336154656566761058713178157391610101641112703122735133597170829203103041223522946236172424831329323710376811383912392611302180333044405119661538716798177191782101802111905118323033548467859236101371254814669151310237011246012263113266314283419624573129442037521136217472714827459315210320211320912337013343713222853375459756486156371634817649199711302220311344127651366614767152781945925171032231136051236361341031446801547221647931757101866121977281140256137324822515286191072000820509262010271311343412357613360814391511442224337044205838615217160281692927241028631724833533459156816137171499822629255010321711391117257637184779512966145771618816259243610250411264712279017293314345555645615327153982249923391024811125671227131330731434911539781641391745631849241950542051752153872254222358922459242564272667241472207334944005513612147127381323913551014061115441221171321831426861529831130216632374327513596146571871820809224810240311249312263513272614302311302240330846285700682878848955910391018521121551962115318142725752684871718818789228510236011241812250813257314318215323816342517353518360019372120379021392722402023411824420925521126531827565917502812391041217516826182672529826009361210430011435312505713578814581017722943345441151152618827242183459937641038741139251246651352801453891554641654991755301857421958372059302169882270202373271130216636574120351871621247233683038936291045441148071248841350771457841140260237184124851660621237229582357926691033701134291236401336751440811541421651431751541852701955851131226538054846593469867101881220917591027971131001231671341681441791545851653341286233739394102952061634987359483709938331187227733584450576269007193282714927281028081136451237091337711439721147229134384525557269347966815099247613582794315304164051782618927245282601930991130222832354242527367767827816189203210220311229312243013313214358215373716460317551518558312082329358246335704678471037812941872217843187241954529311130221232784285536766967708874991230101345111488121647131684142292152835162872174353184361195770205832216582226685113622193284410255109562805728468292293002103037113567123657133778143854153934163969174015184105194866205099215732183214838894977510876116871622816989181110184611192611512114131205415245161461703722218244893239103445114006124057134132144337154456162127163724196621757318954359653662637031412116312342135353639074798110191196102399112489122627132678142880152912163635123029033111341223519706202172091822049291210346511360715222063247435751389614617149781660917161018351119761582248328944055580679114125113562466458006118771265813559181810189417012718312444128551421616397189282344924341025381127911228221329031429931532851637901113321243320404213052266624367251515402120831428414395154761656717278226692312110823483478457657176813713088140691655101768111787126823783561412625141061628718818208392622103660113740123870133960144025154062164196174377185079195398152224931957420475211262153722208268792842102994113056123226134197144327155018165128175194185917170721706317534189551927619937208782128922641028241129141231761332661439191539601640501741401844411948621616210473174942258528726299273142842439438410509211669412823913934014974215979316988317997718100721910822201091221113242211390231148024114992511565261165627121362812232291310230132623113669321370433137513414296152121534315854189552128632297337084477948791049821150541260401361831462191567291668841773601874951979772084932186282289011776214443199242099522306237172506825669353810367611425912431613432314519515525116538917565118579219583520680721746722754023790824861825865926879927100692810086291012430102453110826321113533112303411795351183236124623712524381253819621473126941439517586176571925820159253010261611314112384313385117762159831753419405199162071721378224592302102469112500122712132808143509154103164210174496184714194774204929215043225290235431245478255609266400277439287549297835309665319820329928126221298316164171351921626267279682893931371041821143901245271351691452661553961656081757491862701963112065062165382267082368192474602575952676272778782889852990223010362311049732106323310646137262339734103451215619657297013228334044470513976161972321828419297710311711316812324713345914379215388216458817509315452635378541816518726204272072826031130219633374380591969547196682505935431038361138431240201340611441361542261642911743811844271944642049942150842251572351711437247835034564565461077712998133091406101932112018122425132515142580153063129925093619414105155061797728408325793537103556113593124067134218144383154997165069175124185220195257205736215826226988237125247245258216268695278712288789299035309325113622753365462757976110871324814209173110215111220312272913382014407215409116413817450918456619655320807121812422825023857624862725869926923327971028105311512842394041093516546170671737826679287110296111308012322116721423596472051333614237227682564926681027641128541231221332121439191540831645971761981862881964622072312177612278572379672482302583902689302794542810275110092108431655419485210262191727048279492918103189113871124031134139144417145129953179641853519296329973394837159405510476211501817721123852410635119961216714468149892219102329112401122485132816164021098311154208652311624427248383434934851039011146111246191472998311654132151417620257206682278923661031771132731234961131216632724289551961220719638271392803103406113946124036134180144720154807165041110121123178439054276948711628117617327743180842281528116285273163832299326010337111340312347113352214417215422416435517446518453719458412202432348349595177061860723338263992755102877112967123109133689143864154002172117317041377515376248672521825631342781396241104512196132971370816019169710171811234012245013303214318415319516369517376518428619450020451417625463581467651087611777123781303913501014211122021106218932544393540461214717248254092713110092108431654417095180561876720208211092252103372113379123832134864145045155401166712176962187039197105207215217265227585238330110222473319437454706102171582823929251610273811324812406413413616223823449410655209762312729228307294327104462114476110832119331415415865172062230722918313293169103414113446124003134084144237154327164448188221336320264240052980630617315683364933751038721139431246491351031451341563491676541776911879281979602080662180922281332382802492902593272610307271052928105431707288831054411295120461358713908149391564101654111738122058132178142419152626164868176189186247196337206407216458226548236628246700257791267828141279631526420655310363140738708410694153104623116363127324138199162220832704811516026215972364825149300610308111324112334813349712172587386941906520026223172307823319245710286811402561365141357517396191072000820509262010269711289012361113393114396914722073349440055136121471273813239308610333311336512341613427214438715451516452217498818579219592514723873808484051442624987255283343936501037251145841245911347301464441568661669131778711878901962106731197421175253162738738898401594141104182114726124746134798144952155062165245175321185372195578205674216471226778236835247354257395267445277605288031298733308741122821545322514253552571639337397684065941981042731150771251091351841453041553841654081754981855631956501456279739494102051997621577232782448170728383954414705150161712721308316393316103617113624124475134586115121184313374144551566620267380783914940041042451145081151216933004816512686233472468826599274910314011384612398911312743314444151251553624797262083140935851036321138091238411342421442931552191669261770331871231973642074401131288139224993520456273172841835899387019421713261438958566110971199813749157610166611175112189211312166328243175810692079718156191642102182112687113122023282412315135161644111628083918495951029614467145382256113126583709410205108661380714178158891638101880113122623119541306518576197772297827159322810327811337312429412712689313914161451704619407284682977942841060141160561261901366031469241571661131220233334404548461433715538184611312162319294197252492625297329483384936351039661271268931391415325260463219733508428194472104514115726125916136050146463156784167055113122023333438354546534714838160391896113121823693481351133612157132681887919911034231135131236071345781271268931391418035183962154727358277792867102918113870123964134060144269154493164544175504185731195862205898216608228739238854249059113128373121841290513786152171970820119208110302011313512342814222783829410405124661336715778226292313102402112479122741132831144142154192164397175490148211503130141316515126255372604829659403610434313362387347947275153861633716668197592224148228734384159952119622097234982426932391033161133921234691335241436541539401641621742131852561956072068872170102272632373532475752576222682072783272885782993283097753198163298863310425341054035108331183230331013414545158462081722518234693267152216331984288513206179371883819339225310231815532618141821120321524339453825638447544685536956661057291157481258781360251462061562171669181773591874011974522086242186722287232310823241095825110771131217332634123351459622867282683040930811032881141551249291352001482138322943755505662076418800910521010871111771214691317401540210133107814182112032152423015273262751732608337093516103586113739123814133904143970154631177028803949499251041618441540210133107814182112032152422145236962382724728257892725102756112847123098133235113821493850412915134261365714248166491754102786112901123054133104143908154018164069174572184685194798204863113121723292438755996140971686817999190310202511213812238314672676373341151518536193071992822579238810312611354412424613435414460615473716520417648518660019691011212269332041446514936204172076822291131283731090411805139262174721888226892480102588112623122700132780142992153101167721594323604241952509633817411784207945341048231149371112721225319914241253483179121262314384152852548626687359883682937131043281144991151294231249413005301763104731948326493322103374113900123998134419144507113021653337412915143417912162131806418965195162047720988223492330102514112725167285831165415795182661978724778266492775102975113050123106133293143357175028123910495351260629747339683702937211512842394041093516546212572200826549303510312316952791382241890520166206111302166323744785528610497126181425916661017981118491223831328741430861531281631921737691838181130222232744776514066144071481815739166910170511172412189413196514218415232516253217279218293319306320310021363022371423392124393511951920215683179041871521091701276639734103851729113123333394445551496615967240382695930081030841131551232621334641438751672114731265413555158262059727118308393170103210113300123404133451177021486315764160751795619107211283123111224933014873519466205272090821609231310234811243812257013268111312333339444805520615917206882720930921032021146341247241349771454581131290131032412545126561375714408155092700102790112922122998133418143739113123333437447754936624710558108791577101719112750122821132898188329933114441234515166162171707817589183510206211244911124931349418035191662389724888259111162206329143305407691812092267334344235630680111372252330843485410686679288151091529192721017314714176152462640157410584147942591048701218122271323764239152813628607312584175942111047141147911531259231369417005181061861723318284211312223327545715793683178818195391991153125923678471851789618657209582597926731026941137071131290131032412545126561375714408163491650101821112080122171132248142490153441156322196322034231552516110121573316144238753103636347364584145945851047171154231258991360201461811142223231046410785155361657717608198292810103081128289386441580521506228072492825561140265939754110651228618887197882511925251027511128121241621345201446571548171649081749951851171881288831040415235166161672719628209692509102830113121111210123127441315513866141571657817339178010225111231212332519822102831166412765141661506715778166791747101850113121923268433457966125071419814821169243334944535510056116971328813989143910188311190212092662373849115111861529116822783334477458366128371345819189193717502900395341243513796151872259823549306014121123177422851938620287206882194928961038061140481242201343661444011544711646371572123333546035771614777177782427111912124131331414385156462384726918278193130103186114206117122183517457351091611917224982336924261032871133891100221058313624206352973632457329683386945011045521145831247451522160391041942520386215472252825911927210173147141730517866185772062821251701283238804891512946136471840818819191210209211212912243113246814353815367816399911124143475457956536743791489559102510145611206912209913240014247711124143445492151322613737177481845922031023741112414347541157512086133872111822019253010308611351612356311312133531786419065235262363726228271292782103637113981124256134337113122623392421935224362455725118258292594102693157426213115141241513016136771454816669180610183811191512200213221414262511512704375148935983610437110981173912081013781115721216291317831418461702145323549345109461169713108150491615192721017314714158751643617147247582552928491029121127221732734519565161015710791702105319548945150161763718261927210173147141683517396181072005821169219310249011255317723283369452855986675779981006920571927210173147141746518026187372078821411412252436351672858310194108551240613307148381573924881025331126691227981329081429721530681639831742421845601946962047662152392259412367812469362573482676772784842885522985911790288031001417115259062747732338397694202104398115409132212235254622576868987104581745918341018711129071232281454257831019410995142861510725558261192682102767113219131226733634140051432615647164581997920931023201127071450253939804173651826619547204482115926261472584361648595108161116711578121991295101342112103122150132212142962153009163080173302183423120227413177941826519346209672404829169295110349111352612363711522345310484108951529617057250982528138296831161412135199962089722218229792327102648130829913140841948531316317573273837871540279738874937513226137871683817939212210260315402678381941612516576170471712818431572207323944565527663778598130892259154026533144441952529086397074066845801708215483170342166526296276073551838589467810477611478712526813607814626015638516645016621733350444057906835795481957921841130222032914381512786144671481818109185510227311297512318313322414337015341216421617426418443119477720486721487822537823549024644725650513721033894413115133061881724428325293376103598114108124924135169169221433317334219852335628327290482951111021153311944289553019633487342815125833624477058706905799581799918441761280239484142651711117142180431864419305197162094721698224715124773100141149513046210917126713723410655147661586719788243692445111126143769486159856106071135156261431245412865161561706122225963637473559461312187367447065796624977262182950930301144218453217442215113425873908491414252964317134180852664636967490284969949791512132349045311472111931477415285323863279151210131914281582061858718908230192630102707113422793404447911012517357347605104515128423940410935165461827719028223192242117224983661415935160062231735878359493741103776166217333504440579068257129381428915181015311115381221081321831424111141412180331046925153213221357314774239714982628313584239052935630761329243931040415171352763166470557526842718748192192029102076112884123625157266538344970511206141172108166297313341655176621173548513141246339854110117012912311644137551446620147207582586928381029781134491235451337091437161537241638341741161841351151255936294640575616121133335411165129661367714118164691671158216793233042401524351111216332294260529663287380859797441090111186115122183634466051357618077185782047920901026301111228534114501553266387646811259114210183614724973629464057561131214633174745586161173711818129192391102437112533122776133587113122683279439512182100031015410385157811312143731474425545275463430735081887292139624104452247630707316084370944461044621152731310240038634112617082749311554121152230113123333842488251186127623163567175225433444495120223481110215033744464551012622873130923163534153226223873130217039011996217271712541359448971131223531052411685117961295114022813411465651467170127773818487959206954151294731037418775285362943730248327993360103492114808124888134928145014155049165596175726185781195881206527216637226777170121451324724308853123632187332883418935631039871140281240891341191448191549551649921754571863931965842067982168882279592385162490532510065261023527103252810361291046530110053111418321152833118323411843351195916462876170821159317924221652253627147280483734170927503115641212522311217225233894480561561945719528287211322385348741218512696156871729817369178710281611312162312444135551526616977191414972714376641063512856165671817818799219110222811344512354913363314365115374116396317413118424119433120480421485415221563181427353246112871238813289205010250211312301356445755691113123843112541215512656158572320828609287911312252328546725750113122773401461357036112671157819979220910224611237617412844393441966520166213272222823189241110250511259512273713278814372315373016374917383918429219500215723413563461457046145471896819739206919629373103941233513356224872854836651140240738704926517286174711312596318804197053022633127332383439164129113148641670517836187171992820239278810289611293312338413349614357211312311336744705527610457118782005152629323112541164517046211511312206332244285459615467165681722924451030631138381239481345511446411553321615290131008412825138211382189394541295515706162172495825859364610396211468612546713607812012295383541253514246153471653817409183010240111382149326543075358689879468997911231011601112501213911131216333014108351169613907204082086921761024891125461230861150224034354113051246118122123129241363518146195611372178326843985100861049712668135891575101609111878121915132043142343152861163272122125253593473158236102771289814111131266236974829588061631717218177792099102840113040123339133679143764154064164154174865185134195224206003216714227340237402247707258481268600113822183994411045114561210713008179492541102881113862123903134354145255155347166657177367187422197518152214433994171951800624727251983196933111034011137001237721345821447011562146355747645104861179712148131291343101799111895121932131970196251236494753589361454716018167692315102456145425783119141281520956238373078831749393010395111404112447811402216325743735424668577748185791932102252112342122583132656142687153768163993174030185340159821004310744250952599626807272184076183721243313944144151460111273338544895664675478948109291148101394111526121670131840141961152104157214735694610510286106572481825769270410287411468612478213486014497515678716697117699216721378314984190151998621447227482814932341472171329144575468658411312176322443345104561554716158181793257113122633367489851064611547125082132924741353246935104661525146265672787827989294410301511315912342113350214362115374216391217402218406319470820475921480722497723677924686925713126836227849211382179394141081512246133171460816769176610183811201512303213388214402315436518842959310634113151166619737219182897929931030351131511233511112237834104693577969167953810539112810212911216612236711402271334646085698683078418987910791020491120561221131323751427041533231634261736771138221834784593582461242715258161791733113121423404444556256132671982828191322954316054185611312142319542365267619687242882465927381027991141091241601346961454761555381656001759121859881966902068361131225238834894512051131282338664936512456125272634835419363110433211465912589713667314716915720916740911312919310504110051190612457129681832918631020241120811221311322521423321534471646041746451847011954422067722168872270592375022480422583672684572785382887291922188325449955102661062710948110591241101291111611121752177021010311404123051294613357143981601917111021931122831223681332891902116131286414225151061566717538196716952790386749425998611857126415627963886412135177762151729178322511547216543170542677527096328011082249329244945119561341719578228192332103304113336123393118323033370458057866998711891996211683150913126413737481758546129617662130431420414515153061565729418347093828103939114509124541134647176627973139741884519166200672757827929312110413711417212430911502191325343235370611257116281255912621014031526257736554842595261555716458172392694196224633364897591461050711618185292823102860113706177629203127241555519826207772167822889246310302911303612355813363314455415912657377849175954614577184181931920631021141130341230951331241432601534621635331736741140227033114356544665787778885499111094611106417072888310544112951204613587139081493915061261227233174368510746115471204812769138710231111240112249013338015121013133461257086745714251772108314494154551582628001212225836594790580168467881893691046101554112219122315132346142398113222283714479051303614997233082486925761028821129711231471331921433991544951540295231159416425175761782113121493245436951301622037228382405929361030361130551232251336981437181538291646691747061851261962116731287422175234862383728088367994248104304114491124612113123333403413715149261602720728237511312901317224218552791635677365484174177628463936412775135361459718738208092889103726114031124150115121703245430554126589767981066914721015621117781218291319191426691531111631881732841732168373048205104261143712228126291412137324833524472658026856710788121091325101756111894123108133204143266153367163517173814184101194251205661137253136914732577361334713418136091495101712111767121863132518142613152926163148173958184077124723033462477058866917710788138691494101871112086122662114422113683470157916998710758192191988102029112119122328132406142294324641021511116124871416816699173610242711251912281613341814385015394016407217412318490319557611302180391241691524276251772619829509305710315311357317032874399041041511316224673412141250735974151751607618547240682438930201030711132391512234350846085139962376724118311793149103651114281125219135518146015156763113123433493466057506892719308194792158102339132217032472425525258463271733038331493885104457114475124536134827144951141253237094799511146122771353815151472389354145735808688279688114791183102134112185122695132726143322147224633144345546266137660873891433154028303941411815127761638717518222211342273337447985893618737198582641166234734374752512236219972608826909283710369811512227334141043510886118472270131214583174541786518276294873043832809347010401711382149324642985369614001121255931009411355155361752718658257014728283970420085205562163723261362292334342093521356392274012840979414810421911446013229623110341213512866242573207832189333110342711350412358513421114121313221476051798618947202382054928021029221134041234411342351136223735304561513071412174931790418805291262957735731362107324342845316638279578115891224101426112027122138132374131213232434433548466411412174931839419045194562075724888280693512104432114522124642135568145658155800165832176598186629196835206974217099228265147238934794631572161017710498112391169101225111256121292131324141376151589114421845321744221552341623737245082806131226434334484573269381150219132534323537061125711628167891710101830113241123292133382144697155273196223633714432546865587623814539152810162611239612246613352817722873107841385514366197573013834859418610494311510312519313527514532515564516566317577518593711602250312824155951610620647211182271923671024551125481227231331981160230235434157851629617497216783333117275831488415895188262319726968274692836102966113102147220137334823597561640717728221292337103059150224031056415335168762220730678360293700104429170829293172042027520786386473896839159462210536311629312678913684014776215809116813617849317302923310134111651447618697198082999120826583136441475515266203672291136218639774128451352613837154981669917341020161120531221731333291433661534111638171322888322954322753338639537416384200942451054611140262339154100551157613467213983006931411031821132601232671338151130222033464449574268327116181193912381013581122781225251336911412116315747625852696379948160991949102185112222122267132358142524132259336454710511286116871323816649177610204211209412255513358714388315397316427017439618551611302222312334129051327615077166881784924861025271135431962641378448745164761869720958210692203102255112326123357192621071312714135751544616557302583215935361035931136641243351343501444401552741657361757441858601959132060441140260237184986514486227573202838621791217573200443049531006319073357839331712216323189542039526116264673012114026023861413705146061592716698167691877170128323880410375107861788728008324193732103768113995113822023267430354401131226537754126651342614327229382395113826033744478551236613267152011312163342546275116662204729458328993347103457114247124337134738147225873829490559566139971705122821633316654189851973621487219482533113822283408411145160361659717798284111382359384941824519656200072259113826263633474358746101671191815661138259031170418765236562376726351131216333484625513316155471605816839190813602401363748555966614577251515402677378741108512426178271823818759210011312744383448945960610017103281302916231016601127301812171324847805870693079968110891764113824573811413075135861868721091181219234434529573668747984812431219222632614540514921125217732184125051691619657206182322170210532754469563566927846810351205226133364630571267987978822209236810252511295312301713310114318215331915225193588473558606950712968173792208102748113892123988134066144212154288164589169727873148641542516326185217127723837492751059616567169181890919371020271122801233311402249236694146052189626547275082828929741030501145271247011272224392541054511446188372584834149350910459911477612485313499614536612622453351049725104161188721058221592236102303112433122689132766143007120224173515460551243613337145681571920621026391227247637224133551583616247265683097933711034671135441235961339161441171962507359741759517946200672147822079295710303411310912415812527263791499851059612197225082707929561032961597263231163412045121161301723018277492815103436113591123844133934144109155045165242121824993120641367514176150771891173728273152641622517126193217072844315454225254096651267517785257956111057261158711259611373631474141574451674811775131879641981052081662186362287262397881597263237574847519186269472807830341244294531010412175141961450728108309593552104362115160159726323702473757756961799681017911131011911115881216781329201431171543201645341746181846991957301447299631285421465224262332725978276392828102844113105151276131262413085133261390716528186515922878398541035511276145711702320341049715988611247123581586917611018191118541223331255236536804793588969207125914182112032008420315209062141722318228192295102501170928203959417415175662752730468383794144104155114252124356134427144517155632165722176428186460196531207562111121583690478058406906710068110491595101631111898136210731594200524164637519861591306175217134684519561566467882151284231404414795157061729717968192292094131226734114462555265937169981935926261312151333945935157561712724188253493275103785114321156213132734312543669187979810379107410180411194312202413218514223715230816254911402613370349495103961115720668211793149103865113952124168151214138474191152087622241472409344146945955113022223256429753896485752185409655101146111372113125743784419955210562182722398245492767102808112894122935133471156220634454535570268587899818151572272340749425103261549715908165811312333340245435802611317178381893919341025601112283170467859406991710708123791557102577156271831853419035301863129746008587695926107027117105127189137805147947158238168285178330188623198729209502219568229886196223833284376546665327174481884923721024221127921230461422253735934683511256126172106821469218710296011333111122831704221573168217103381123917261018581126991227891333921439321540221641661747061847961950012055412156312274762382512494672510242261038427104742810830291092030112013111242321160333116443411678351182836123683713281381340139139414015410411577542159314316021441652745166834616773471698748170284917959501830051183915218541531863154187075518847561916857197845820816592087160216536121792622190863219906422803652341166242706724360682441069244267024446175028033869488051019610817111981606916681017781118281221481324621572224364046715883697971036811029168410177411186412220319622383328437654666532717448188491921101940111977122400132700156127253159541715518176188371918820089210410272111359212364813383514460815495717502793313374137251429614957159582568927141962238332844145480659078788100991108101918112019122026132083142582153117163300173410183429194289204385215228225978235989246931257064190218032404306534763787139381440914711016861124361224471333391434561902210312154151851608618137191582032921401027511512117376141552516506180372364828189343110352111433512462313467414474015493016497117519519021613112141172512526160771673817639185910270211287012293613297714311915365916387817514818518319595020598921603022795017762920313324179551852619187194782037922611512842394041737517546195472342824889328510381311386412393013414014424715430316449017454118460719471720476721508722540617126713722478858656900799081080916191017151118051228371332741436511537871638601744001844501951862052762154182261542362622463772571812672772773422874082975293075643176543279543380053480713582613683023786231756215373267542765530126388374190847699484410535711544712569813580014589015607616639717652613052312335344435555663518123323422444819123043355411755127161361724018249392589103408114181124530151211737614155251650618037236482818934311035211143351246231347271448231549131651811752711859781960572062012162972267151222633115420553726394743587359828151284231149413155143561537716038174792027102768112927123098133175143377153472163516173612183826193921203967214939225794235884246657256738170727673105641167516106166171692826129262410294511316512358713380714405515438216448617572847398941033514706170571821818719291210338311347312352313360614382613562597367241615517166178271872819249251110262111266212301413310414316615335916349617359218372519382920425015402148732512426515365263800742458485617502846318664251552581626727348283517936411038481142931243831345761446081546491650991752691858121961062061962167852272542373902476341149221431424420445205162147726778274592937103737113827123969135143145393155400165821175828186077196167206278216456175028463186642447525136265072740832569342519021863427446855026652711928127691317101760112371186213232864457514246152571591817019174210209411218412224613243914261515265116267017278518292319343120456417912149332413424795291863101734918360193642103781114018124175134262144665154961193225333434433510146108071170812669207610308411318512325113336714354415432616473717480418494119503720517021542222616923693924785625794626813627911218021713237432753646421752786239117010132011209012295613304614370515377116388117392218399219450020474915121173282440251193612917134281408914391014591115091221661324721751215713216842266532436330073366834769386110420517912160231692419525316463272733048335593508103761113827123900134054144120154262165179176053186532196739206827217360227474238404248500258601268667279398289834299900309990311034532103963310462341060835107021791284239984108852120622697242682840929041031581135871236551337751441161541871643651746431572815399942121522986244472508825899314511522411356346081108221239404105651617620387257884324945141045851148651161225135664679570061676717718239392503103085113303123457133853144207115124383528415605211662191723298259592603102610113362123598133606143743153774164294174619184725195245205414215855225945236276165521461315474226752333624187247582532926561028781130091231241332051437351872177349249735100961030720068254694253104300114671113021413158430053926444753481494915961871296931122416835175863083733968366617972934310244148751668617357183781929147238934794631572161017710548111691148101850112350122491132892142982153488164288174354184395194545204946215486225564235630246047256119266269276347114321843334473551270620907218082363934031036161137991238561349181450381555391656251186297731391415625161861757718478206992262102269113751123786133969144026154092164132174923185021195062205362216012137285387641183512736152871623820419289710306411447112447813494414571715577316599311212887395241030511376200872106822599282010291011336412356517972110431839423045245162526732998340417972101331103412055127161811723488235592803103245113311123619133738143795153861163902174712185111176921444325154257252638628187290617502846310194159151632618107181782357933691034841139191239851340361441021542881655741750280338694918510196110971396814519173810182811192912198613205214223215253417502803386948805101961076711178125791347101412111423121496131553141619151630161771172034171267137224788587669667110881159917391027711144161244671345331446621554741352763166470557526842718748193191997102038113129123222171267137224788516486173871779818699290110306811368112377113401214426015439616453817458918515919526920630121633322709123714224720825735226767827793611727583838413785189862438725368258792780103116180212632804451549666387749895791047101319111400121441131663141734151874161893172543157212133314397553865817117716621443266432255096640711508124592811171261136624728587869197100981151921891022401129901230801335031435541543041644141744801847601148223832984364540564757572857997301077711877129521395914109915114616223717232718267717082154831703421665262963379734698348994280104587114928125019135154145947156443166598177061187191197395207897217987228777239059249145259211261000227103092810387291075811122831704117251742624007243582486932771038071138971239571340231441031548501655561755981861191961542062112163582270942374152474462587772688722798222898952910019141235234184526583568867952810989119216622653355449257836879710218107291138101318111620115021913253432353706112571172812389191110218911122838194917512156129671386816489184210268311287312344712621163182429053086319778688339936101106111196121291131381141592151667161740171999182010192171202432212522222654232750243456253572263899274219284389294878305198315308325450335688345845356259366323376937387005397016407153417393427510437676448057110422233446179128363926414925251917972842396242029531951797284239354117217972842312064225113221423205421252536743789081066922761024521170215833180042550526976274272904179728423141041540518671797284239524152452579167211239061791215573193841983520796277011402921311144120451330614207148915402699384349335143461554154021321314964170152562627987464385504973801083921186091296511397301410270151067816114091712210181291319129792013098211392015402651372741477520131540265137074894519221140292131167412995161961666717378185792618103789114522353377442857346951710418207392131102241112949122956133347148325733580410345112461814719448203492130102242112977123079133586151421717318074202252153630057309784195943661572147323744305737610177109881188912611013571114531216941324291425311530381122223833994933114024823547458857396950796181107911911012571112981213881314781415141527291628411737971211231331104414115150161652716938239992431102933113563123787133838145158155328165370175681185747195865205971216012226233236941247031257096267224151262394432753346392711718117891596101664113123333734477751555115622023253446456256809789081672916861019781122651229521331431432391533291633791734551840661941282041602142502244122345272446942548292648662759382860282968193077963178923292881782216593211042206523366244672607828179290010296511370612381113390114407815514011362338348646145878613357214582363151214138914133351390614617202315402943310334115451505623661422255738544989510406112471190812319132110141111144712266213277414373011372239332944805127161578723138245693293104076114166124221134317144358155064165096175598186228196289206370216877226972237490247571258529196261631119417495186062562735091145225639584143851954625587357683687945861421284239134144915126639845685664611607123581282913901020701512623944327510186112871194819179196410207211210712230511312333373447775155511312242341246025757118262197032111423905390164058742648532615402943310334115451511623721412603369347395779682672153154028823122342233522836232472338823849268610341911402312494013581314601815654216669917687518690619706815402882399841611518736233872494825961412447353841308513926153971700121823653957415785177661857719901854210123110241288114026023718411725134761822116022133503455555716691773289459204610254711272311122833494406549669497110381233912941013371119331220831572767312684131451338613967165882295166629523105941269513196133671379814689181211025211153280043218532861137222933684375546565367654138124563546417885182061851724871512842388749775189262139727151797284231256415035166517972842310914112251708179721269313104171851907619517204782088923351026651672464355441796518476188372102137221734084440558266837110681275914161014671114981225341322215330541550516406234672427825699265910271911346912351413355014374714182112032472432475405364755748008507013126423729484059316962717581104257539974183752007625977270782941935571782278931091417551151237435414582564166827752811639122210135014121113478481959446979713451412243325043085340639975408131291480101762142251536544722512966183572873829699311410314611365312462013474514486515583016699614125773138142265524876329773314841249452317726323673497351623157284838794104151880620007233182490142238638434884593161021720218209192181103296113477114021537323434246453003632807332784863141821120316594181451820625217329483612943141043591144541246421172758311104120051401617327186982040920811030571172758317194180952841628937385711727583796412625130362415725168280992921103577132217037404781591261036113828413133241409520136303173084837881134226533734440511466123671368814199212510215711243812256611302250312824137851474615257203582631126223273457456951945113022203422496151124613327193382984126223273457456951525113022203241473757876110771124813479138410159811171312176413227414287012622327345745985132213225393680478251591141217423180841898519386198572056821719226110229711299912373613378614382215386516459517473218564919575920663121675222681823692924716511412118431536421275223862824113023323374410445108561231120223133876496651143622051582168321944995540670971100115525983613473258486956710978114091376113623383111541137512276168072091178328053100741058521321418211203113441192516696180072002823321140228134114542515626161371670817659177610192311201912228113309014313115318716382517822151231602419295204062154722618302793064103631117021200313194146651511617561962117631295414425223363100733368342693524104215151825833865491651012611271712541396341803519736256372571837491138239131823419845284162918730658395612532110831204413355146061592726191131280939054942514881562127351746075694689671149812419260210268311298912344613425614459612272231433356143738546686518475319866031612526361346565955610517109681281113121913116341253522856236372533113827213778478551657617137188582051113121823115441186513576139371504820149261015912683315244209752214623067233783066159126573778491759486984710168102791229101830112131196218032904356539361194712258148391518101525111697121773131897142104152160162191172319182707113623383161941874523316314173481127124163155941704518006221272675828659424111042209333443845403653975958637967410243511248312276913285914292315298916304017355018410219417020426321509522545023626924637425646426669119921303218425053236330789581005910361011301111621212201312271417871520411627911729011831281797211033172342263523336275173031833519352010417111421312425013478914486415517916518717526018530519563313228233123341323513996214972291824229248810377411403217972110331166412425132261397717178174991985102380112438122711133422143490153546163666173952174327943134441410515256157671647817379255112212347311514120251911621847289582963930191031391139531743279432596426625277862829729008299093276173298331049412195187861935720018241092488151284238634997511646131471345818269232710241711244912246013327014336015344016369117382618386719435020444021501222575923620524643225656726660227737528839516727683138942339525626313673374841859432910503511513612523816728832034483580361584716548207292425102572112696122762132807143617173298331049412195187861968720648290793097103187113228124549134644145417156437170121292318954249352648626897278982879928861030261135631236291336461437701538361648561732774313954196552006620927217382224927641034721136131243191347771457971104021106311574164452249622577230882818930141782144323446775749689979771512842391849695174962174722648305593153103228114001124082134172144268155111165183175333185830195861206457173298331049412195187861935720018229792555111228381949175948618277284383244933401038221148381252391353751456261560581664051764781873881974542076242182832283242383612485112586012686142786222887282987943088413189313292523393243495043596541372478352141462516126178471835822589230510264811286612321213330214340415347016367317390418393619440220445321574322580923589924597125725726751515128423114841768533116387974036841269422210506511514612591913693915627653920415065158261867719108198892194176629173983410925123161443714948156091571101710111843115442277633981455545601366154762688675096817107125117206127408137483148808159121169391111228381949175948619897240883618940961045141154921260351361451461871569771677871778771880671994431131220136154711572568367188282300930661031561132131233531334431437241540851640961741341842241942962043392149352250851100227033324383514246184373053832349333010384111393112400313415314419415465616470317561911302386322034229352632636437397784727947651048401148911249571357691458121560881136273333393434835383264886752308526795343105865115897125938137043147139158237169134179244189320199357209433219955229987231058024105872510656261066327106772811240291124730113663111373321143733120003412007351272036127273712789381350239135094013571411463442146414314817441482445148654615355471551248155194916083501729351173405217579531766954179345517941561809157188825818952592007460201846120861622101363210506422112652240366225836722624682337469234647023986712440772244487324514742463875246547624877772506778256411922185333545615651678879068957910501014411125461226121327021436171536891638261739761736215273155841631517116212973244833109340010431511511212658013703414711515760516776717832118837219895220908721989822103562310446241051725105832611324271178628118232912455301340631135163214560331461134148663515415361725437183243818379391847540185714118861421899243190584419148451922446195064720792482105011402279338047925129561872719628275393390103480113672124699135359166232238614189952469627307311683212933531035251136151236341336841437611538091640231741431842331947412050092154872255182361332461702573872674222778452886752987173087873193523296033398593499693510225361025437103203810611391070140110224112040421210643127094412880451295246130044713324481347419025083125941325513766212673062831589326410334411337912347513451814467712342265375541364514016148371603825239258910273711289412332213338614413315419016512217521718538619571711052171329043315478656076508156591637101954112044122365133577143648179721104312914157451761618467286882919933371040391140581241281341501444711544901645561746851848571949332050052153452254471721398314884169851741630577310683196933871034361135261237171337881451591560371662231770951877971986012086202186902287242389412490372591072692202792862893212995783096993197343298243310080171267137224788586869037993810839162210266011291612348813353814364215378216430817479918487119502120506421531017121613700417385178561851722221712671372247885818689071430815569162310216311228112254313323314337415418716427717494318504619513620527821536822540423550024559025579626598827599528608529640630679731691732700733732834736335747436778137849838882511422208330946025653674371493818009187710220217228023852486459546100571220813109167010178011184612198713207714243715254716284017298118307119343120354121381422455423462024466125498226503327509928520929525930557931589311342273368541188512606128971379817009174110204111269112082300336847035840613807183682226923611024511125271232771333241433911536201708278938304896512036131171418821209251010264511381115721373212435157696815717351912274313144135551966620077275482805929131029791131341234411334731435401535851646431922163329945265122861309713508141691723101831111938121989132142142363152500162573172618182863196218532514558514746154072061822089225310243812142282329444415531612177211082240922711028781129631233641334151434811542931643361749321130222732934396572368547129781469915841016251117031218791319201424381524951629951738111838581939682042952143272253912355241802146393741035511856133871899832049329410432611438712555813634914643915661616682217689718700619774720915821923322941023950024957625103072610399271060128106322911218301123031115513211647331194734120233512773361292037129653813293116423213735479959026122971419821231312551313424164951829619197295183050933321034401138111112283819491752228630197350983671944681045381155871256961358461468771575181676081777401878661981802082542195802210153231024324113942511490261156627116922812104291313530138123113902321400233141723414209351436436144263714557381470939148794015811411592142167934317563441763545177014617791471823448183064918456501853417082174031892420425215163489735508476295553105643115820126590136662146728156818167235177307187457197535121823083460493259636123271312814929165710171911177012270013326814447815552416559817565518640519721520730021737222755223770211002210336245735610672071025812369127310138311246412267513271214282215307316312417358218367219415020415721457522464923465624507425558126558827600628672429673130714931821732822433864234885435886136927937985038985739102754010973411098042113984312490441249745125384613068471360248136094913873501397351141435214205531425654147145514838561484557159485816730591780460182236118440621855063188016419224651931466194386719504681977269197987020568712064072207067320796742123975214297622085192231531106412045127261579722878236592480102590112831122945133015143739154157165389175440186231197528207595218386228548238616248923259705261094327118452812241291307230131923113902321403733157843415859351592536159763716042381732839175861312541362649535107561180721128298593089103239113305124096134682144832155570166598177389188166198286208532218583229130239665249672259829261060227106831322833148418952796818718568196092110102151112642122757132819143158153204163401173444183591193663203715214035224185162321364314514191352023621047222082481934421741277638664140552443625197422984270943461044261144611249911350811452021559381659881763081866971974121171421804318694191051941627377305883109939051039421140981243641353651454021556031656401757961862431962802063042163412268981137292831235412865199262024721258281292945103060113206124063134247144268155239165459114424253553413825147761957720728229992437113022233964411145140561495720348307293128103199114486124745114422153921412485130961460718268191692115102182112270122316132406142572152687163648172157320342805287676377988856991710101311115012220813225914318715321916345317376811151212613227042320529236384073951845669466916232136431415417265182961879726908278093530103984114597124687135501145789155908165958176355132276139304146251582623047247382814170221348314384154951635618127184884159944631708284639424105451965624157249682602933111312512359941308513286141672125828561130288131691417325179062455728968297693603104074114149124170134517175217132124589512846135571465816879176810191516226253672481459046964710308125691748103049113136123188133229143274154111164244113822793320439151463615447159583345934351035151136051236631337691447241547891652071753241862751963592065062167151184297231015416075172862733731048314193482103578114558124708135563146337156570147238935414631510526108471180813279147810189011198012217913233914327115417316470817545718553419575620605911372928395941228514206148771575817369187310188011214012239313252714321715330716354317402618450319473615623223459449051002617687217182379925911028491201224232834430552066607899891791714110221913957417675256862693728741622962311044221852311624487294611212887310264138451461615187162882020923611622942319444205452083622297224082740948411049511152781253811112467396741037527386290073571113421025311454209652172628737294783024934251036471149841137246434754677572868847259283298936801039351776293031010410725115361243716178173391957101978112335113729283123541302513896150471886819649198810275811374012374713385814455015559113725243109641128512126135371478822291791213653147541540515816167971746822469235810319511329811402602371841172513326144772054823169254012612970310114118851979627087317383593942481152221632874101651337627347293983110931261036581147491255231356051822638374641037514006146272212829431572111031145417485180562458734711140254836584100451445620957234482451926021026951129671229991330771431081533771639341708293539864277252804628237353084271948431049091152061512763997411175160461671717228206592181102333112539122607132873143677153767164598174701161227023240342444524616299373469835849365114125113562413285156461571718378188891933101965112178122210132255143086153189171267137124934510446108872049820919240210254011267212321213336614379715391216398715402149831590424935277411727583861495151052611467127981743918521021391126961172758310494129951802618647188882541926861027761129181229691331901108211531564607583869197170081863919911027221140256636734164051733624547259682628929351422403310564114651196615117247211112590398241046510536106771300117275831001413025200862780734618417394251104259114368124476135286145504155762117275831488415785166062163723518246492766102843113065123380114822383298436454056436769187289178310186011219212230213250914362514724093441498451951113021713323443855286732776488549116510121611292612296713317414327714622572362141362513936184971925819849210010210711286712294913376217412147132010430485309563203732938375893810104350114827124937135538145867156039166046176859170828483923499851356614947154181870919881020591127511228141331511623213643146741557516996191172020821169238110272811302911727583861496251255619707209082296923471032771132841234901340171832412312034160951719627517281383521941781043041144421245741797212753155241620517781797299931252416235174462517726158266693445103516114758157252831329415171797214993173741807521646224072957830349309610384611399417972828396841078511446118171982820199261510283611327712352513359114362315376416380117392418402019421020496021510022564319612996318004185652043626937278882885132212235254622576869097103981186912321012981118241223431324201424861537731640321962499364547755911613297137081436918801797282831203414475215562402734718371893980179721499324264284053087631577397484090942211043991797299931252412595134061430714998286793172103303113464124124134207167214331459415025180162003720998252292660169527913130942110522981130217132544316552865957736892092082102308112394122473110914502862313164144911502823310334106551158613541512402353946945784692679428235292619102655114186147251336034152351613619427249482526926041027291138991184291331519415835162461702717098225717722943335413675142761931720278211792167102183112453151214138914937598461055718218201715722793320444557341707277239944111051161615727174982811114625523584411501131233333944107651127619151926212303126741466516176198872029822911812191394341705517566235211312182397141436514886165872324149228983111541167514636166571897151234235034565587711312202347446155666616047174581835921651023351586211863162742207526646275473146113127173141941477515676248919602111031181423215241462454726668273592904102994113415145626213111741227512786175471816821281131253735844786510181131233338724191051957620657211682626928821131225133004332513581131239336014675580311312182353841279515706167171850113123333100442283523306243872489829999365511312221323224235953579637837387384123113121743607492951031113126123619467051140612307151612212387311694118451807619091133215239344949517726304311312262331143625106861367715171224227531148412385229962574733968409311382347396041539516296176572334143724893758490811932497310784113451320114623173352484351452118127033100741058511366118172305115121653469460751043611047118581420914711015421116501227741131229134084111051230616631131220633224460550169927121812182304352546695753611597121181349924691221233735034128551300619107195182118122125253653113822303434466612022318358611312662369748295880616317172181777920991028401130401233391335951441911544511645361748361849261956372059062160801138216931179412315127261525718031522221327241562516436189672568826199269010272711295418221233239429055516640775181319137127773867410035157215121033137841604110221833218015822113117619802107031524416661892276354617702154031602419141604213041151277239674109851200613167136881718113121823233435355656704115621973313436451367615507179182132922831023331127131227831338341175271531607112122373333444856221540218923278415121413891493759846105571821820171572279332044455734143725923645490417012832388041037510786161011382264344741507515436177411312166346241163516931723333340414061138217032344299510696131511312863390441414519461491256737991176225632964328553067621741215313162241701174727583947411831708221483223942689174721267318074189517472867391842208522486328773343834381202220932494318552367451110215032914485557561467117022603971410295123011287213303138641457515476246913721104311604179815628732974368540565131322122353345995733687315242613312731615270731834114622213282432358336136519021503216425157176724715301131222732724137216921723342113821893285414811466251735884708515696167117012887310914132314729293961413311121220232924803137224133391116216732484473567967697996151214138914937598461055718218201715722793320444557341112221268313324175317012832390741559516236165572611161215134474548158826543806147219933144404560866597873890591015101217111449158826543806113822853335483451852113121783328437154496655151216731994309552165577158314729933154542151210331354109551197113822283298411535116461228717848187492254113123333384454051318156926413754412435136261458715788166891895120022963411450156626109715402189231968421621512141389149375984610557182182017157227933204445573411122211973161817012832390741559515746160672562161215134474548158826543806147219933144404560866597873890591015101217111449150925613841485751885121622241332603436931708214593221042476158826543806151421255313604140351999110522693387146026021612743391341686517426276211382215337641753517946186472334824249349215127573789415195164714721553102918132104531096411865193661982720298210092866103062157227933204445573411122216723209317012832390741559516886172072676161215134474548158826543806147219933144404560866597873890591015101217111449110772116731208412705142119025443686128929753109041945192021010310774149651842158826543806137253337744124517912100131091421235216062354113822303681477151170141249235244102651647621287214682197926671027571130431131284139974103351535616317213382189923751372549362742078528516290773927146226503805114262223032281423715312163167732148328594051104247157227933204445573411122212683131341734170128323907415595160461636725921612151344745481588265438061472199331444045608665978738905910151012171114491858218603195042182113622140332133422235248562575726538268593176103322113453113822283298411535116461209717658185592789113121923422451257341202231533674448565411992246342013221193209415031540283531727130724623712486351112621931512141389149375984610557182182017157227933204445573417222824389141312170128323907412895132162277161215134474548158826543806147219933144404560866597873890591015101217111449194218532224705579561786170233331014137211063124841615516526262972719837519399515142125532045421225225011382230368147715117014724983530410325165361710727308285093664125024113572466258046855713258141591701113123433484452751123181322239330124306854034640907416184934949901060101512141389149375984610557182182017157227933204445573416225893791410231872943339447111102262376848585193911432425352716221823391451917721573232424852996454760586679979142218532954116751372138625413582466056676863177029363102641164515381312193320046185835616397175115462195332004420355267112332268337641622190721536169227433134941519154025993640471858641412110231267413085138661962147215432444559559166277167319302977310484207914729343941413521472111931194412415185619622163417465611112585369547615798615997215582245931481957219573235111487215693168942182522726249911312317352745885810689171487146225723697498617412972310404158615582648380715626732784459135215832684358584561256148725973647474951300119623973116941948161821145322391712671376748575907691871039110223043345437656221322823392141074516356256872634833659411910420911428512432613530314551915631016728717729818752019776816925193931413135174261844119253737931791210073116441642517066175772596826419286315128423873410355187461942720178220492329102510167285839334100951813618647195482791928361037841772647310294111951203612817143117012832394841019510806159171843823749247010327411328112375213406214422415441416499911512171324142925520661077008982910781011281112551213211315231417551112127318342355301642675351137231834694676514886156571619816659191210198811217012218113229714232815340816346917350018419119423520465213221223109241632516686178771863819399208010336611362416412675376548005200362826729168412694202104292114822125234135275145681155838165934176012186159196460115126103107341410515486225472522826241282363106941305522766238973620837309380110397911425411402602362348205961610997118281247919881029491130591237891338791439611541881712290339244106151072610897123181422916211018711123451224351324851428051528561635621736031845441946771514273538034893597761125713818150691655141821120315284163851649618007233182456924671024841126351232771335081435391537161639071739811840321940632046991582214123150241644517816198372127821789269910327911372012428113439114450715455816461517475618488619629220699321766322775323785024807015902840310514109251132611637137481423914641015351116251227291858216323195141958527546276173272834249352616402185031936421475256562608726788309593102103541113631123694133749143919161247437214125652079621697221982539925811031511141711419257737104117051260613207138681459915341019351121221223411324611425941527191627501732251322116318149225173562378724688300794045104201114242125378135425146031166297313341655176637879798203011312139131986420275249762587734011708211433184942065521516269173127832929452310526511560415312542355946615722686379048132791597156214633374399550165677896811851322539364941122513521531254235594661512086129871549815909206010224511248712290513367011382246328944005449651278308110891169102410113152123853153125823709414115205262367725248264092723102765113501124277134523167240234884514517506179272075824921151216533564487510386111171232816949176010257011265112311313314514363615411716486112742360310264109151122612547132981337923211024171131531232041345511131214231594261533268137139181523915741020511122811131289139814106551117615487155581687917381022841123741225751326421427571529031630041131287231001411415123161685717378216892175102307112358122972133033143342153493163699174500184629194760205466215556226466236678246816257338267379277680287776298296308468318998329223339319349619359750369962371102238112921131240834444102052220630407308183557936471044381144691249441151256537054143252022625537262982640931141032851133751235131335901438201106214736184109451184612447131081367918381019281120741224351140217638214115051301619077238282420932261033461135231236541337101440081542921643821748991854301956322056932170632272632378002479102581012681662783682886001140248235234107351720618507190181985920511028331128781233191345151131214232884358513776149571627817819184810404411411012430013500411382409343145295659679071070811949126010129211178312192913291517721673307484251056612667135682388924251026191138274638144136151408619487221482295923361026961127911228321328901431711273253438514111251163611947183011231213413141241590518956194772287824849265815302993316154165852635626867277683526935721037481139541121291231010410945166015227533884410655192362348728458359311212100831273415895167961739718918192392414102560113054112121923204435553876438757681387914181014631115531223231324191425311532111200224732794926512876137772671130724623712486351112621931130221332784415552566077139881588916541024641125061230921912821313604239852492625827267282814928651034491134561235791346801446951547361648071748971849481958072063162163532264632365292465612566062667522769221912194312264172851837625047276282871929071031841132931233551336561436761537131638231738891839211946872047182149241912116311964189851978623947250182680934011044331144701245801346461448171548581662341912180327041641518746212172217825179276710327011333212335613400914404615415616422217473318479919491020549619121083869414095150861604719818207192213103251113288123398133464143594154007164325174376184886195141113021613311440154916103072068831119314310320911325612389213395414459213222583443453351370614027144781537918571019531119851220301321261422921137292831235419385200962613726808274293671113422653971410795114661236713688141992125102157112438122566113024073497415295276762877729488312693500137250236574694511646125472164822459257112082658313644147551526620367229111302270332144075691678171653823949341315722793101541925520356217772283830499308010366615722793459450059706131571362815781472137311554124551387624257245782547929701030721512757311394133951449615117182382544932851033301134251246011622111337046261512273311934130051375613927151781698153626463712478358936103271165171210236724115951196617667192782043927451027881130941472498352046715791620977214882718927501028401129461234111335361437621708288431051412065206162136721488223893270103805113856123998134076144541154572164794162262037104760580668967102681758922231023481124971418211203114141272524356285972935833699337710351811426112477113536711822349350445475152461649716808190517122883340449455956772786781160914931015441116341223841328261430021531641622802389241219514566154671636821759227110236111339312342513351514382615389216394817436018522516162683311594121251233618737211382215924251024911132321237831338331441531542091650211750641857001902104326043755118561281713328142291579102345112492196211032284730579568857116781202916681017001117411222511328471922733378448615106361773718458258692840102881112931123251133898143949154026164116174377157249438764104651466616387206782292923881032181134281235201335721436621547431136221932844624510416193371980822029331510342611402211091450286231316414491486261637064759587561287714288160491766151245735584648516806178971831822129363210373711387212459213470114520515537116542717549818558819586312702321346145715136262780728708390294106104162114366125164116622413331413635162962035721388225392388102429112507123481182212331644280533161417721998327993394103620113710123791133828144919154956165431175483185699195760205881215971226392162526563106241178512536133471406814579186310196611208112215913283915372117931585422855241562455725118254293483103623113674123935133942145697155738165789175820186456110721983239435551637616887211382559925661026331126841229461330561431941537001637901740171537215733177842550525576267772732827839281410345013052420315624165251784623957243082525926351026711130831232841333741434251534601636651344238534314461511616129771334817999237510242611250612257213268014278615355216358317378917721109314194190252369624387258583361934311036801640278038904958520736216372205822989239410268711367812438413447414525915597116606117614618819319893420902421980922991923106602410750251083526109532711069281205929121743012305311301132131013313241341364235136983613778371464838147501131233333944176451964633257336584725947601048161148271261441364331131233333764937510476120771284824009280311812271341141103518156259773338841449427810564311577412580913592514599615704216714411512202340844595780615237153481614916901018211118321219481325631426141536041636651745951847861949202049712155852256172356682461442563512664412774732875202981343081853186613287513390101202253334345445684683479658976910921011431112451219521319741425701534541635151735651836551938951883297931671423835251462716728298291993096104158177249131032411365126761407716198167091759101836111969177228733384442545565707616870698481010741110931211831312881419901531511632821733231839951945272045582147782251962355002458122558782667882770201250232638664131251353623147252582727927881028591133471233881334781442881546781499255931309414195190962440724918250492614102694112898122939133509143590153741163760173956184071194382204513214544225624236083246173256350267412153125913602410055167561726725368262693691103838113970113121923407445855576580710438150991619101670112334122935132949143080153961164532174702184846194893205108215159225560235690246217256268266579276645286735296955113128813953410415109361218725288263992770102880112952123062133103143289153355115121061311774124251509615527166381753918091020551123071224381325091430771531381636491739011840411945122046082154122254192361332462232565052666952772801151255936294719510396108171213813039151110181011190012243913249014250115261716267817273018279619299820323015721883369452057276153971616816709171610196311203912222113223214234815248116251817359818366919375920394111112145323542705147362296723868359693672104559114620124702134792145030155881166190176280186502196543206949217040227136237214247361257662113123333394413245145961650724128246393059161728793890410695116961311716878180792022102286112347123029133080143868113125453143942072522316232272473825849277010287211333712382913392514445915557911512210332647915125461392714338213992171102439113169123216133437144145154235164300174428113722533465460656986712776488549983101079111555121590131768142004152060162091172219183277113725433554457156736714712548134491434101470112690122881132921142932153029163139173239183423193463203762213902224012234053244089254205264272275258285348296162168927003774486451896631087324784210943061043981144291247681143721511324394252952610638417395184022942001052621205226134014442572467867973810049141015752665313754147151626616887187581920920101022571140260237184117251262613387137981486918731019511122541224251324501427091528841642701472517357541818525196348073521836379390910395611442612451613491711072510386741393515486188971936824069292410301411305012315413399014414515460816471517478618517614725173575482151522616387174481997920871023091136891238361338771443241544141653741754641856161957912071771732124367148185861614057147581708919611020281127191228111331081437101541421642741743641845911151221033494439561467527819812369180610184711226412238013245714277415281716323417335018344019357220371021402922553623568024573225578426614111302618310434113351257613237133481354914901019681120191225291327841131220136934743596461056715948166291758102589112719123192133209144421154440164530174596184647194713204744214773224950236012114023173392455957346212017912129831752418425197962024720318219317082115831313414515154361550716068174591835102088112140122211132301142438152668167253937884148851531618307211682272923881024751128781231741708288531952430305315563299733808357393669103871114002124172134203145665155795171210235214611510246113071196812259131510163611165312179413233611442195371747675897620367212683178932551034151134901237391338311438561539021650431750931854131957212058112158962260022367682467992570051662173326345785118962015725458276192831103361113451123572133604143775153852163960174758147211833404435577661194717768186691913102210112656122811133274143321153392163497173838183870193918204945147290439944131451905619607205682535925821027061127721235821337011438131544691171230733884507559867447854814209193110198611208212262213263314268915287616296617410516221823408446951010618017231182884113129223103041185513526160571657824489351610462911469012575713641114647215651316659117665418679611462228381941024511746166671741819559275910279511289112296913344416221823408411505159662017160027553850416165174161772723391122221236154712585869887120881259913451014351116841228296831009413305254762588726598273493580103701113767124284134395144981122823783419488951234612817149711728331144150518261937228831194011047911132212136313146214151415224311302782383349365100261172712738157891619101675111862121952131988143198153264163745174568184680195306113027823833493651002611727145981764918051018611120481221381321741433841534501639311740031845891946842047962155441962749385249425104361336719038199893843103933114848125044136020162218234084469510106180172311828841184227433244370569069517136481682919091019601120991221641330001431651532061632841740301512408347945695715683171923820789255110264111275512279613284714338115387716407717412418426619496720509821513322528423531524600325605426612027615128617129655011409215403196242028522646310173138836489382010391011400612413113419214431115437716443817447518587719605320614321717522722623729224732325734326761811312223310454115551295614297150681656917071017731118771219331320231421601522501626371727271827381930432031382132492239762340902441272542282643482751512855211883299331144412345170661837726288290892963103059113070123510133591144161154202164619174976185032195768206676217696113729283134241513516196212872194830049312410321511336112349113352814367515370716408718712878310964212852249623207235582445925401029511130411231011331671432141532851633751742461107289831395415115164561847719348200092081102419112539122860132950143032153352163419173470183560193626203787214557224610234702244733254861265249145026863152341682525026253372813829209301010404211407912422513444014510019021043260437551185612817137781391915091016201116501224411325881431001531321631731732511834571512792318724200252384626397268082795929251031371132781233681333821434341535301635411736311844921945941472517311264117751327613887184281874921271022171124391225501330761441921546131372211333147435809688571586820749213510221611225712247913251614304215313216378313725113621468757246152571556815929162410163511168512200513206114209315211216214717224618229819302717117122133264490159526110571197812489127910187511402671314624155251729620397210582896930971033331141471412111390241108516206167171900819719201210214619021613380452155876718775288189124910126611147712165819621093281430455296580764681736918561020881797289531048416095203962204727308293193050103791113869124075116323563414453355906624715748158691627101727111777121784131924142035152560162601172974183177193220203730214326179728953104841609524186250872728196223833284474556666347141682133922231022891123921229271330691438621539281640241740381843781944682046902149162249682350392452092553162653822755252855682956583059583161901236230231093411915142761789113729283123542055521536263372786829509363110367811372312386413395414462015471016503017512618593511742851314904160052277624647252082707928181028961136421140248235474588573961351714868159791712101744112504122616134042144219154270165297120023083544471057266987126529663109741278513626142871946827369354610363611368712419713479319226243714477458406139972591826939274410353511406712415713421714428315431416447017456018486819635820648221654822688623698024751425754926759527832415721186313704209252173622637245582502926121029391129711240351341681772294340444305496612577179781896919471026971128071228731331531130240734974152952767628777288483645941851042511146211250081358451458961559621660721761221864421967561782287231193414575154761868719208250814725383720481051842618797196982111921581022481123381223981324641425541526001626371729871797211043151841584517366180371890819809263810271111278612355913364011212192320443555387643875768111891125101444111584121650131740142022152073162163172913183355193531203693113722293237042460525206258673145832009332210341211346712356313410314415915434616465617558818646219662820756021843322854723882924887625896626905627945711712206325143885449669877398951910071010181111431212521702105327544695629671972034821289258810306111327012336013345614351815360816444517456518478515227533884410655117662063724888252992751102759112849122862132952143184112121008312734191452047629107300083125934661035871136581236701338211438531539041640421745041852791953452053962158662259562362421131233337344844510216129617724913832410915163661774718268192791963102673113019123070133112143190154221113121823278432454626570771188039899101097111144121176131823142294152384163678177212835424883592961009710568196392010102981113125123156134236144273154738164790174909184971195003205665216136226226237520152223533454381510916143771648817389188010192311200112230711402811390749235990611667143214721513798411815139261403715498163391699101916112003122835132872143849153939164971175215181322639329584314653236634867409018226383748412105130061390716068167991754102155112342122561132681142814152898163750136327753878410185107761193716898245992549103581113628123706133929113121483322424245752547628897300483106932471033371150431251871353281454181562091662161772481873891974792088312188782289492390152410070251017626102542710490281152615702136133069431595321963285733438393394512106613117026127083137145147594158036168615178651188729198935151211732674308544865387603869391013101030111155121264145621059321174228852335625517258382811173027963133542373525146256572655834059345110370714312472349745585648611027124981406914571016141120791221991326291429761539321639981742211842931944432044842151501372482351849725100461447714628158191613102404113381123516133665143757154500164588174680184774194875204968215070225089235203245238255464177629153976414305230162808732628342493431103527113579123669133775143782153829163854174319184351194739147251731353414435158061670720938213093144103276113978124612134780132243345549185100861308720998251392684102731112756123221133253144311114422113299441458266916711238125391345101788111912121978132076142128153088163190177223232844423555361007714578161291663101753112503122786133722143898154060113022403308438055086828797881019911091016481126861234831335811436561539691640371741041841491950971655214613153441568517186180772611831639457010462111465212528816492145531512416105171262106156214123221642306525376263373441837209387210468511472612523613583211129838894987510386204972191822939250615022403105641533520736216572894179728953104841609518026189271981832629387510396511477912506713576214585815601816622217645417912109031206414535197518721773189422056986101171077814009147810149511170612188719626323722414525199163029738958432694703104929114995125136135308166214734854605592661016710988141891453101504111570121622131942142092196263237224809589961041710928119291199102231112321122397132849143075153141163271173354183419193451204217214248224514147275738124908594069817108981146913821022191122641223701324061424841526901782210113110141262513436140972229822649235910251011260912265013288314358515363016421613472390389741860520866229217722943346450057496841719468208892178102267112423122585132758142824153190196210673119741888519986206472787827949351610365711372812374713384814393815403616459217501317972817395841152512956135271418815589180717111432217091902155311874123851328614047248183639190296231132411975146961559716918178791863102635112933123156134224083758484851169611867131181600180214631774897596361048711548187592017102048112254120621313314034145851554616057172582562926071037741772794388441120511616189171957824969353410358111368912372113386214390215405216410917484018493019507220521521546222584917723643454414865273362843729148309293883103973114150124228134533144668154779165494176526186854197575207656217978228443238778249274259395269466279532281058729106933010771311100732120431540261137894158051659617677181882547929611030271131111231191336671662833844413845148362023720698279816226083775487751247176215632314321589761358714428202092381162260837754154152387112229133101141164517256185071940829519322714828393114641881523466249373330834779356710437111547512012267333548915965615211412124321447535179162178722528381318132862395241433522526273372823828729291610394811402412447613525214651119625133564413545144462047725878328993780104282115688196251335644129451384614747172581744923111023581124671225891326441429031529541630441737941842361944122051781962513312434178252820639387453984693947441048341155841260261362871962513370448075110062576726668358193632103722114472124914135090145326196251337934112651813619397204282132922741023251124431224501334821435581540101640611741511849011953432055192157851962513356441110512526229072538830789378010391511400012409013512214582415631516757414121313221476051798618487188382490117275837754153652076621757219282254923691024101130111231531332431437821548201648371749621850711100221092316634175352004620397212982219922601027501129121230021335331436231536641640821746531847481948252060072171772274282381982484482588912690672793331322505312964227352341635537369383863938921039821148131248791349261450011550911654921221225533794528512176128371724820139215510227111230212274813350814357415432416441917460018470619542720556921560022580611622208372648905104761084715678165792308190288131268413775146161842718928190991952102041112385170828083950419505203162278724408248693026103728114575124670134923145625156015166150176399186985134723903897418945212062716141218033354486557761077711208119891205101791170821560317024195552250622587231582852929371029801135241235941342961443411545661772294334544115492683079508127191591101642111732122482132924143100153262148121182315254163851855619147204782797936071044271147071247211347871448601549051651501472898398841191514396152971607817499186010207811220212226813231514316615325616328917395918397319403920418621423122530816628073159742137525046304473564841049420210423711432712491813500814519815528816607817616818648819661420713121724222782811105212813137141604518516189472376824019254310343811431012505113519814537315571211302407349741529527676287772948831269391710400711413912421013497614559612212255337945605650678278338125491310101341111585121620131710141776152542162772190239035854890598661126712568160291717160285139494110251663617537266882724927551027751131671962513356448645111462057729738306393716104365114526124774136619146709157624167820178796114024823572472451015610567124781392918881026101127001234911337421438191539281640891744291846561662807311074135752547626197278582875930171031271134481235721337331444231545641653771754671861331969152070092170162271062374272475172575992683012783462893741572135322543575408650576608750988710110911231212723197442622526886279872836838689394410439611444712519713529514578215579916590917595918627919659319624383657494951360623277241782498928641151218237524123951276618467200782123928251028681131741472498351046615781620877213882708927401028301129361234011335261437521662807315974168752637631777328083370934461043961145071250471351501452401553161654271763781867011974412074822178032278202380012483461622608377549855135561396719358314593281104051114129124301113729283134241513516526178672758828489327110333711337812343413403714482315487916548217564818615819618920678518462877310874187852855643107434784392953901140211933136441454521606254272632826829325210334811380612382413405014484115514816519917569018572219585917702861392741037511756196671997822031373242435044570567867157193582726927571029791711450286231316414251192278355617912100731164416425170661757725968264192863167217731964286553366067651889619622383328412485128961842727128283292934103000114212124352136074146093156160166235177008187113170821548316634212652172628957296683036932221032931133831241491344561450431558181658991512842394041093516546172972183823841695279138714937510466106371188812971730212693248142595532576340473494845269480310485411530812537013587814597415606416611417612618627119636120650321655422713823723424732425737426739027766017062143631502418495259163321741128420294267104299115357125447136308146410114026023823492759786149971564816609219010236211289212311713321314351315364416371017477018483217072838310594114751164621497216082222922531031731132411232921338431448431558631163235634144897594361005711158117691388101478111649121700132221142261152368162409172780157291320142525117261184712258132591375101382111522121633132158142311152401162497172894183373193475203565213619223660234200244241254614264817274860285370295966111273313041815601612727128781377922111027611128511237461337531438431543821643891744791855111959222059302159962260472361132462422570541112733214437156186104771109812299157010186911197912202013213414218515293516302517314218342013727973142141592516296236972459834919374010379111385712388813390814395815502916591512012291366143268533586387473925841969472510525111554017126783729479551655617457178681876924151024621125521235841346531448231549881660991761721862681964102065002165482266382367042479162580562680932781122881492985723088721708284839234140351444615327159881736917681022901123311223951325101425751526181626891730901832251932662040392144101962236325542965362637975378721913021016161122631223101323761425541528321962396350746025907699971357815949163710178411183512190113205114315415348516052776313164242052461632347517419626323722414525199163029732558332193451103534113599123631134397144428154634165210631964735517736182471890819019299210308514221343224412565134661854720268227392332102422112503122640132851142892153426163917173983184034194100204194214272141283138684150051532617427176681817918831020631123651712671372247885837693871028813159137010165711174712184813271414314515352216357217379518383619387020402021407722414323418624478225559417502803386948805101961076711178125791347101412111485121542131608141619151760162023171267137224883514966158671827823899245510276511285512327213332314341315416316460517468518497819550417082206332112431235320463270740908412594220104371114470124511134744144959155593165640175665186130196162206212217413227719111228317046785940618547191181942919721020131121331221781322151423011523121623231724431824891928102028612129412230072331152432262549362649912750872851242964443065123179491512117324643865553665672197823539239410248411276512281213342614361615435816484017584518589219650620669621670922771023855624860725867326882327963517114972951398241194512896137971581818131412243393049625973611127120281424928041029511129921234391335291444891545791647311749061853811662807315374207653114631617326983359938241038761144161248931350031456041556451657351758251858901959802060262160632265232366352484111216248835784720576161793723338261692662102752112808122879133229143340153455163536174066175028913193442286524116270017412860391041230519656197872708829019299110306015402643378848785100461094711458125015402612313484144351533617527186181951921521024831126201227911328321438081144284731758418485288062933730538378393804103836113881124024134271144628113026873777412545199562051721138265392694102956113685142265231353417235186062181723058255292805103149113376123781133971144101154153164405142240338954945511356115171257813659153210163211178412188213197214206115220916238318932936314964163751753624597251182742935611043341149991250421355521461481922198366341454521566308373091838989396610404911410312435013440114443215518018942100031120420655220562452731398326593352103755114051111126513841488251573616487173882043921741021951122381223161325221171224233794489556068027833813651422833393141084516456180072254823429243010247311255112275714828393108641259515416163271845818969271610281211290412300013314614322115403416480717508918583019634020634721752519912108131885419815204162845730998327493613196210673119742117525316273873278843499447510452711461712499113567711402602371841172512836175371843820989218810233411249912251813261014292211602295335144265720679171090811749163910186115122733284449456016657784489759105310114811232417729631714231533864287605869591082101488111578121794131845141935152685163127173239183475177229433464562564466857171781958928911028981131761236271337221439291541711642831746411208265831364418835193462444726991130218637054736594661737720448219192228102273113489111512131632873429695461511122831214622568867257120481596919641020151120811221521323031423821479252035544615570569277978810449111510115811175412256714622572363847545822688914121443210447355636755784589399986101089111167121249132811142956153463163510173613183769193893204683214879225034235106245252255391265408275437285570112622153226439655206586771787879133410139311219112228113237614252915263516280517286718299819404920405621416222420323511724531525539226545827674528700419321403369445956956724712168126591546102463112510123384133474143897153963164053174280184626194658204709215296225337235455245852255923266673276763287217297533170722059321494230252998631147321083274935391036611138171238701341601455181556531663051782461131241735374776585761278720528213411122838194917518456201072076822469294710342111348412390613406114428015435016442017503218510919517520521821581422611717012781387141117512136138471534822419364910397411541212558113587414728615735416839211062549377248595935612541707285331211420085209862281733218336293493103559113866123898135305170721238313434147851489615257223782268924491025391129001241271345171446521547451649471749981854671957482057952158102260932361442464242564562669381422107631231413215163862178722858285193294103341114280124288134320144601114022183305437154616593762487269965101042111121121187131334113022103480499251043619637205382530925371030981138061238371348031448351550061130222039214166251932620227208882139923451024071124841224911326971427591530121630491731221831971932872033472134132234602334972438481104225433204627577761015717488182391915101952112419122513132545142716131424843126641280519976265373869839309454010471611547712679713691214700215747916826117896818968519994120100892110106221042023105302411371251143826115082711621281172129117873011974311205132128013312911341297735132581136218632564980510376144871498815259156110165711172012181013211514227215239216251617255818263619278620282721336522339723356811342205329543855681674778198942910621011331113521214181315111423431532691633351740661772288351145615699614057144681577916431019501121501222161325231425701526271626591727621833091902317355147525793688079468106191276101366112276122341132482142572154132164179174222184669160212634124653514416180371854821659217210259011274512279613286214293315422016447912102276310674137453331634017349984310944261044921147191252811353581454241555411656361942885320424213252168626227271282958938441039341141171244201348111457971565201669111773218193208542214532226329273723838009386610397611402612434613466111122831214251531963707890815449159910169511217412281513339614374115401116409515725773123141297516046184672683828149288010295511357412373413393914496011121323225431557266886712828138992350102386113190124200134277145027155137165203175484196265638164881511886173471864823269253610323611376812380413411214438311121323225476557986888710408109192052102163114083124252134461145202155292165429176469186655196792207189135624463934497151626622317231682394925911027481132151232791334151434811537881638801741041841701949172050972153912254272358702461602567851977210183146841558520466213672548826149272410277511284112291213304214385515123123920411535172762375733648365694289104679115410126478137887148618159690169928171050718115931911927201335421143722214438231516924165282516603261666927167442818069291828030193011472118328443215462611647207482140924471026891127401228261329011437471538371641231742191843891944552047622149462257762366382467411707212433201342174522406235572922830379315810328811332412383113389714499315508316529317533418540019546120677721691922699123710024715125845726860827951828953929963530985131994432100043310035341012135102313610458371066938107593910777401091841116204212527431267244128884512965461320647132724813499141211232224315540566167747818279189310192811204312210913219914299015362716371717384918392619416720423321453822488917912188932581426475362463661746278464194673104739114855124923135004141211232044208522163117605871191007101073112120122273132350142416152468162788172939111228381949175184561911728328356318723143452111275238924106251574624777256783969940101042971143741246031348621863291931120412515133261407716128188311122831214173553568467139582362192213331994957512286152915082735378848635953610197193082163137251639084127651356621037256582675927411028571129251229921112283819491751619621377270583245938851039751141071241581347191448401549301650951751851852641962002068512171862274562375401112283121417352936343738188539166410192911197612246613259614267715276916283517296518342419355420401321454422500323565424611325716526763727789628802629827930842031847132888433908034920235925336945937955238960339101574010883411093342110234311083441131045114144611605471164648127774912932501302251130855213132531362254137695513860561394657140765814287591436460144306115717621597616132703314144155951987620487213882849929451047581148881253951355061455681556981664481765131865641972642074502174872275622386382486812595472696522797242898742999153010005311020332102803310346341049735105861312793129428153716447748485359971101028111118121136131178141274151447161479171520182010192140202217212283222393232443242763253076111228381949175948619897240782500925321025831133491234391334801436001548101660211760781861841968862074102181322289142394732410511251054826112192711771281182229126123012683311340932135023314080341423035143023614333371483138149213915060401576841163604216872431710544171954517412461742647182164818431491865950188585118905521897653190665419117552023056205265720592582062959206806021165612118862212786321359642136765214186622208672227968224036922469702349015124643785479251883620147208082151922031025231126741312933258434854176454757386109132310136011142412213713217414223815330116333817351418355119359220408221423922480623487224492325498926506027517028522029554030586015121173629481559256101871029810469183710193511206212217713232014286115128423161441680519876218272248823389243410327711335812343313420714431317972156931796423705358263623741138429794783105242115790125893111228312142515319679879258115291276101441111531121634132384142449152500162910173021183797193874203940215227225486190216036254983517806187072053830939350910359911373912509913514614568615571716601317610918614119631212562358310454235352896638371115218132714106251699617897192182007924141025591126251230721121226333834550568067727918810429110810115511139912152913169614217215248515121173267465957406815711561695279137994830590369507987813381562588365347435102561227712388172991860101926112063122391114423973449458051096613867235482488125326993170941799526036280572956831891112283819491759486143172242829509306610335411342012350113363914371615384016390617393111122838194917514256149171640817779185611382228343041726518166263472730828199288510319211337612346413355814457915221173313014141151950629887306183204932551033991139361240321341221443151543711644421754191854641812287831240419495260663604740288409494204104431115005125082135148146435156694183214838894924596561055715948164191731102763112804122887132977143814153831163940174783115021913234432451356614037221682312923591024561125461226881327351430181531141631311734201847371137292831235412665212862295724258246792685103636113777124820134851144940155065165736176641186731197270207307217397228429238466249757259847261059727106342810857291088930109793111402321150416028513949411025166361730718058313093443103713179729343102441487516686173571810825839267310288311296412262101731431416025234362431724928258292804102815112954122989133030143330153455163548113729283123541270514146152471757818899259110317811322812341513352614364615437616439716912801386741590516316163871696817289251910255011271212355113364114444515534316546011512368340944505512658276298138491474101616112654122705133056143846153893164925174932185151195306205467215557225699235750245840256590266636276716286792296894114026023623471451625616367167281691918061020621121501221851322421512192316564196652056623517250582635926961027391133351236371227247631492419975222462729728778291293042103382113478123562133652143802153864163893174646184853194949205966216101226221236513247368257458268231278602120622413282460356936954719418208192144102460113132123280133311143332153853164029174119184206194763115121112312274170451745618247193482385924171024291134611239121344681446191554191662811763651864161964522065302167362277792378202483592584492692532793891134220532984388560366197112381243913531017301117871218771321841424461529801630151730561830821932902045761115821580317354183552176623147282483337944541045051151541256911360171461071563711665411750286639094121651257613287136081697116022673335467651117613917148781797929081032691133651236661339431440391541201641791743301218247135484610510036198672222825019302510327411332412351113356214365215440216484417492418521719574311402334348945925154762111721438253492624102851147211831534308539865487580880098901099611183512196513197614207215216216248217271018282019287020319021418811302212310034156051650617107177681807919631026341135391236291341681442051542951653271753741854491955852056752161952262422362772464122565022676171372637311244125351285614057215682191926091033111134681235881337711439091546511647821750441851821953212053382154792257421130222035974687512266226472394824609251810252511259712273713275614276315285316371417381611302161370848195111461151712928140391999113022533366461951159616577177081911919281024481126291130239731188417675177462305723568238892399102465112590122699147240934414547571861231721988230493025103167113198123404120826583136441475515266203672291113022203345440154326214972274824109244710350711372928312354131551461621697255182588933311033931134221234641340741447751558331661211762451864921967752076922177332286052387722489182597092611127271194728126372912704301319531132963213492113129223161242432538506395974168842889433810441411511512518913522114573115607411372928323464316653856638887414884249945421052431159911260421363921464601566191666541767151869891971202071912173992282032383632494562595462697682710559281086629109013010977311100932110503311128341133414723893479479458846184471876820079273910279111283412356513357214392911442252397341052511016114871256821301130218133934474581269327125381573916791024001125421225731327791472185322243245767615297170481831918631019531120441221901323201424671525421625631735441835871937342037852138752255872357341797299331083415465172761794718848268893792113021813393447458126932712538134391425101745111780121827132498142588152908162999173724183741194551204950162262537494128951435616017165481726918041019461138227937304827591761022710548113291274101358112124122171132363116721983298412305213262333723708337193563104383115360126173136946147228157669168179178187189365170821548317034216652629627677280883514935461037791140031240541342181443291544001644861745561847001947412054472154792255802363102464472572382675452777132877842978433078943186003286323389003490021472554364441066514026144971791818779202910211911307917282151931609417865183362872734838352494031104840115140125330135401145681113022223125341279513306188371948825489284910338911449612453713470014479015484816489917491018494219590220599221605422607823685124716911302171372248125101661107711978124891462101494111604121670131687141797151847162167172486113021813393412835142461565726141130214432834330535664297476857011302181314414161352444625547275482811936311037541137881238291340411440971542771645891422652313534151751628621147342883518936291039411144223632434310538561173712638137491460111024173424451456466159872643827339284410293015421613229427051041611027128281711918011019331120291221071321971425171527691832148343849775201562119722568254792594102661113261124298134577144608154698165459175500185821195872205938216048226098236418246732141253936054776586661119712308139091426101473111603121714132044142079152169162250172267182392192501111228317041098516586172471894819299201910275011396012402613440314449315463516567317570418574019577220578321592422648615728153999421215241162501726538270092766103439113717111228317042215301636774758586922961023511124471224841338041438721553091512452354246225241462495725878267792699102822112912123014133385179121098311734194652264630617315983312938731039481152731254831357151171223832734349549467807899810309109610193611202612234713238214247215279316290417401118422119437620504521509622516223531224535525563117228133110441354525446261672912829539298910343911359912360613463814471415516616593617652319021613385449856436756788089269110010122111127312145013161014197515277216309817361018368519445820477621504222510923512024533817228623952415555209562185723298286993032103051113098123576133666144227154264165534175566185713195760206080216170226520236557246807256897267212277244287334297757307808318558328668338734349014147253338254153152303629847405584563952751053531153611254571355071460141560931663131780381880911986452092612194222295172310364241220325122932613208271340428143801492150324045275582686979598106091926102357112734122784133007143071153221164011174077184339194374204495215292225822235912245977256018266174276264286623151257636074794593969817115881199916731017631118251220121323781429601529971630891736591844711112283170466151083611247119081262912731023641124571512362311394155652288623091472797390749735106913726443863410765188761944724188309393134103218113249123337133432143752153794163865174566184878194970206320217111228077238324249369259524269681279777281021429103863010833311105832111053311171341154214725333685410241372143931476417631372998310354148014725333594463151110611617122781407914971018181118651223161325281426181527081630471512502353441494152241435554106852035620927218282228922601028911129871239471572815399941721525126260272779832389357310406911431712477913511015402224133032433395352963600738801712671372247885876696671108811599209410210111324212439313448714458315465016466117547318572719687720697121819222826219622383288448751637617307250082592935121035781136681237501339321439831540491641431754291512842313384176151827619827213982383924641028671131281233001335691441781542581648661181243635184608515236157972865833911747282338844974514286143971578818139188410194611197512202613209214217615301816332015402129831752425435278462874730028321794188104413114554125188135329145492156736167489177555188305198316209257219520145425783128441388514846157471842819329263910271811286212295813337611442227329241033517416186271958820099226210357811410417412831310364125351343622587228982450925461026881127251228861329821440201797211043117941430515286155972479826349317710321411398412414913423914501815578816585817590818621415121016311124136552220624107254083750944911045621147521248291352491452901566201667151768051881251982052091962110089221021023113012411391251174115121173258412705180962847729038305394156104487111275239154163651726627587292883228934231037281137651237961341881445331546571649041749361854771955142055452159372262822363142471761130278231373421645269462784728448291093177103919114656124746135778145819155894166414176504187043197084207591218015228140238250248712258807268839278890288974291003230109493111822321185433132611512117324747865182461875723198241592854102905113072123162133175143265153346163402173473183562194849121422823294444155316590715508171691736101826111849121961132112142171153131163172173229183261193598168527753180742073521846222172349826409275110278311282612294113415714418915469916482717498718539419593420600021644722653323694024748025754626800117723643454414865273362843729148309293883103973114150124234134539144674154785164832174903184969195094205184215504225594236133246170256260267292277348287419297570307885142213593142541567516106169971740823609247010358111367112368313378914465015469116472517487518565719567120575021588122594723601824610225640517013882497171219136121110241031060149726223911113802152731568425195257462699738661134224234094519512856141071441816031522206329645635162661721717628264592770103014116022503312438254476543712988136392850102975113006123364183223831635416765174663141731728333419221442315324200552956638727420185246958331071601173701276401522160323847255120361244713958214892204102524112689122779132861142963110092108431655417575210362804728248324117012104331129417405259462809738428406094112104213114599113821793670470251204618257187281960922891023791126991227501332411432731544511138239135414593569461110147220832404130451437113821903860492251012610827194482377926331027241134971235781138241835884649520096204172532826789311412021103311445156846834796589769112210160211202314802570360147625967610187152314728731184195593661285713378206611702217923185741898519496221372542835449357510502511515512605113637214640915732516127633883417445184616125523816411231140277538644995510066144671602818081432132331363415755174461834722251472186329644475537661877088765985510997111044121115131302151252235544667569161473715188221911122843394450255436100971099813959142710150511151212206017122883348445556326722711098120591291101322111661157210731784301539661500122297311294161551701625627265882669928441029611160225637104800514906162071960820569214610231319821883933498051525615957170782293112128623159241641516976177872630836629375810399411408112411213431812229731984938510336132072102821479321314372105031880419165266663380735058368613772737386541283513586173871923131246231534415705162162245726168265392754102917113204123260133350143480153616122297314942785163361723718848231917872862395241527515686185615724083180341914528146288972926829719388713222853376489459356100317082848392341431514726153471619816669243610262611333014729033993410095109961511717588179091868101994113164170828483923411615124261609716758180692597102904113724123822133992144082154118164439174505184630194681205172215204225294236155246257120826583136441475515266203672291141212573128941402514266317273223840191111272631237412745131561396717351736282631153419355198062070726108265192898103104113821493246433659596104971444821509219110227111260012280013321715125223554466756916147371518816419173610284011672198315684175852079621167258282614926551031651137611512153324243295419617497191114521143204411655127561538720641752171328243635404654411312268335845605818146225493566493617121513252426353256370742184529935101336111392121482131562141664157220039064120651856114029713112141157518886203972522831781710280831249417595229511332220326347735152918721177312874142551972620427275783036930791031571133051422403359347035879615297186082001923591422403312294133951895620167256483415934521037911962461364647365149761609718751472243384448915196361998720498206092092103012113369123471199021080311514117051294614617157181963177229433464112751202612837182381899920621021871122231223701823289831074413475144961566181217734184967510796166511714218043186441930519716214672552131264631031410825115761214723181111220633874439562966707996810439125917722873480453251318614087155282334923451030851131871100821089316604178652521626527274282780938221038431141331130217439154127351310615557157281624923541025041741284439344102451558631907344284224947151048101153761107284831578421175315563462735728362394363104978115020125037135799145980192233831040412465156761618717648179991869102035120129423963414595150961829718818261016092780172329341953218741512147319612022741317794182651934621427281415221203262435854326512199521085311354150551750131226733084410555261504715948164491700121923003107341172132212238114153652094624027300511066211123141742148521896227973060831129393810402811409712413713225073143917082163531666426521708291639324231811442195390149335120161303170321194312714187552893629467365016821921130229037874164811722187340244265120861253724691144215532524958510146110917062762399341734522446225173429151621307322844235352400624787262019021503216435753986698779012372333353514121313162495913227731644850113921056311664203852605113822493759416675178761928113821703240472359191472118319943695459660976418115191298102368118823493485473857906168711208212603133142398117629423103241836528521522822310524142819621743876410165109161122711588119091256102004120822703927414145201562164132246318743875808111129583176241874147251335454586510966169213221093175410261672142344946351112216335191902544374511102570312031100225533384428559818232155832181131212731163412005124561371715741175296731287414171126293831104121321130312404211252679113122723407446855396579793911462218333846631703211943127141875528936294673136113121663657486211902476356646435735113125973648410725176617322383450495051040621791122223037421322929310074105451162620361512757379849225197316002130631566417941751215613164941690521986238215222123747418381572565317684185851979620711115219134674878117623133409462657226820154025913666478251121612117130915402591394941020511121962214327341164112522353982413231140297031147418685199611402482361741667112312134131412415905267113221093175410261140224733114581572311252172326245155156611602147531520417141677279238824177411312241330543955627152282238924114115621463274450115402189232784157214739324122117012715392241056511961701283238804103751779623111112215332134279594911212113131335415671123022385324754260512112272348215232648395411281213223180342014520466255314121313162477711281214363243942582122022663419113126643705416191722862390941505113821983233434755696659775112932300333546145876113721983906494751159612981202220932494339555916382171131799115121183312984146951600616117167381734919451020351121971222581329891442201549621655721757031857141961172062982163392269852375122475632578742679402780302884141151228337244849112721783189444811042698394649985176861838720871512757379848725100511562868318881677279238824177411312241350017702840310891562146327445011564273637994889511091280239535114681577762133722918326893493103595114022813391450757751166236434544707517581442260036454176915142968315611122245331134167728333923418151131224133574625152282238924114119721873315454215721593279470017012832310134104552001153126343199642115529371662328353646105738181329893212313221093175410261677279238824177411312241327244031522822389241141156214632744501157210332234644170128203867410411322119320941503154028353172711172843399841198110922213877157218333034724170128043845410065144111862337342741370165621101311184123811472203327443645565156226523718475958156145318882120231219414291510262531133412235140213532394345045615568665511782864390549731106621319318034188452023141282239594151251563619291322128321843645596140210632084101711902674378449271412131324147651112214881412131328143831488297331024415345178911162183325143405453659371133812229131810245211212187329845341322109317541026119122383770141253236474124013221223133425453461472138317042055386657215821963454158219633931572135336713628732624118351273614011101217832444109513872394362048261140270231243414015182219621713644157216532404136015162681310994116713442570392819072153617822869313854153651637627181442260731025410931299252538831121234335454658576961005113722473668189215433564588190247831188421391322823311304122051302618091602167325744345524687471016814539152110170218821393198411885132361460718488255492823103546110421763213423352846990713408141611962298343344845832611387124881744917951025011128511230661412262397041060511666200372054827609279210392418922043115541245513586139071435815259184510193511286512289713296814379115456414122103878411315135361478715231412116320647455178361830719388276592855102952157298320443025392644211122212993144541509515906200272708831511556270837534861592869957104515121013133485551176613647153714721207312594129151404614287146981505915951017821144239735004581574168737929810311293240334444646515736170071721824229246810252411253415229633103041145512756168872327125628153865490059101365246039334103751243618861412463351641277519786265172933170121342314524147351710618457198382014930941038751148871258101359201467921569411670541771951872321979502080172180582281352384661512757313684140351933625257265382699928271028511130621232591334021434921541351131226531255413545189761938720678212492855102945113626124678135595145705156577166609177400187498197651208212218388228429238474249430259451269543271007928119002912107301291331132053213265114112144632196422535228862463726208274492787111232384425859836107372105822549231610245811259912263613350814356015450016462017472218478819483920563021652622664623674824681425688926766227798028802329814030819631829814728283970420085205562163722068295693906104697115004125130135950146257156347166629141219439854108351236617977209282182932141032551134081240391343741423256736284891511446156172927829709303717021213312447255796635764517012177131886422995295263001121122723685469551536616567257682788932061042131142601216232635954704590361162114026713862410605117061465715338207392127113123333161441654516676170771798818299290110294411303412312013319114364215368719912102631275418885213662947734658355914172467353041633186721317314074161417062843310644107151192624047247515729232674424554865911927210543107341774518396204672107822679266810281211359111021212763198243512537196422817021053146476759226117571266822029227910234611306213423364344726547336477075728857809584910614311630312641013646614647619272105531314414905168461731717878211815228693159742527527631102227733974707515501927211393131642023521846224072330831731706216263168342343524916253414542578311114118651229153026263766486259756171072219117529673128741891170627473128341369514711512757311454118651221613117144617062763318934242352466198229034424523170621643317414290818072897312524127017062795313834155351584618357188281978921051023871138217036614692594361005714968209192172102324112856113823913481462557066141271508822829323310332311360511442185326642975557679278638103291122101855117972266832709441175428264607151280139394207052106623881130222232744126451311614017143781469915351015851119221202274131779418265193462059733711130214131944121414912616317821412112315242425382648676288132992525151285312641585250630271262813641701283231054412205128162012725158260592674178221263323994249452584628087306583100932281147228433794549132213538184895598561377113121423245428654666517798481055921851022111132941233351338051438951540871131218339934108852278623687261983760938501039191131210153111141262515151572187374747885844693911312333316244166551721623591131228233724165314129736344851113127103185242026132212932644111511312350349546321152225033604496598861123712971130217133234438552867327779883199211015821512623944101451275162626843760482814972951310414110751232613411522191325247065847610047107081831918661019611322973192494451741634497353983604936621037031138741239061343051443461544121645391745901846561947342048412149312249722350172451122562882663392764052864362964653065553165663272893375901362242330843595206962110723308241193151103192113513123639133650143716153766164103173021269323074244852684627857289583182934241037111138211239221347881452191555961656461758691859331960832061152161262262512375631790288031070410945163461737718338185591949102039112129122322132928142946153746163836173903184410195141205231215307226037236127247498258529269319279385289647299682309803319834329870339902349913351005436108801512758388949555201562195722328325293364103695113752124679135694145784155821166428176647186860197671208211218252228514238887249099259142269652271024828103042910454301155731118881708280831001420015207662283723868243292972103674114315124480134575144695154736164807174897184943195033205165215274225339235400246270256390266497276627287537297859308030318101328191338293348575191210236534715581668857104381961927981030231132761234831336131436481541341649251751311859281959592061652162572275872376302476971130214132184100951107616157187782697928231029131136231237191338421448491549151650571751491852551956352058842170962271671130219138324883596061026717878182291917164727283805484251103113021913873492451494617067247982535935551130219632734103451069611431164220539554104551110612407129182243930341039011141371242341342901444771545091652591752701862121963451752165339641356514466172871824826779363710438711508312514913515614523815524916532617596317972126032707427585285662923729648303093105103648114230124307179121427315944221252336624037319483249933151033881134331234761335431171227933944489512936182573075831659325510353711002891313994164651721630017309183283945631046701152831253731361871464751565551666211766521873721974382075941712671372247885876696671108811599135410149711158712261913315914397215397916425717540818550119604120606921675522716623770624782425788326793427802428877429973430981131987811712679374541044512366132771437816939178310199011211612235213253514262515354516361117367818376819462920473116621533272482551249619987259983669937641038071145981255641358111463511568411669291771181871591980792081452188952289142389802490092590162691062794272895232910393301045931105803210615331070534107151171269137124788515926164871835819819307210388511392612443613497417222151331603417805230763111732018371993750104386192729933164141731517866188272691835289375110378711386512407111402119331364414545216062542726328268293252103427114813135226353184542555526346280973375110022106831639418735196862499733768361693747104010114045124582135153145236155301165333176099186130196336171252136234112915402651370748945101861280728661170211413127141993521036216972897831249382510384411394512403513413314468915511017472761398841188511956126271307819341752116349346175864616147163581884134024063571463951380615277160881857919781027191127971230031101216732704351511296192272012820779217310304311310912323013326514335515336519621153181430253376427712978139891464101560112270122862196263237224145251991630297325583321934511041831142241247541348441449041549701650211752871853531963552063902164452272472382522482592585252687802788152888702994313010084311021432102943310360341047535109413611524113021413287443555456111671177813189154410214019025163128941921519756209072863830531522191332147755946610877125781677919821020781129081230801339201440361540831645341746891847571662572379448625131461761718318267192761102898113108123549134459144575155052165358176200186241196275206425216476226566237316247758257934268700141217493183941899519656242672556825999267710270811286412318513322214348811302195368248065841693171470825089304810309411382317082162831694417175246662604733958342693588104427115135126055136846146936157001167703177748188776113022363526410655210362244732878363994090104558114620124717134807144848154926165021176197142293391341890519316202173053831779375810387311439512440213449214456815537216542817561518562819570320579321585922590023597024606325659911328835694610569968147861890299801098711153517822882310754207552201627417344384135943001043911145221246141354361455461556861657181757331862681963742071402171712273771104224131032411225129961420724818264692687102765112913121927003741483051627626047269482746929631034441134851235741336211436661538481772234328543515432677078908121191531101582111672122422132864143040153202113021413228410195136761477717138174492310102400112653122719132770142836154126164915175039185095195106206423216712176211733794523555866487780883191312102116112656122687133483148626053646473458356925711878127791409101460111941122745134152144649154680165706151258737774788514576156771608822979238710244211250812256513303514315515410717254335794630569667667126681356919871725433611412215202562061721128215292377102534112624122873142214635804100252204622127330183777938671042591622249385941650523796248972555826209273510283611292612302413358014436217921453936414445201962050722058231292349102394112525166279738474116751184612947134481664917301352220375941797525946290173315833819344810349311444111302142131487421945227162288724141140216532264273510646115471306813969231710242611258612314813323814419013229832554331542161033147235834244532584161879720038331093366103553114098124564134681144807155324165435176021173628263115341493515836167372212823089239810343011346212355213386314392915446916519917529418610519688720693221708322829911007220393229742505533876384173870840259438210529811540512554613559714562815666415022552374247835132361340714818152491770117629673127441315514136166172079827819280710369511371312385013392514498815505916553017582018597019646620663621704822731023839224853325864926935527949328953529964130101493110244321104833111583411550114027823794489251587616837183582391931441176296731475417225176361852721008251893220103246114140124158134295144370155433165564175734186185196912207607114422273292410335127861363721278315993618103708113797124315134676144916155120165352161627533902499251036616377177381827920741029901130971232381333841434671535321637341739661481497295131041411075123261413112812206432203426425296063164738748395093981104017114049124060134106144477141289317945915657668971480817879189810332811390512399513406311122212993144541509515656165571776822279227710232311266612401813406914414415500316501017514918697519716520723621740917762128431774419965210662897732048330093402103684179129353153641632516816181771871821189228610229311410512492513502314527615581216586217618218643519658220794321876322917323965924978125993226107052710797125329393139341517519586248372579827079279710285611292512428713435814480915493416504311512663375941259517716253772721833749413010414111426512531615128423114941270518406190672129822199281910307011377112430113434214447515531111382391388341894523806339174273850849519910524011604912613913624117902848315504163451700617237246382520930501030571135601237391338041439451542081112752310324144951552616427173281874921821022291135591235911336811437531162222831048410835117861220714458183313602999317054230652456627017279183037931471032371135581236481337301447201547761653381562101336743985109861208712748140991729101849111970122057132122142172152509187250735574747579061272713038227392360102411112477122817132919110022105831182418835205262096723898341093451104542114632124730134767145227155317115028163978410255211562446172299231133419305207062160722258225693222103544113595123661133672143883154216177236434544148652733628437291483092938831039611140511242281343061443511546561647911749021856111957012067332181592282252390302490772591482692232793132893792994693095761750284831319421755251063006733938481994885104941115057125375135579114024823598410635121961321141244735504913511316140072123115122103351444156166754712928135692147102245112360122852133018143065153099163491173523183613194474113725433150942040521566227672483825449322610327711332312344713345414350515462016471017574218591811372253331441484516986196672056821069276810279911290512296313306511372370350645965627610337150381610925971028311128821230281332401433061534161634901739861840761943382043952144252251492353442460712561282661582763542865162973883081293182733283243383903484213584503685403785513889313996541112157324743685455616217171182743929131033141134041234671335331435841536491637801741861842271944982045302145712247822348292449092549412650432755791137287839694980511266118771869820399260910266511271515702577372347875868614247222182311924321024791125451227691337401438771172163322449065107661132716181562548385448955985610757114181231914321015281123981224641325851426201527101627201140221433704460559261088712098168691776102096112177122251132258142676153378163433174003184083194665204731214821224902235199245969256809266875276965286976297356307999179128953985413975146362675728258327293494104035114159124225134355145146155244166014176105186171196281206331216463227125237331113725433554465157046744710438118392216102313166260537954836587269887105582041927651035411136081240441341201442651543651644851746181846651946992051052151372252272356321137287839694980511266165571725818279236311121573249495951014611107162181678925151025301127351232671902230331544265456648871064811609130010143011152012244013244714300815302516316117330818400819409720447021456622577823584911721633204424453856426751681112911531014351590292139894151651523615647166481704917111018511119091220501320911422161535281312274336649565100261102711378122291312101408111445121535132372142429152724162765172831182888193359203404213506223788115162155731694417845267762928729698303593086103152113454123564119222583739478051047611627119581601916771024811282214183153442545529326299473540837079434910438011478612509113589517072118531275415575178362775735958428594337104408114498124971135086145577156723166844176997187087197369113129223161241664517146181071861819279203110209911216112226911372928310184130051992620907217282434932041033251133821234721342761138221536354150651856623527249082532926701028321128791229641333561433881534781643391522472381341610517086179871853819499201110216711250915628732974135952814628957308183162932381034741140260237184768515326159471906823601192955310324109913732424350445705678624257322783303933571035791139921242531512842394641036514486151472726828769332310337411346412380913384114406315410416414917519918651019657820663421664522685623718917602129932337425605265063380735228362894349104491114522124728147253336854102451821619197207282633926701028211129921230331348091512218366446955907610037110981830919721020031121651137239935404100651096611477193882686928061032931140531241511350161662807391041000511016166871763820569238910244011250612324213415214426215440416451017523118537319540420599017902856311184184951899622197225082286923181023291124701230321770288631677417555216962235723161662807391041000520326253472682827459310710330611366212403513412514457815536816543417569618639919646520666721689911126039141275159617073368115691191101286111369121434131636141868113021913656470757846157572105821959225510232111239212246613296014305015326216390917396018409119432320455511127523154241632522356277572865830099354910363911384412438413525714537715591716738617775118829119880420972121987722996723104732410563251069526121702712205281235529125513013207111275237904125652038629487319083362935081035431136131237791712671371241503516076169772109821759223610267217912152031976420255236762374727158294193147170121794318844215152369625051902219375948495113161460154026803755481658576136772343190215032164354511916131271344814149153410166411175412188613220714297715381716388317427517902833313434208752177632097442184560946091051191158231642265437524144751543616957225183004137324243504457056786800711308200292743102912112919123535133707144046114024823773486351015611507124081571917011018421119321220021323321424621525091625801729061829571933782033962134282241812342472450292550432652842753502862602964013072673173733275411662807391041000511936185271948820509255719621923433419085202462041721318249192613102729112890123424128627033794412065127261998115124383528415605280762917729888316693957104047114224124302135023145158155469165580176289186379197411207532218593228758238799248877259025115126103945414415173661779719488203892209102324112371122412132490142497153045115123593473461157036771779481151911941012651112721218921150218034354582565368617975814859155110199211209612312613321614329815416416427017465814814972587391641205142321023314404179252075622517245715132148032631433975352263553737891144233334234499558061111711578125392056102362112458122571132659142673152894162996173193113022223274477651406614407148181573916691017051117241224221324681442261542781649581791282231294413585140962248722938265015128423940410935165461729719338314393329113022513103741780525106354273632837489431310434811440912515913536114559311092205348245725764699371089813999149510200911209912237713242914250615272715402101731058412005122161876720878212393190103612113698123705133931144463154925165075110362116831676417665188261913720038205392164102411112485122627132723142876153871164621175335185460195641113121209314194283053096636667393284007945631701211603148141571516336170371799825549258610306911310112316713330514334115365216390517402318412919426120430421503522504223539911222197396741057520896330173440835849367410397911407012418113425814447515452616459217533318610819611920642421655922667023675424721925730014222577379641377514676151972038829739374610439411448412453913463514544415628116689917695018698119738714825983793413515150261612716628348893754104558114650124693134771144919112029113100941093516591622580366647325773610557118081329141821120311614118751496616517186682211923051023481124261226321144226233324108151242613807159181657923981025581126081229281329451437351537721640171740691847981472557320734212452443626137284382880932341032711133741234801349201449711550371650681752181859491960302066261796218063254743987542516451775138852289618011312440380241358514336149072439825609260510269511329819672104231403415575163261673717358180591852102607112721122876133043143133153214163318174348184438194615204705214789224937235033245111256032113729283123541266518436257972961840059410010429011577811020218113211842892532116341273480842219429910450517502771385749235120561280713768158192246102267112310122388132853142934113729283123541488517406256173444835349361810376611396512477313497014508715517716543915128423980412335129961839724488333593490103627113659124747134784145256155772165863176304186814197350110822223312436754636559713968149291588101629112744122995133091143187153228163758188217831464417221962215335244825557659876648810994010107711118812127813153913729133106741104512206137571818818339195210273411347512355713363014371615379216383817393614721943226410175131661363715108154292248103156114176148211853127541676527336404474112841689417910439011457119625133614490751344617217175282226926861027