Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in...

12
HAL Id: inria-00375624 https://hal.inria.fr/inria-00375624 Submitted on 15 Apr 2009 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. Mining for Availability Models in Large-Scale Distributed Systems:A Case Study of SETI@home Bahman Javadi, Derrick Kondo, Jean-Marc Vincent, David P. Anderson To cite this version: Bahman Javadi, Derrick Kondo, Jean-Marc Vincent, David P. Anderson. Mining for Availability Models in Large-Scale Distributed Systems:A Case Study of SETI@home. [Research Report] 2009. inria-00375624

Transcript of Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in...

Page 1: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

HAL Id: inria-00375624https://hal.inria.fr/inria-00375624

Submitted on 15 Apr 2009

HAL is a multi-disciplinary open accessarchive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come fromteaching and research institutions in France orabroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, estdestinée au dépôt et à la diffusion de documentsscientifiques de niveau recherche, publiés ou non,émanant des établissements d’enseignement et derecherche français ou étrangers, des laboratoirespublics ou privés.

Mining for Availability Models in Large-ScaleDistributed Systems:A Case Study of SETI@home

Bahman Javadi, Derrick Kondo, Jean-Marc Vincent, David P. Anderson

To cite this version:Bahman Javadi, Derrick Kondo, Jean-Marc Vincent, David P. Anderson. Mining for AvailabilityModels in Large-Scale Distributed Systems:A Case Study of SETI@home. [Research Report] 2009.�inria-00375624�

Page 2: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

Mining for Availability Models in Large-Scale Distributed Systems:

A Case Study of SETI@home

Bahman Javadi1, Derrick Kondo1, Jean-Marc Vincent2, David P. Anderson3

1INRIA, France, 2University of Joseph Fourier, France, 3UC Berkeley, USA

Abstract

In the age of cloud, Grid, P2P, and volunteer distributed

computing, large-scale systems with tens of thousands of

unreliable hosts are increasingly common. Invariably, these

systems are composed of heterogeneous hosts whose indi-

vidual availability often exhibit different statistical prop-

erties (for example stationary versus non-stationary be-

haviour) and fit different models (for example Exponential,

Weibull, or Pareto probability distributions). In this paper,

we describe an effective method for discovering subsets of

hosts whose availability have similar statistical properties

and can be modelled with similar probability distributions.

We apply this method with about 230,000 host availability

traces obtained from a real large-scale Internet-distributed

system, namely SETI@home. We find that about 34% of

hosts exhibit availability that is a truly random process, and

that these hosts can often be modelled accurately with a

few distinct distributions from different families. We believe

that this characterization is fundamental in the design of

stochastic scheduling algorithms across large-scale systems

where host availability is uncertain.

1 Introduction

With rapid advances in networking technology and dra-

matic decreases in the cost of commodity computing com-

ponents, large-scale distributed computing platforms with

tens or hundreds of thousands of unreliable and heteroge-

neous hosts are common. The uncertainty of host avail-

ability in P2P, cloud, or Grid systems can be due to the

host usage patterns of users, or faulty hardware or software.

Clearly, the dynamics of usage, and hardware and software

stacks are often heterogeneous, spanning a wide spectrum

of patterns and configurations. At same time, within this

spectrum, subsets of hosts with homogeneous properties

can exist.

So one could also expect that the statistical properties

(stationary versus non-stationary behavior for example) and

models of host availability (Exponential, Weibull, or Pareto

for example) to be heterogeneous in a similar way. That is,

host subsets with common statistical properties and avail-

ability models can exist, but differ greatly in comparison to

other subsets.

The goal of our work is to be able to discover host sub-

sets with similar statistical properties and availability mod-

els within a large-scale distributed system. In particular, the

main contributions are as follows:

• Methodology. Our approach is to use tests for random-

ness to identify hosts whose availability is independent

and identically distributed (iid). For these hosts, we

use clustering methods with distance metrics that com-

pare probability distributions to identify host subsets

with similar availability models. We then apply pa-

rameter estimation for each host subset to identify the

model parameters.

• Modelling. We apply this method on one of the largest

Internet-distributed systems in the world, namely

SETI@home. We take availability traces from about

230,000 hosts in SETI@home, and identify host sub-

sets with matching statistical properties and availabil-

ity models. We find that a significant fraction (34%)

of hosts exhibit iid availability, and a few distributions

from several distinct families (in particular Gamma,

Weibull, and Log-Normal) can accurately model the

availability of host subsets.

These results are essential for the design of stochastic

scheduling algorithms for large-scale systems where avail-

ability is uncertain.

In the next section, we describe the application context

that is used to guide our modelling. In Section 3, we define

availability and describe how our availability measurements

were gathered. In Section 4, we contrast this measurement

method and our modelling approach to related work. In Sec-

tion 6, we determine which hosts exhibit random, indepen-

dent, and stationary availability. In Section 7, we describe

the clustering of hosts by their availability distribution. In

Section 8, we describe the implications of our results for

scheduling, and in the last section, we summarize our find-

ings.

Page 3: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

2 Application Context

We describe here the context of our application, which

is used to guide what we model. Our modelling is con-

ducted in the context of volunteer distributed computing,

which uses the free resources of Internet-distributed hosts

for large-scale computation and storage. Currently this

platform is limited to embarrassingly parallel applications

where the main performance metric is throughput. One of

the main research goals in this area is to broaden the types

of applications that can effectively leverage this platform.

We focus on the problem of scheduling applications

needing fast response time (instead of high throughput).

This class of applications includes those with batches of

compute-intensive tasks that must be returned as soon as

possible, and also those whose tasks are structured as a di-

rected acyclic graph (DAG).

For these applications, the temporal structure of avail-

ability and resource selection according to this structure is

critical for their performance. The temporal structure of

availability is important because many applications cannot

easily or frequently checkpoint due to complexities of its

state or checkpointing overheads.

Resource selection is important because in our experi-

ence and discussions with application scientists the max-

imum number of tasks in a batch for fast turnaround is

needed is much lower than the number active and available

hosts at a given time point (hundreds of thousands). This

same is true for the maximum number of tasks available in

a DAG application during its execution.

A1

Time

CPU

on host i

A2 An

Figure 1. CPU availability intervals on one

host

Thus our modelling focuses on the interval lengths of

continuous periods of CPU availability for individual hosts.

We term this continuous interval to be an availability inter-

val (see Figure 1). The lengths of the availability intervals

of a particular host over time is the process that we model.

Using these models, a scheduler should then be able to

compute accurately the probability of successful task exe-

cution in some time frame, given a task’s execution time.

Moreover, the scheduler could compute the probability of

success when task replication is used.

3 Measurement Method for CPU Availability

BOINC [5, 2] is a middleware for volunteer distributed

computing. It is the underlying software infrastructure for

projects such as SETI@home, and runs across over 1 mil-

lion hosts over the Internet.

We instrumented the BOINC client to collect CPU avail-

ability traces from about 230,000 hosts over the Internet be-

tween April 1, 2007 to January 1, 2009. We define CPU

availability to be a binary value indicating whether the CPU

was free or not. The traces record the time when CPU starts

to be free and stops.

Our traces were collected using the BOINC server for

SETI@home. The traces are not application dependent nor

specific to SETI@home because they are recorded at the

level of the BOINC client (versus the application it exe-

cutes). In total, our traces capture about 57,800 years of

CPU time and 102,416,434 continuous intervals of CPU

availability.

Artifacts due to a measurement method or middleware

itself are almost inevitable. In our case, artifacts resulted

from a benchmark run periodically every five days by the

BOINC client. As a result, availability intervals longer

than five days were truncated prematurely and separated by

about a one minute period of unavailability before the next

availability interval. Histograms and mass-count graphs

showed that these 5-day intervals were outliers and signifi-

cantly skewed the availability interval mass distribution. As

such, we preprocessed the traces to remove these gaps after

five day intervals artificially introduced by our middleware.

This minimized the effect of these anomalies in the mod-

elling process.

4 Related Work

This work differs from related in terms of what is mea-

sured and what is modelled. In terms of measurements, this

work differs from others by the types of resources measured

(home versus only within an enterprise or university), the

scale and duration (hundreds of thousands over 1.5 years

versus hundreds over weeks), and the type of measurement

(CPU availability versus host availability). Specifically, the

studies [12, 6] focus on host in the enterprise or university

setting and may have different dynamics compare to hosts

primarily on residential broadband networks. Our study in-

cludes both enterprise and university hosts, in addition to

hosts at home.

Also, other studies focus on hundreds of hosts over a

limited time span [12, 7, 15, 1]. Thus their measurements

are of limited breadth and could be biased to a particular

platform. The limited number of samples per host prevents

accurate modelling at the resource level.

Page 4: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

Furthermore, while many (P2P) studies of availability

exist [16, 4, 14], these studies focus on host availability,

i.e., a binary value indicating whether a host is reachable.

By contrast, we measure CPU availability as defined in Sec-

tion 3. This is different as a host can clearly be available but

not its CPU. Nevertheless, host availability is subsumed by

CPU availability.

In terms of modelling, most related works [7, 18, 11]

focus on modelling the system as a whole instead of indi-

vidual resources, or the modelling does not capture the tem-

poral structure of availability [3, 11, 13]. Yet this is essen-

tial for effective resource selection and scheduling. For in-

stance, in [7], the authors find that availability in wide-area

distributed systems can be best modelled with a Weibull or

hyperexponential distribution. However, these models con-

sider the system as a whole and are not accurate for indi-

vidual resources. Even the authors note that their best fitted

global distribution is not adequate for modelling individual

hosts.

For another instance, in [11], the author models host

availability as a fraction of time. However, the temporal

structure of availability, which is critical to computational

tasks for example, is not captured in the model. A host with

that is 99% available but in intervals of 1 millisecond may

be of little use to distributed applications.

For a final instance, in our own past work in [13], we

conducted a general characterization of SETI@home. How-

ever, we ignored availability intervals by taking averages

to represent each host’s availability. So we used a differ-

ent data representation with different distance metrics when

clustering. Moreover, the purpose was different because we

intentionally focused on identifying correlated patterns in-

stead of random ones. As such, we did not build statisti-

cal models of availability intervals, and did not address is-

sues such as partitioning hosts according to randomness and

probability distributions.

5 Experimental Setup

We conduct all of our statistical analysis below using

Matlab 2009a on a 32-bit on a Xeon 1.6GHz server with

about 8.3GB of RAM. We use when possible standard tools

provided by the Statistical Toolbox. Otherwise, we imple-

ment or modify statistical functions ourselves.

6 Randomness Testing

A fraction of hosts are likely to exhibit availability inter-

vals that contain trends, periodicity, autocorrelation, or non-

stationarity. For these hosts, modelling their availability us-

ing a probability distribution is difficult given the change of

its statistical properties over time.

Therefore, as the preliminary phase before data analy-

sis and modeling we apply randomness tests to determine

which hosts have truly random availability intervals. There

are several randomness tests which are divided in two gen-

eral categories: parametric and nonparametric. Paramet-

ric tests are usually utilized when there is an assumption

about the distribution of data. As we cannot make any as-

sumption for the underlying distribution of the data set, we

adopted non-parametric randomness tests. We conducted

four well-known non-parametric tests, namely the runs

test, runs up/down test, autocorrelation test and Kendall-tau

test [17, 10]. For all tests, the availability intervals of each

hosts was imported as a given sequence or time series.

We describe intuitively what they measure. The runs test

compares each interval to the mean. The runs up/down test

compare each interval to the previous interval to determine

trends. The autocorrelation test discovers repeated patterns

that differ by some lag in time. The Kendall-tau test com-

pares a interval with all previous ones.

Since the hypothesis for all these tests are based on

the normal distribution, we must make sure that there are

enough samples for each host, i.e., at least 30 samples, ac-

cording to [8] and personal communication with a statis-

tician. About 20% of hosts do not have enough samples

because of a limited duration of trace measurement. (Mea-

surement for a host began only after the user downloaded

and installed the instrumented BOINC client. So some hosts

may have only a few measurements because they began us-

ing the instrumented BOINC client only moments before

we collected and ended the trace measurements.) So we ig-

nored these hosts in our statistical analysis. Finally, we ap-

plied all four test on 168751 hosts with a significance level

of 0.05.

As there is no perfect test for randomness, we decide to

apply all tests and to consider only those hosts that pass all

four tests to be conservative. Table 1 shows the fraction of

hosts that pass each and all four tests.

While iid hosts may not be in the majority (i.e., 34%), to-

gether they still form a platform with significant computing

power. In total, volunteer computing systems, which now

include GPU’s and Cell processors of the Sony PS3, provide

a sustained 6.5 PetaFLOPS. The hosts with iid availability

thus contribute about 2.2 PetaFLOPS, which is significant.

7 Clustering by Probability Distribution

For hosts whose availability is truly random, our ap-

proach was to first inspect the distribution using histograms

and the mass-count disparity (see Figures 2(a) and 2(b)).

We observe significant right skew. For example, the shortest

80% of the availability intervals contribute only about 10%

of the total fraction of availability. The remaining longest

20% of intervals contribute about 90% of the total fraction

Page 5: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

Test Runs std Runs up/down ACF Kendall All

# of hosts 101649 144656 109138 101462 57757

Fraction 0.602 0.857 0.647 0.601 0.342

Table 1. Result of Randomness Tests

of availability. The implication for modelling is that we

should focus on the larger availability intervals.

But which hosts can be modelled by which distributions

with which parameters?

7.0.1 Clustering Background

We use two standard clustering methods, in particular k-

means and hierarchical clustering, to cluster hosts by their

distribution. K-means randomly selects k cluster centers,

groups each point to the nearest cluster center, and repeats

until convergence. The advantage is that it is extremely fast.

The disadvantages are that it requires k to be specified a pri-

ori, the clustering results depend in part on the cluster cen-

ters chosen initially, and the algorithm may not converge.

Hierarchical clustering iteratively joins together the two

sub-clusters that are closest together in terms of the average

all-pairs distance. It starts with the individual data points

working its way up to a single cluster. The advantage of

this method is that one can visualize the distance of each

sub-cluster at different levels in the resulting dendrogram,

and that it is guaranteed to converge. The disadvantage is

that we found the method to be 150 times slower than k-

means.

7.0.2 Distance Metrics for Clustering

We tested several distance metrics for clustering, each met-

ric measures the distance between two CDFs [9]. Intu-

itively, Kolmogorov-Smirnov determines the maximum ab-

solute distance between the two curves. Kuiper computes

the maximum distance above and below of two CDFs.

Cramer-von Mises finds the difference between the area

of under the two CDFs. Anderson-Darling is similar to

Cramer-von Mises, but has more weight on the tail.

Using these distance metrics is challenging when the

number of samples is too low or too high. In the former

case, we do not have enough data to have confidence in

the result. In the latter case, the metric will be too sensi-

tive. A model by definition is only an approximation. When

the number of samples is exceedingly high, the distance re-

ported by those metrics will be exceedingly high as well.

This is because the distance is often a multiplicative factor

of the number of samples.

Our situation is complicated even further by the fact that

we have a different number of samples per host. Ideally,

when computing each distance metric we should have the

same number of samples. Otherwise, the distance between

two hosts with 1000 samples will be incomparable to the

distance between two hosts with 100 samples.

Our solution is to select a fixed number of intervals from

each host at random. This method was used also in [7],

where the authors had the same issue. We also discussed

this issues with a statistician, who confirmed that this is an

acceptable approach.

However, if we choose the fixed number to be too high, it

will excluded too large of a portion of hosts from our clus-

tering. If we choose the number to be too low, we will not

have statistical confidence in the result. We choose the fixed

number to be 30 intervals as discussed in Section 6. The test

statistics corresponding to each distance metric is normally

distributed, and so with 30 intervals, one can compute p-

values with enough accuracy.

We performed extensive experiments to compare the dis-

tance metrics for several cases including for different sub-

sets of iid hosts. We also conducted positive and negative

control experiments where the cluster distributions were

generated and known a priori. The following conclusions

were been found to be consistent across all the cases consid-

ered. We found out that Kolmogorov-Smirnov and Kuiper

are not very sensitive in terms of distance as they are only

concerned with extreme bounds. Cramer-von Mises and

Anderson-Darling revealed that they are good candidates of

clustering, but Anderson-Darling is engaged with high time

and memory complexity. Moreover, Cramer-von Mises is

advantageous for right-skewed distributions [9]. Thus we

used the Cramer-von Mises as the distance metric when

clustering.

7.0.3 Cluster Results and Justification

We found that optimal number cluster was 6. We justify

this number of clusters through several means. First, we ob-

served the dendrogram as a result of hierarchical clustering

for a random subset of hosts (due to memory consumption

and scaling issues). As it can be seen in Figure 3(a) the tree

is an unbalanced tree where the height of tree shows the dis-

tance between different (sub)clusters. The good separation

of hosts in this figure confirmed the advantage of Cramer-

von Mises as the distance metric (in comparison to the re-

sult with other metrics). The number of distinct groups in

this dendrogram where the distance threshold is set to one

Page 6: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

0 50 100 150 2000

1

2

3

4

5

6

7

8x 10

6

Availability (hours)

Fre

quen

cy

(a) Histogram

0 200 400 600 800 10000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Length of interval (hours)

Cum

ulat

ive

frac

tion

mean: 12.6971

std: 56.757

median: 1.0547

min: 2.7778e−07

max: 13215.9303

MassCount

(b) Mass-count

Figure 2. Distribution of Availability Intervals

reveals that number of clusters should be between 5 to 10.

Second, using the result of hierarchical clustering as

a bootstrap, we run k-means clustering for all iid hosts

and then compute the within-group and between-group dis-

tances for various values of k (see Figure 3(b)). We observe

that the maximum ratio of inter-cluster over intra-cluster

distance is with six clusters. Specifically, for k of 6, the

inter-cluster distance between all clusters was maximized

relative to other values of k. Also, for k of 6, the distance

between all clusters is roughly equal (about 5).

Third, we plotted the EDF corresponding to each cluster

for a range of k. In this way, we can observe convergence

or or divergence of clusters during their formation.

Fourth, we plotted the EDF corresponding to each clus-

ter. Figure 4 shows good separation of these plots.

7.1 Parameter Estimation for Each Clus-ter

After cluster discovery, we conduct parameter fitting for

various distributions, including the Exponential, Weibull,

Log-normal, Gamma, and Pareto. Parameter fitting was

conducted using maximum likelihood estimation (MLE).

Intuitively, MLE maximizes the log likelihood function that

the samples resulted from a distribution with certain param-

eters.

We also considered using moment matching instead of

MLE. However, because the overall distribution is heavily

right-skewed, we were concerned that moment matching,

which is relatively much faster then MLE, would not pro-

duce the most accurate results. Moment matching is also

0 200 400 600 800 10000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Availability (hours)

Cum

ulat

ive

frac

tion

1

4

2

53

6

Cluster 1Cluster 2Cluster 3Cluster 4Cluster 5Cluster 6

Figure 4. EDF of clusters

Page 7: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

45972106315255109552032818179 370412505 2208166291697819657 22418775 6169 4968115381987614128184921952424026 719 954821349 7711689023701 5578 9019 1980 5286 2419 3644 385 7934 55021664410127200481148615915 57481732817152 1015 7794118411261620578 431224072430512347171171380613161 103914066 55982337512753 497410162 533722260 58291221512630116332226624356 45 627824667 869 48051953321657244951587522033137951949716074 19021942011272180992032122668 93823568 574218476 245618434 3446 5385235011289823440 58151425515025 1077 2474 658913699 503419613 935314418 1898 1945 932612411242271631019108 218121186 310814194 4874 9525 882010190 461913734172471971623039 9067138591565724742 7706236091244412590 157513702 58021951618006115851291222566 93002458112736 33961156916984 6819 8782 8947 94221948424007 3605 9116 7018242071240413693169091036619761 65 531223919 92 89631178214560125942320619941 60491040418583 15781754018009 397411442 5168212601297818394 8201665613668 760923935 319213613 1369140611420016928 7775121371845423014 1921 3542 6223 159 67481764322809 2226 8459 65011387418417 85191467616920 8802 281419459 561118176121601806915116164651648920636 48571137517020 3926 87472112217438 4465 720011042131051633323882 159619343 8529 670612017202781221918337 4880 9253181402228015417 68321173515096 630922896188171206320181 131 281817207 966220220 700620930 63113703 3084 84361327424606 490710744103102391715771214852428420180 669414567 1208 1279 4303 132514352 2719 4228 6592 636819033163832494619112 705513466 7236140042173910378 1682 676513838 196318931 71601247218446 5377 964222003 77421703911411 9857 94371972616332 4170 95551015420345 2268166231957024283 25932312623980240241975011972193981211817702 2608126042468220133 4265160661574019559 391911601 7980165301802724058 314122670 19 79431221321934 974016139 1153 1864 86501305523751235491049221560 1388 7790 8117 315016442 484124422 70561824916796 18411263136652394211401127331545516680 63651449711455190872312019164 266113470132561896817569 4621 888822034 925227692226924036 2403 4778 4236 8077200342499316371 18561142824901 557713423 6106 851014867121292211320349 2040 7619 5906245391082214141245661256717243 70 83532440210330190122000723312 8714198071708010376129291957210094191461907515616 4962 85811115621689 56315805 4594 234 3147142902219023890 5889 7545188001925419865 8564175041892020343 1352 2161 6233 7557 1357 687723490103422003720309 234612170 7536 9120248103951875624189 7995 9985 673 1877 3870 5380 582519240 1367 34671048011144 868 4733 2341 2434164611499621390 4646 6529 189713610 90131783221524 4601150501929813304 743817735195691774822436246831497817321 264811829 29571096318642125382329619042164571120415316 368424620 532324100 812510185 784217944 732 5236238551085715160 2043148961418716093 54381614222558 9449 1853118861026223898 19391129117241 941214922 5835 2485 4852 919712254 1201657023873 4491 9493 713823799 5537 98771359915127144661116915313152732093320939 765 2213 3639 7662 4776 53292351123771150401614313003 452 5868 30751030113472 87011847719260 4536180601590516754 365316744 4356 5975 8161245991784520154106491298220493 3803114631401117295 1249 207624916 41721213821166 6249 6742 724217385 808 699717790 6565 15581297420507 882710841119631933421495 460313127 6130 8333107801714217025186292166814086 25214639 762 19901413418705116221067317111176102313119405 647015264 795612267 8868 9889 754 459912188170462286415572 812223257 57462218714930 8281 9557211781121711029143341473819724199371759618047 1240 541817136117642283622153113172287914181 111520108 3745 9344 2725 39701413614495 3350 9115 453320740 7932 6733 738711022150701667316525 86741403013218134681868018379 50922370522813 5127 2891 3816 968610977 3850 116016488 351022265 1975 571524014 2016 815021395 192910758 954215300224522478320599 44762463615100239571550119319 1716238331837813963 9443109342103421239 3614 934220619 66817922 2174 530122316 3727 1918 31301071013743 2776 4025 5778 82021887810729 727 98362494022851 2865234162222511360118012299012183 3090 4042 42801008715144163941051815850 364 557112049101071617413760200842089723456 36691459316937 532824269116601429714947 6987149411622419053 818 739524196 589317949 892212242 929414109 8931 1924 5476 94852343424252 6886 720521157 727117133 11442044024158 6781 698417416204372072923435 133616202 200116778 5561 8041126051717517839101812163823488 1549 5039 5040 8394 5410 249817558 2992 4185 4339128401801418134 2700 9880 737910321 79631905222783 99331235924650 38811747612827 431818612 3788 835512808 435924265 629 56101730519927 1993 7849 8396 5110109802236412048169212241218307231692102010580 47142045013299108911942619139 1649 8191 3744 834915036178692235413933132631437023926 4530 578117901 7040 4912 5519 758219318 801910277 825317914 885414082 93851041815182207472338613503 958124951172112416 72741688810813 8577 885623758166891806720961 24111093315798 775112933109701165213067 7926107711069516192 73551927814574 4766 6113 791013302 6003 811217331208632188822694 14 8959 6752 74111011424736 1791189118193 31492073722079 7957 966 40711865214094 260523684122681379424858 287316145 7448 330215863 76591381215153 5285 9922 79051390019567 47 2743 8740131331485719775236262051423557 6265 1309 8814122941286716102 468 4727 5540 65401706323945 55718528 1840 9920175421715819007 1732 6531208911357324775 70831588312652 41 330915538 222321421192592375720498 13041654916896 189317403 5992245082093622957 7865 4576 2747 3360 338624272 7136139351934421902 7793 3838147272216924247 290912145 2131161382410910238 6526 950214646 84871826415267 891811265204972091813614 812320669 3214 6159137931736615729147812217913945146482374224417 991388415433 924122844 3872394416529 655810414 7559 1505 924412783152422376811696148932171212876 5125174921754723414 3263 207314966 2157213942132210394 9468112401702914231 90 3277 7257191231596522099 489116672 123218610 551615062 659313701 8489233961976224320 2159 335517664 45172334422721 589510919 9324 7967 823111787 3920 4494 52281098318856 452217432 5289 742211046 72391372610840 928922344 5399 878520874249072479123604 3612110521417421538 1622 383215105 6433 6367236311635322906 6416188911483515379171551761321552 12718559 591024518 5731 479 7000 1053 4538 6414 4814 89122531126882229024691 6371 267210178129542390215360 3092 748820856182631648416533214101671724048 7189 9957138461626521505 73720423 2108 502617427 63541083817534 5061115161899110241235361857520903198012416222645 65251056322320 95782108913644 570616168 97 24841234813716 415 2452 2348 365010897 41118749 440115347 83110621 6908 889613372 2784 94991054610936 603123643 465421286 8004 76313946180502314416843 354 9947180361634220246 65502187721128 8924 357314929 6521 740017691 6517102631594019204 26321885 90851139521559 271 276020382 1624 8975102691912621281 188521675214821141821721224092434411259181591699117740115551240224055 800 2666 7572 903 5171 24251139214026 4553 4921 7700 178317274 428 2269 375516741 45862058220824 2222 7739 5144 598720800 2558235251555415454 2848 6350 4190 9515206042026911400153072164517678190882021512908236391382415676 6155 6672 73202365017704193362184318482 7392408311105 1837 730320087 2696142681712924206 1453 2914 4836 8376 3691 9297 540318531 3981 829510566 6799 4988 3802 5030 34191941916336 822134401486213244 7277 795410253 6165 103010150105111986311501 1495 22991328624761 4382 6822 9356152621811716531 5314116821183920254 844919084 5445 34782248323856 6835223052484624860 907822112 282 128221617 149821425147832129213410 2063129861864712110 231724117 6800 8933 89741407718210 847810672 8958 2763 9858 80551832921363112901225021870 1405108212218110062 8908 18601139416821116231466323851 464 92631397019369 933 2718 156915855 51371163220471 4632237091031414596 85302001521749 3119229301086823546 4983 717424309 75811716721285 6209170581071119350 637013192 7371158351788622701 3589 760018058 5761168701991620293 3406 71202177810197202671651424712 104715841 9973 81042040717975 1550 970220104 352818713 2588 324724942 677119161109102332923820111031116316354112501330918659 2305 740312106156271677614135226651501415221 4404 66231292622998 740917919 20361761818554 5189 5313 9196138941082813030 3430 8675 8381141201553221237 827 142620415120751846020965 12242190112223 79641887718194 986823046202112029023991 290116176 8403 402712793 9189 4276239981408115799 623221022 247510932118822363414474167511265518619 64871266520341 6936 7944235121129921512138041710618802 2798 618010662 2247 52661543512577 468312045170681978822357 87352199416171 620316277 282720380 77831445922613 39221642124628 7825 6004116891224816850 7051 75431601810315 7219 94841343012274 8220301 3286 6608 764819976 561624909 8756 924218508 22518887 1484 674613917 68961651013112 76822006622076124741284919900 725212835164722000023608 44871560121960 244 7064148832483015176 42691979724023 77702275211618 97702006114722209041548121518 223824937 877911318122392033120303 2404102911868510842 1254 3714 7084 1197 367920499 442322881 293 474 547513913183031431516494 3778 60451219815006240721952313291 23501576420082 11252486223575 4704 2804 914315482104292479612890 324417431149201131216153 2424 4365 724312870 5963232882073115888 5405 552018841139401222619563 90182021319812 327412854 5084 6413 8365212972154814556 35561406915722 8776 764019022120182342415155 529915177 1996 9850213291996621294153741535516971 2759202011546423454 7176 7947136502111814214189401916921802 289412580106781148310278205771581710503 60981216824183142621737118072196391936621913 1482 866110341 537821490106752063421036 113615605136701110114948 26991175218653 2920 3385 1464 269120107 9149175772417421069231371681222104 21117653 3313 5648 89941131312425 2952 8290 5462 8457 163111527 2879 3233 6669146431414923881 371710532248591362913713217661421824717 86310381 3122209311456614702 2205 9181 3594 6574 761323258 173121247 585923931 2311 5024 9354 8976100831886210925 1133 2035 30221001215549 937412936104981535912955165801921116284185042263724523 418020574 5572 51651544322593 90141597716697 92742007919892 717723421119571291914953 42981802318091 12831937321414 73741006313311 425 349517396 78152184219719 69922712 280213095 63816217182762358023618 746 80801830111800 41471398915656 508112769 7677123001081124731 303613195246641256911443 3560 5460 8124 8377174371860610979 987515575 893419821183262117711500152691480515134148631631618370 5215145631408315252 391214282 9579 59861024721963 1118 93492042116303 310033 1322 8641 524722877 569820022 868910312216021462224214 716420427 7657 874613972 972421291160731636518594147052370418347 7520 8229172731303924087 56361990912770 9332 71616403 3921 3033146651438320768 1673 180619418 183 769311021 1142 2370 2457150152013721821 1559110631406822211 477910068 300920388215461531718132 3280202262118519362 2167 7184 4350242682419810823124751999221046228292340023971 4486 743 73272419714406 48271038923151 1842 7608 8350 3522127602134713533 95441362019606 271423172 6605 2246 7256 3441 73311116412718 2519 6496 3261 554716962133272292119258 5204 792922495 6313374 733524363 97417896 9256 940915653168442064922746 614912421 293824393 4614 493319627 583117626104781755314635 331624217 892814338225281945116684 12572313410088 3041 312319462 42151133013122 6243 67641507623996 7328 303412476 957223510 5496197732374524137 31941088219248 3982 1597 834313012 127114016 3120 61001537615237 591319603 8101119861183118526 757114803 668321708 868510397 1693 7087 2282 4719 454914824118852058622927 24352256820746 6381224541688619548 2721 866322029 9620 95341433021434100321107314586 7555 890414157 9335 2265 233616136 439516335 605819274219071104312148 3862 479213517 4319 5662141331345224131166102184717286198991461815857 32001202322608 938210600122021712619940 1571959823812 2351445314590 200312094 4595 731911861 3765 1635 1950 9453 942821951 1653 6117133961878720893 8287164391009515604 4268 831512706 488712833 586914343 1013 9731 739620025 658418114 2874 92731345715487 7272 15452427522419 111 194420286232871003910954197201215621687158591174517147214041186915165 68111885813864 13431037111976 1521 33472074516182 959322275 266915154 6202 3568101111103518551 13422693 9312 56331325921051 67881405623836 1347146971704414373 135019064 3989 81921982523880 899313497 566 132912829 5979 6229119082119010199226351812123377 786719458 265 61931843923128157482201422287 469717377247551746222195 48615797 4658 772224377204011000021400 4101147151015824366 4628 3878 8240 409617386 838015749207622451224759 524 9844 8509 879814217138401658324573139651735414269 1722 4072107001441011534 5870 3631 98212032421525 592517837 70051515918054 457816555 5031 777113215 801616852 7784249721947222062 654 618316824 6215 90241336113548 1861 66381475918147 357820977 4151 66421493415498125762170113506235151428916832 5259 5318178341028821939 57 21042457615401 29110657 6478 913710971 2363 1960 2828 872017451 21220535 294019063 460512104 1632 2287 328910460 815218455145541712524338 495417918 1496 8321 88641404319925228011776924577 17211045722687 7223 903724507 844 5293 678313662171901946423197 267 390712434 712 47101321924089 425217532 639318912 603021663 333 84916772 445411707 996422761 1233 1444 88581313223055 499611124232801470624179 19152037520857 3577 3873 3602 959511799 60171561823725 7486 875513738 25391704518227 7667 304224828 70342364224618111922188921609 1614795 4648 193 6686 2508 7917 5918 67801914523420 717514908 847621094 375315742 167 50191564624253 512113765 90932472319400 882518691 91691542112417 10361012922651 4762 185511749 3307 3553 393920363 2600 5466 688917244208891472919351 22341140719858 766419492 81431430720688193011557818458 2753 97572217722944 58 6700 413924094186222199119888 1298 89 8118 2416 332 44952498310026 95917520210722193522053 50182286210602 300 601 3210 3812 709123057 8234 624424608 417810195131911022718293 2523180451263511793 7446226562067413394 2982242241859219015 470 54611593116499 974620185 161311296 6971166611217613996 523919583 87531606012127 295913344244691498816124 5872 8873 23372114117359 81031120212695 799915548218401986915284 26981356524788 584216768169031244212948152581298424012 3196 915016871 389 29551377016769 679 781112884 2557 40641004115815 820622467169722124412317 1179 2758 9734 17031962021989 53542442324815 7112642188461088913998 83 351216411 734622591 5162 48919890 837813493195261514821211 898 335912677 4297 46531398523567 55131992322368 5787 8433 8772140981529220306220281066724462143751422318654 2101954913733 6622 8634117041450422704 691413685 61912289 5077 7863139951970718295 268 890923893 1037 14921623610551 1795186821446715786 246612918102372476719893129952028515611206751669520186 4973 7415 601116611232122482311480 851812672210072361619908 832 51201120820880 714613849 85018115 3415 3603 7848 569310959 711611473101331027212751153041872112994225751522517662 1070 7707 4840 8532 1137 1805 1733 8503 494612943 5431 5346 7025140351878921959 530519297 7515241811568116794216811793022505 1377 4700 651022789211071444018119 1820 7641 7877 7762249861496819964 5003 9100 25852031316897 7612 99971354615184 14941418910345 3020 6207 110 4400 2048 83022186412024 823139071069923668 1521082424832 745 4629192091434122134 1038137982457513316 4260180861456818763 1773 6859 911215920 1969100021277922743 6236 652714829 996721921151612043022537 939 910621272 4006 6133 199 11891990117004 2628195661209511545 199120677 6335 931813326163492209211770 58212811 1812356619124 60322440512433 7123 72782177723247 12741649821625240881363513942130641544423276 7261629220157 175415746114971777916761 977611213 9448 87501347822542 1251303815414115502499714028 295 937214222 47841826517563196021260319413 434313009 6134 20511424320156 783611533 4099 547215068 230410832 205720797 7803 4582 471220261 62511420815058 80721128311655210142127611184 3834 5258142701688217196 20111519 37521114 3282 626221087 698 122623376 7162 184616746 7618 3463 18092388813684 320811203 4944 693820088 789818480 9930200991312914788 21101962363324360 5819 82071232519290 16612013620283 2359131661703518704 220314888 2423 576820991 5106 354010783 76141016918845 41892180315698 18017581 8968220461815224701 854917398182571955420174 1441 3830177602238818421 694323477164281694417708 256611434 839716469 8572224411098922556 768523116 1656 688019006 955310893 3754 123512600148371058124288 151613974 333610597 601410365208542491914154 25251108814078 383313229 57001129315872 4999 735316402 791914736 9320 2980 8777 617111813 14402296915010 29541055014300 3956183041120016660 2219 620113272148141392314592 30611168422830 66292000311000153962329124959 378618095202551426624222 3895 8745 9962 47911209717440196142044813427 2473 713421054 422523067 32401525911172 84941245215027 77731604714761167652168324902 678513870 849017026 2716 2173 288514046 2398 3696118542012822940 47801042415440 690414469143391741719437 26931382021967 5149 6980231781765915686 385119152131701603919477 5664 648912991155021817413757154632105214407 1876 455818664 1938 205620454 8023 3904 452424406 5161174082374817338 8210 34971641714031 32814771 48311010620751235862151416057127011335117263 281120279 475823674 7416 98160631961118911 418310939 2204 812717506 486423265 691 19822219223458 948118467133331119512410 1090 2316 2358 2264 2640 3715160422240319102 7211360224825119262143514980122521765818409 7093 9806 8261440316159 9712 152210437125631948116184 1958 8370 724712888 4866 6989195851610619180 3479 559422274 92832333515516175241417622559169151781221202 449915851 9704 580915213 1765 8631 971920588 776014686 8806 423712388127161348719193 5811 728216687 1281 5148 205013975 611610827 989011033111542066416713 205321561 4652 707421906224162259423599111822120113509 2542 548422776 7075 99292233112562 127724721 7719 5503249231079223111 321514369 106 6101 5731546224364 92601737221575 53118092 309712260 9461 656 2084 535622766 34682486518377 4333 7221 215221316 654814295 1250 40312072015690191001840219520123811899620928 635111252 308713937 406019249108181410621449 606019394 7313677 9498 2549 9569 40101976415170 4705 506823357 5921 6968 608710964 836713158 6327180681997822324183481251518889 369 73651497724239 91423218114932448812650145231162718971 2366 1672 8736 177 66111194316158 943519774 4016 5534 54010949 2831 32031492423460 801566222995 8630 511812286174151322519534 34442219714283 9760206811157919505 7866 7975 99022175415215187641106917293 6362 69051506612763 1697 5401 9982 3154 9524 364910046 977118759196642137523844 301715235 833118131 5242 558312731 90641536522918 4742148542495010222115651708623526 318623373121941510124899 153512341 9399 66621243818346 7181112181251718011 594 3642 63431038517275 1634 7547 797420233 7333167581997021159 353715594 9847 9849 248615382 64881775819983 40391870610393157111802422373 8522 9830 6602421514391 62531454118890 6307116031761919618 9371432021667 54302222712699 211521251 382010500 779623800152882055923181 1678122271614017637 78741032221298230412225923517 917916259 483210474 62591628219353 108 1438 309915370 9360 11081337119772 3777 5679105881122012040 622711797 773611136212692333213068124941346913721190671683418850168592119419013 457711588 7914 9881 542617410182991214315958104631121010876 484924154 576420270 33832143722246 5367114781736518466 9540 714221811 7245 30142181022628 8887 95281791522986234011210016670 52015333 4769 5073 2793 3300 680124603 62618278 1166 16481512623104 6723111831584213020 818419880 1899 8301 72971054217210 3393 947014227182611898524821 6689 7923 179716595 3435198481507524999 5254 6205 5912609 5152 562317252 99741627024696 353324685 7337 8937 2309 5928115432047812711 367618957133851286319116 414204582315923692130421627117497 10032361220190 682118798 4843 2690 8727 3809 76391625811050222062324517061 489011461147351964618839 6006 8793103632480422016 4830 526412336 5585 9033125101857221416 106312564 345323630 754820144105531745817807 3940164751636323813 422 3764 265222073 78532094323198 80391153916963176892348424351 38742309922993 538323937 98641984020217 48711054319221 774 177010647195791295611010119412166218161 48120476114021612122937 33302167324974 88512523 3962113012177119800107321496223271 172621200 251820524 6221 54341053823746 88011107 9736 97751670312887 9329120761395120984 67131586722312102701061513671229241174215001134431272116317 1763 241817645 59561530210159109021955617442125202048014630 384713692 6673 879522081 47152025622751 7513 7698 12461123419273 13621664818974 65601763916930 8686 174619777 991014034 2864 55241424922614 1607 98231986723010146142179323960 530216784 78021478216502 72131245912885 857919824 3397 5536 587322101 692913519248202309622956 261 100812231 979310470 778 4767 9885 412710906 6187 699921012 878812454 685214422 7038 863221704 714320631 1307 337213143169492006320332 5493237201573317198 932232591598621100219432481823286 2614 1471140031699622421 34121595621282 862187531847419304 1229 380720859 350922127 74801068312041 22102347811365 3793 69421149411746 47291935520978 5036140222203522472 867010193149131938517825 136518320 47961377819508 1485 1951 742919135 286210245 8024 6342 995810931 9407182052150324669 674 648521809 1087 588523732 914723760 359216994 442722508 1064 781712953 45632410517118 5857198282142315061 1681202761230813959 384118495 2421 737810808129131447924460 193421767 57511099415179 4033 554218907 468723659247822055022664 8742 80923194 37019215 9316202771533920162 140416390178111070815959 1617 5012 435720075 95901137918532 18571746624644 50451871216705 54251662017096 23622303516912 254120539100531143623809 6828 970517960 5176 11271111719187 1652 4935157452061615483 669917364177721077514903 1870242031078712990 5719 7827160511142914576198591807020078 7728 56971471913639 8932 9235 377 3416235872336314520 2580 562423064 4301 86731542519702 3333 40901346022590 922 2011 8424 9198 3732 52512060710960183421743020819 501012550 4529182231203412787 62191356215436 2522 7071 3500 97411313122634 596 635714258 1552 6068163091580921523 355514323 5588 845410343 6152 3114 5840 3237 41922476624781 56991486021099215742307510598165501427815994 65992210916779 51961214917745 437222096 986 7620169241588423986 348411502 5609 81291897319838 802124226 7617100541574722241 2730 338911085 3459 334010901 4649 434 6324 1048 5424106852488221136 55922155814074 6637 838514461156231763522256 188218596 2331 242010743 72611348415954 607415324 2209 2570 246915265 615 437310629 6078208321532518314 9062223551829823681165641972714051 6966 40972240023614 18 127611438 156 996 4026 6441224182246910123215392094024369 331921000 20041991716838 2292 310023180 5621148692328217498 30523719 680422496 9567 386624470 428524277 149238291562020469111782035821606 2683 4645 244515721 320110593121731537223625 336622313 35541124214600 54082028918734109881622319014 359 3906112851640818558125932489516900 95451841319731133401501716891 3600 3934 5482 5933 52901299215823 8826 333812165 1011368213298 779521808 7532 886151902271519306 79061145311953134311519114785 709157282481416496 9571367916973 41681422910305 88321335615528242731767710231 19201335710556113461818818673246922069711450 3958 960121467156881766124006 5017 5058 8996 633414441112221298114660 5415 7607102891109417448 6408 1110 3871217401590624982 85151820811769153011753812077145052447423430 17621819 172520119 80931857911778 69011545024633 949024797 6845 8314 78051944823858185892201915781103132264414447114131451113609218931586523523 507514353 8911 95801180412464 962912782 2924 4194106801813724768 36131828519047232972486913581138212247117245 4221 72941717118167111941185312262161502328513343 89412407 12421864910347 743220951 1609 8423 27482215422553 86911587912204207721877217343 229017902 6860167142408012054123032005313223226301482717891 9829 392320813 7880165541862415477 3225 5033181951136917001 5307 568916817 1366 1789 72312206114609 145421882 22551449317474148152277215033194411807122214 151414070112061282613155 2237 6111230811233721839 39671597310836113051378222447 529722972163961139616211 732216527 831716699 5586131212189919924 616616008178311898621795 8526 976 3523106161835722502 2023876 8309 182217301 495114204 884 447216007 283416874 303710926 62602224310149126532369312911 1106 6684 910124540134451648019083 527223284 3747 4102 4952 55324659 700 2978 7154 3448 573420890 8427146801906823531166861691323979188182152224772 1685 5982 442422393 9482 972918503160242280623205 688524190 97811727010186211692048722923 49101604624319 192611599 860019795 9661 107919104 1175 5145 9979 827814672162191792322898 4678 49001196424325 1345 83451715920320 1001132101523217681 1294 185923489 91581647720369 5661238191789215807 5542245021229 281612096 2534 3257 6346 4789 523824910 580613367 942917047 4740 98431924421361 86291005821220187241091523805 2530 3817 6887 94141802515744177101319415387 27662276215530102141668520644 2027172282027522063 403623079 7960 81411914319744 8082171452043123479 6213910 1833 794113281120032217512462 383 6612247251950316399 8105 3587 68691200211439 274111018143222062521368208402164823920 3571 3670 5672 90721349922449 31651727620996214882117421745 612112573110972417712728 491 8438 197120852 44141527123238 839214108 239717238 5914 9879138581359723049 748114487241931170814390186932228413861 2779 8973149611360821386181111027121748 4458 45031937523061160641810423027 2544 188 858322841 563922428 140324719197811212419408 212411529 2155 87021972210040 9725192771573016113 562911723171002407119212 680316979 8812 70101753119791 84211331719235 6282467516221 1868 70942002022477 3893 2399 7666 8304118841599918646 336219969 50901581222763 848112739 43751986215385 5758 811411477 828823328 3932 9762 4238 721813159 7251124801860317268 638517216 1069 36941008214365 3250 6657 85501733021372 4583 709617601 377618827 8180 401115557 109324025 309621489127092396123988 321119949 7023 50213382 553023147 5582 2259 817021596 8961 4735 9363 1900 7220 35991711218360 95331426722067 5879 498422252 9096236951361821227 2092 59991004713490 278820394 866223040 825 826313045 10201966210655 279011082 6770 16511396212102118621388617460 205220043 3308 9766 25111814121677 2437 50201049113786239551088311911230022433512332 219120935 2547241701030213993 4610 298917838 715613094 69471979614894 4924 757423700 342613320 85621584922574190691719218635 68291423411012168101718120257 2377 293714755128181059519592 297016835 222131631488219649 1565 2117 914115870187371987023195 494225871091724149 7858 80951985021630 8444 10072325624301 1209 48192477315342 5865 9092 2099141921315420038 3859184631379715769 382911677 502119500 5780 646320633 6567 67581369817867 7339 1557229741553317518 595023506121912240424140 8011108981135718441 4868 911323003 86241852520516200091304815432 35591521113137 35861634417703 43 14417065 2535 60512053 2148 55681998216137 51291596421955 618815507 53491203319434 64432090114843 6557 6424 4551081215428 589419721 179310778 903220950 1024 3018 2195 416315939 679722144218841444310415 568012548 81442061319574 9477 4918865 567 86071504919197 1327 4686116991709718883142641776522729 69 173414371136051203118795 1709 5365 187510682 5994157311850917733 51391228314636179782062218741 653 42021239624317 794 256114872223611322021635 790116731213352219622767 1303 109 748412059 42872259516203 827711850176992166520337 165 28232161317763 64717904 74631319718244100281238317754 978620645 3395 4304 170123065 93512438719415 80602211914902 3378 7913 8774 66351880710101160351104510297 307 8569 6326 2884109081181920376 6252434017718 958619637 999010693 953120815 53272447722057 20622133023093 3161223842410820356 4327 8142 8527 5553 704118690 9317 2641141312454718540 27042387724500 709012181 4306 806622223 22016450 47642347213570 229823192 1293227441655913063159282054723912 2049 4847 801715122159112126824178 6450 716322802 30071281322463 43921815013819 5783 4177121591031819445237801321122056 936118410 91641547510064 63582005722996 686 2087 6596 9521131471076910990 27915541 3404 9691 5391 487613638 72281306913530183541652422180 479818805 1161 1562 9047 976912643 969412851 3931 5749183001237718423 65142060117934 2428 3622 5132 8955 7868 94011758621381 1455108781102016557 3431 4345108311918524874 5414 29481162812516204131447021716 159017876 583619596 655310420165812334317676 374611581 391314708 8611 6407123351245024827248941230618412133282088222438 3372202723457 2705 3757 4580 945 5185127842281521975 6131 62571395213749 212318444 912723875 3019 61911174323127 6934 90791757522244 2281109871401312872 10761247724690 6033 7958 728723588 4349158851660818089 843119684 845024251 2872 7445129492431622572 168 1215 618 1570 211214147 233815679 169115606148552402216538 317 1107 543614489 6411242792488824960 3310 3394102871165710825 83342079911387 6263 6586 5544 3460 7045 347316628107811306121797153931328814186 9050162561837111320138072037423790 978320475 439 97532335321182164301158314095 16441215313471 9086 443 8696 3361 3798 58471362614152 5872335813936 2225 7323 428322596 7497 4600143862011123884 224015864 923220077 7637 448219818 886212232 6097154591557012065235471442622285 8400 297422258 5245 6831153351486417283224111575915985 4676 8591019419271 3860 9527 6718 7237 7068 934313813 5117 4557 490623268 8965 201821641 5630 3283 4452 251015496 32962103012925 2177120521080216752 9107 3708 739412723 499410208177552145215525 9692 9688133011422413558 114121637 194617333 85672348513279 925818251243062497910973 9359146072369123842189791671019635 4201 73902151618522106421649022413 7456 921617450 81091753510993163811898019898 5828174711752719291 16202322721189 747515992 881114661228561554018998 729624153 291020112 43962393915912 4673 7720169601122315588170331950121021 1173139192440322666 55041510323153 8414 91561221214409148661132213621 26622330518670 3905 91871479822425 37916645 202818905 401413779 4544 82542065616988 237117951 3610 2701 9267 521019648 37031644924698 41619479 2477 3975 97301553113501 7591704812068178292264922903 245011587 6749 870912549 823914207 912418781232292273323680 6725145261611122005 2293 5339 519821542 552511039 570824311 8612 429516728 306321038 34342175510210185671934724241121411791123782110831368821139176172252320319 1901639219552 68213801100101142415826 61210004 2907 772520115 8078 64581293117920 735417028 99611360119845215971769823321 213 658817910 44919294 988723807172391537511032235701779211879212281314114992 552 5226216511454919920 3373 33901464724318 44932378124322 462420492 6293 3766 5344 611510592 71711666 8590 9129 95514427150891606516651 3321 944622301 1459147731509418695 400418868 557017817 497023260 944016289 2430 26322064616003 40122690215272124013276 467418895 318516907 2275 9371 253819018 7464 579915584 8528119372432317871 373818751 84431707219038 72671607224688 732412589 400913578122061428820777 5818 7807 4302011624141 48131556219689 5271 607 424218754 608624571 119424870 71142046010084 837117251 4270 492 9665 492916329 77651089521197 535924588 9279 1066108452450321660 43781777519605 6456 1749 212623860 838624951 8833 2972 8226187031891411122156521957515130 8058103592335922221 320914348237651711423009 6082219312209114677195911184413188180432012023310 5052209322254820836 3656 8083 1236 782616075 462715438 7591 6963 9752 100016863 351517468110011081522580227781164314188150112201111145 46 4247 6284 918618697 138186651616722928 2552238518660 63731244724263 5953 2172 2571 383117370 47831414521958101662073414169149141619524808 5888 41382385217406 3452 6392 58271296112449190892342321135 1890 5527171091706218312 38672161015230138392158323699 16581904517549 659120206101301326212556 6579 790821049 3552 7459 6204114761517317844192612142220791 60841407322455 112 310 1711191251790821731 93582092917503 833717477 699522371228541050611444201301538823839 1563170762047222004 633321250 3021 7625 8534125581493717056148771660720621 49201822124262 52022391616813178652206023292 1826 232216797 155 588 78851048524586 412322345 787915597101051799017323 236102842022821831 20231162610871 33452229918793 5043156501968321650 86141429824343 90712756 4997 7030135021557119225 1889 8360 9759 8969 2812165361990523733 490918533 884624468 302623082 8052 510513235 6269 831921163 518213019 684916478 2312 8971 2448 2677 692512207128831653912296189341449221576 3892 832024929 49851094517429130011036823374104552387124627 52 806 62201779813428108561375916954 2216 7065 414021639 8769 9004 5095 55151384222129 81791502921879234641777123921 7834171871738322662218292449823253 16591370613461 689220477 2932 42711409217966 51861212112946 9151 1669106111081911503 180420383242081490515694 314 2068 78213500 97032238120234 127810522 432521382212531127718953 8088125521762912598 70361277222636 78861485812329142591944913495143612225015072 36310913 5916 905419333 57412980 2272 94561893711409 3408 7953 381112700 10941765113348 467122145 611219111 76322292916092192451725420438 393022867 616321484 1965 540915167 5428 91081368922812 9897 207411197206182314021203 305022030 5104 6261 83001278115340 36717801 3538167871008020252 3933 514014725 899918200 665214589 997017954146412062822683 40314126192272200818498 1206 11721252920397 2479 301511619120671983420910 172422479 4122 4291 92231191818885 692120453 75281633024670 9373 2029 69221055917487 1953 3066 5876 8744244961602020709178422171310473157381267624631 92801121612263 176024984 5897 6235143331997420829138292373518234 1411835818442 42841036210875 86902199310776 442013107 4989 8308 786201101735022380 5993 798614500150882212317348 936147171680420251 2618 3815 15531622816373 3048 88971412110348 267612570 8907159712243316285 316212190196901138624212 14721199 3492 9411 47281433222705 97261434611658 331511645109221244818717 847 317916641204792316710468108871008618678170671314021195123751331017948 577011727 882418425 2850 7385 822110183 9154 30321536820779 3089 429917260 94591856619179 63291224619226 4245 4353 62181022420623223912340820466 36872148710142194861381415916192031799621172 5851104761162921858 7224 7266 953514544 5081280324287 3241 6085 3076220102272423801 4408 3731 668013329 3160 5006 50072364523777211201928322675 338822198 4602131241535621225 4807116781394118168 5716 7443 917220828 735820385 63041282413097182192118024886 591215580 8603116251048321354 7500179521135119219246632282721290 62214707 19951893519990 814146122474524939 472113532 678 256810016 4137 3994189041138824805 2922 2960 192 1383 405921438 33741563717597 130210858 46902269624526 5316106942444917387156032316823148 17191097611580 646015576 7756 8633225491166713370130981357714906 9494 984011350 6562 9462 4622144831528611598 97901118913442230871848919887 6911 7212 8574168271796514807 551 404 278223636 6926 143515399 506613878 5934 94501593816636112611840812281 20801483019117 6741 8563 875816077209532098221256 88491003812821 230810102120281865821257 41201799812657130502137615917183051008915853175162181323646103602392824645 7413142811658419789 953152101089011374 2923 61351830623341 808621666 5464 147810419 3791158392145918331166622305023938 165715026 9053 2603124652052515569 293614292 6426 725912233 710821254223172413510731241282431412561211792179422539153541698323204 1574 2501028318736 1706 3643 8034 980243281389210268222342279212277 3297 403517752 606717486 8637 4651 672 64662230824383144281538120457 4361180916122 549122465 97721681520481 11292252520150 4991121161440218162 66101740919792 528185851696113071 4955 642013230 90402080124596 731614514 29421356822491 3493 454819099 9941 5763 6817111501374824840 235121654 91181502315422234332080721405 1306 1584 5896 87802096619699 79901279223706 128413085 2187 6410 756812084 5230 76441243523845 44713758180261048712856112441923710219128422051322839 114821082 416018158 5838153341600619332160502296117472 687918605 51231112115003 980321908119121461723072 597 8513 6735 689117514 2537233831416620739 496719352175731984221378 7168 1687 820414573 7080167771183021137197702449720040 740 2739 1169 2756 837 39681923424542 226315067 7752 4966 8292256114139 4803124831043118760194502274822340 351912259 6602 378016114 394715119 412917069 7872 263615397 17511261817685161701442916029163062008520585 683715825 25621450618842 8671 8900243371626221904 442123278 5133 694424295 8155 82411307513875 8917 9822159761333717317134961299316708231051224316938 223922536 78182165622334 534 9063 4773 12221686420820 668118361 104512755 452020523 933314999 6945 8479 6161210231626316802155861660315426229161138920662 9264 960814238 562 3344 8919 1507 40121570323107 279518644 417622064 5574 6570212341061020640 45131862517672151741559621964 615816201 2817309 670214451111751133313834241572454513411 7263 7562 81 471615046201841056416397 6154173461826219542 451110692 137214024 7300 2706 26301278915998 389421786 7873 239521068 870013099 26391532723789 5360 61041198213731 763514237 7822 6096207552458415684 859817545102792443421643 744111670 776712525 8352 856115128 978515832 50024187 570113433 2098 521 5056 244914225 751163251265918896 2658180371469521543 2170 9247 5156 6738117572019424715 6349176871255419409131992137714603 642812581 7924131562243118661 105216634 3348 5455176272249715338180932348023824 2010 9325188251883419631 745415944 975019073 7704120932467317288216532378314246224612332623369 169911070 5282 6755 910314959 1704 9637 994812858 708211846 671911984198551261421785 14472277920068176411848320155 8163121991624821824 175620445211601179524085 3101 61532246613566136232412324580 866622859 953220042 960015982 300610182126201293219175 8830246471664617488 1394 5509 6072 2387 4562 791511761 2497 2755 90841188117191 9426 804918494 231821782 7330 5388 372316320186411139123743215351560018636 7912 800214265107741116811053 294 69722475131852158624289 1461 9314193412409213774 487818066 96801565421246 31211638142131193213292126941961517093 389024705 7712 37321515 585824042168182187621984 19081461322303 3749 7238 761116308187161982320690 85141906612542110311762522435 1988 520918291 279723647 67311404719383 37942370824063 39021072714658 78411868 21891283216340218282197823150 5936 97542412415705157801745318613 602 9396 137110413160412334524525 3049 82242051814468 77919945 628510510 755213630 418122474 388 848323970 295022774 455519997 6430 48211742317983 5834113401555022526 969323721 411215494214911756818784 9424 811 687 657711193 1830220892490313065 4573 450222626 808524640 1156 593112497127081304613576 318123865187222084524027 28010997 8037 81061552924521 74172223319101 8493 5421 579223179 3174 5773 6230 520012527 64802310819539 4346216041305819184 5400 55901874322615 7004 201212109 7727 3352 89841474224893 871511611 302 8545 72931248221492 1931 773518936 5538196422080824753 649723073245191361723442 6410392 1199 291924129 84561971215111 71471872618930119472138724345 609923724 83315465 9102146742333617297 4171 8511 5308 89462022413413 58441113921741 1796 4925229801310123519 6323 87103041012018363161011076613355 7372 9991163861687810643 441 2820 80511639 4321 908724065 643915655 2809 659712866 70982113423333 417523520 842514349 5229 92851552416700 6820144381358024817 87911201413249 8261 8712233081716019361 978814294 84971143222248235542234224678 12918871 85011897210636102601333613924 14501283715622 37391805523551 28461335915078233131409722695 48292395924741 93571170011253 158 418217608 66651820920271 72841780524375 960511405 215 144518984 4241 516913387178211919811174 20341541113117 4574 9543174362360222094110871451313476145821930220081222862085322492 158018309 952010049 40771892615181109161608624147 675723897198272132123793 3823 7382 7561 908816416 1255 30772332713123 879 3059 71262372823835 3601 48021580221497129501420123553 44491938720089 67471359216305149722195624282 532220661 3751 440218747 1490 6310240781203916481121141119615642123761510918744 9310 164 92261978621206248491323618627 2844 8025194071379916929 41172197214480123451504722935 4202135321644 98152347116189 5666 698119989 855719396 9710174221795519735 204421957 3525150441167612571 9497165322483411589210552379124505 54820817 439017489 102712112 6226 443416825115261511219416 2355131342419521340 456624598 28571861823562 64642297522987 65072403124209 4708 82712139618848 6348171372411824120 7730 3151157315234 8729175671770923541 2934 453915260 2964 9658 472022663 2347 1814113042416313512 57502054615364 34221400024332 989519745 5733238371624921104 7057 3273 59611959323135 17116955 1851 5604 672824176 620 26922184 924013362 17281527222055107172479914653 6002 9471113241296721987228311828424225 4631448811002 197422047 2323 735712391 257314038 7201 496 7691 970112899227222297715754 3664175501047915983 373516164 5222 798810627 87962161815208107191839515277205442200721310 200 652022059 1430 2897 9105 5046 303920877 687421370 3647 8053 8964 9568239241512517003 4531 929522834 7747 9302 934113084 8935 961 1871 2137 71222169324948 1396 306 74115499 1154 32871333521399 3712 436910935118881705921385 6199 9509244241078212764 11631161020505 327810029153671068923103 451911426 569521946 68324544 3402 3588100511283118230 77171408821162 998 517511979 3701 3864 8778164511829219356 2702 7366 474715519 150233201514516147 928 23681854915361 505524654 756414130 62281881322289 395023900 887215568 94322484 805412924 31992222818032 9799 768915858 78451764011005 152416981 533324172 2646 2956 7987 9017 5141231102335412019121551986821397 9348112551578419746 4883228731214420432 5955 777418519 921513920 845815892174441701418081 4926 8592168771478924771179861833322370 1871481622919 520520653176941175316500 469322068 2855 3955 3678 504414640 451812532 4869 97971283617499 16831605616692 833515439 9327 174424770117482136613953 285423078236282409316569 711915539 5786249801502417329 81212283318511 242210797 2761174901758721865 84313642 26012032210296 5243174132084721600 470616885 1420 156119077 171517092 798219968104711086116025 23119861 3759 5131 6177 51542267818982 7246 7471 8156218962260916269169741794716718 7891297212644 15941110612326 40181762410575 2118 4152 9051 4187220421558522963 5601 5694 799318127 74201593010257 7697 8645168051177214190 271111760 71212418611559 331 4870 3948 633012401 518723114 705918385 99062096816588 65421105722041 493 7437187012361721815 2302 387222456130911471817376200082433622443 321314895 650612026 7809221511736821833 4509 699220887 5416 6897 84221075115666 81751911313208172271442116585 1192 967923226 2838 4246 551712848 6541171161925212395116712041824084 34751443514984101352199511714107901480119470 8597 8886 569616242113481363221869 863817041 130194311455022674161001830224258 4030 551110209176951909020426 619820051165522420124254 61715970 670318241 292134041727221280 3677 502313092 787811956 4980 5450 5552 7492 61731732211890244112006423352 76651928420086 421 1354 4224 479713375 299115707 3356 3681201992070224538 3888224442291023711 6708 665 488521629 933012399137411519619057 3427130531469316133 8467 9028 345514385 57692386918201188191255516582 3752 7029 4317 45041660613246 3418192511981414379 3855 411521725106771054512855 11041487118597 998022434 45142370323123 83611884423995 87312253 1130169592165513057 605622571 90301359813584157232465721965 1131 752615896223482275620121 7935112702066324891 693123426 4081200410060 964 5454229481064622346 100922058 526318198 813423550 1120 3346 3626 951820787 41141942123413 604713224 239239581044220798 246 3685 4547 671122894 825810031151411808017921 424314072 7981020223623 2365 139110216 4063 549821312 3079 981319629 594214142 921119097 26792496216503 6041 3882 415619885 739124020177992192412440102031452215254 641 909 3230 7606144421493619504 2232 295119538 7211126451298516551 94824165 5652 80572423412690 222723337129631656019275 1311140901854622015 16452048312437 815112196 194020123 2313 262015663 6029 694024826 49361746321398 837522842 65161575324326 5529 6979 5531 61622029911903 5170 7508 5875 1 4565180611411923325 1637 8710145361740417289 26021194515390203401913819182 452722353 660923516 9383181291847922868188632195015405 63717663121391854424952217261123723367 218210333 6319 78961515624626 6956160161057023795197851344915445 377115418 94172053224922 6868 799715942168891241314452 96761415118373 855613489201512061022765 58014080 643415228 1178 5184 3195 3584210452265720314 9873 2046 8230 434719214246521049923071 2060 746517156122851045410666144491311923899 811315979 8837 18671044519530 48991930710251167951793121154 366 5887 400212938 1280 4922 68361721122298 99511010323233219862203919659 2409 80401121511621164411251421071 466 764 5995 9855159521679317961 949149521544715069173251960922229 676 4672 6933112382144124811 75215331151781513321531 52811950714631143962144610723 1016230621610419148114481904424535 83692235118587 8415165182118411744 899013395244501146612663 128824052 63942470717938 2431 263413239 3224 49481254424119 4323 5804 1747 40501051722116 610224242147471579212634128101751324819 1432 212516081 25911237220292191961329319264 8899 646716367 69582134818325239291135219747 3376 494220485 9909 479510467 867177422217318170 36661525613960 6482 2859240912060224267 4675 77661049420942161291931323339 5065 889817887 7460148392311523410 9777 479011282 50712108017138 578422338 5257 8157 9381 9551137682268616563 8768 9177177942458219316 91361702419287110781411116233 733622569 102921841 90391847315193 915522282 121024837107011457918282232141322118218 826212881 160121110 5807 2442 9801228762200022950 40232345013072 159324376161572121722567 2813 8030 8408 47871033217593 2746118061360616516 2751 4957109522497612288224142397719830 65115645 1256226171087922460 1448 4415 751110344 126521308 1906 7726 7897 8001147312346815668 1101 2138 776820134 249614557211021667816799238861676022573 6866 833210521113361415823351 886323665175252299224493 948715810243312194114049 2778 85782022718742 591116314 5777 90682091924906238261681917040 298518216 41952336211803104861513821887177162114022727187622196118771 9621667512528156731674018513105192035114918 5483 4145122202077123482 6769 9869 3505 8051 97921044719357 708121188146691182218171 702611236189901195223663 204722760 2495 78752277324159 32911324013844 525513377 579623685 267117732 349611637 27171625719633 5197 7342165581813017778 4590 572115969143252409015989 79916749 8665148531987918430154672037723441 2440 790411383214761374616627133321723110331 946 283317108 7222182682169012222 66 3234 76291303420172 9173 444822045146901680917836 391812111 444720735 126 2349 5347 6366 736917680 87621019814253 9152 2697190621516323787 4200 502217250 8818112141351614076 85532186816723 1835 74 345121942 7819903 623824400 5315 935517937 2551249581323314444 1884 9436 6065 521419946 638913776 395111211205572243713727130141459116594185141609613622202411049322117137402381823007 20414308 3826174562123523683 8648150451765410024 9942 908219299 268024487 5235 774018403165672386320883 326814345178982438410300121821847223670 688 7042 6902 81951438116235 314610502 5614 27711290211326 4546167381934520712 48601375322945 3148 493818547210621691118672 8789 937617360 99542303324453 933812940 693717265 645315504 74392155413544 7360 9926 941161551601716034 4473249411197818345107371280619647 2803219251933713697 128 6957 92502380323074 639 43791713411230 4679212781146210544181131449119806 182 3118 898114221141831657119499 72215287 813 2438 3792 785222321 414917956 6484112481160513540 581318375 946423592 772423405151502253518992 1583 9375 750419167 4045 5972 8276218611108014515 982 5227 9684 1252 305616185 595117953134352434214331 62861398420540 258320573211301355122785 3107 67241151211560232091877315002 55731199221911 406 85871467813649 922221905 5702 1571 80181226123660241921592114748 6881 818716350164861354315363 3976 447510985235291979921871 2990 4289 55691772621153 621 600510148 2067 3909 93212130515808 122721587 1834 498219456 29291548417054 3142186401996021032 564415329 73319587 692011047 1476193381491122784 489414302 31352114220212 87232133116040121841359416943 317624614 8174 1690 382716826 80361582020318 2888 931910488 66341328911663 2026 62682220911247 52611798 53351198915692145611731915189192652238910686 991 9950 257811820 1395207881577016044 4635 7660237541420614629 468218569208351314620650 3563 46341192024003 9666134922169520558 939817793 18311572723048 8480 975610577 4119 845522387 84401825610184156092127019314 104920855 7509 220614018 853311783 32061884722402 730813930 1823 7573 883824590 867213173 79301075015682 298810131 536322100 4352 5011173121156220754 609320915 5195 71021691918667 24411190922648 244618148 49601851820501212731141014272134172319113832160481342022024 2592 4817 3449 25713869 600 16681628316117 252014623 365215793 68051780019443 3973 7675 8358 68114793 180119987 58241765224492 216623675 4656 9139 611 4076 637912245 7016 27291839916868 1803144811967810187 4560 8741965522650 607311873 84411048412172 6091127431234320864 911178811503017656 1540 2943 837221711 95161950623571 187310801 586117684 360624285 8236 32711455320080 3835 567111151 491814519 91421200512719 446716941 612822136 620621470 7002 7570 603821738163801189416726 92862096020046140362060914634207752246419080236211755419805 3487 6080 939218776139801382220826 3844 5142 4162 7948 9655 5134 693016977222072435422372 3914 318 9860 497118049 346 1587 9602 305113636 7792182421204614530 775 926512010 54171131624851 3437 536821898 389912909 9779 362198822270921509 349014844 43991339323432 784714193 98481699818287217962359024057 5996 3922085110817161441095311796198021320120428 46372385920617 684214239247041345918837171271952521722 285623100117241605223672 92571172219961 468510568 4810154081952815735 465 33541780911688224232388920598 619011504234471545619453 118311100 3861227231438415099168142345325000 3880 6854234741627411808146251835213781 1205 234310674 7718 245818182212091352622318131711531224611 4460 717812323 3068 989124261 1122 373316304189381587410317104081920710854 9672131521222110679152061701124594 3157 7602104751724019856237751169520463232392367721471 178112247 4342 41361461912500 902524443 989421900153941587823739 53691747321462195092075621567 194317696 52791079119894112661886623655 36732345924238 483412064 76811588617814138802484520595 646117863 9606139921945223982 381 1729127462446316617 4914 8640 1247 43871715718975 5284 7983 715 411616535 6848 81851225712203 1752 658319165 8061 199910697 1501 63991060523918 2612 9919180441899924541 5252 967811668 940215796 90101070212611180102211524397 7702193952170312466186761991122142 61951626017808 6882 5042 811918959113081378514621 45371742424359 181311114 8348 219691 45617016 1310 4272 253324728 9175 524113912 9901 196724677128001633122855 832512408 31871328423613231541096122870236791508115458 2276112092224012916215811540315756 963020148 599115168104112461720153 2471170512601 83421502225811303215035 585 7468 4146 515312340 6671773710756 4389 6534 6619 7616 7696 833917974194241199417562 6405160121113016323 7193 7575138502053823042109671529724255 129524294 308020196 40431200011037134261914221417 136 10551750720171 2852 584315266 330 690322970 3111 698518464 53841786111858118871900120451 76101576112748198441339718184 5032 50881973015788219761476814437189191570417089 322023997143562135919166 34001001318838 6454121921447812612127731500724076 662184041045220551 363821053 215424421 290815891 3668 36191551224838 974524587 85819364 5625 8738101882191814122195991491922114182802010121753 40981491714319 67051620913708 3000 72332028110757 877 2684 99632294724297 582121759 74531328215836 43071175013811 5779 939717307 2554100142429924752 15291302423585 96571084713392 39031902613756 801010256 6759 993711065146281807823109 5201 545322885 8844189771352323101 48324661 633 49751669319276 681310531172572041714125 113 240111889 2761839022167 644105781109010728 480 60941133420232 2966131152216118013 1080 240022546 23301774713661192881787522249 514612654 5211 56321953511615 22292180612572126711302510042 26151723221465 365415203 7525181021398824806 8033205292354311736140931289421780107071803821138 185104692308622697 1164 6754 665412738 7902 1114 481219469170231089923389 711016135 2847 9971 287822328 7590130062376322735152221823224357 60101845122432 514 387724270 464315947 1758 9275 3655 4692 77781020710399117182373410957 4589230451940412892 75620868 384520749 82081502822439148101477223043 95017420 168916300 8264 820520592 4091 824410739 996010794 2158 2327 9160107051914723702 5268 7595 976413514157161141420921149401852418933 918313106131781446213483106501147024110 116 3935179361934024548 6631 7384 68271428524312 7013 912120216 371 33531682010351113661246822158153321703024746 19042352720683227342218222074 5919196852375523847 457 13931761224278 5474 751614543 902716240 961122018 68401848620030 840911118 13321665811919 2773 96331942924557198161238417932 12 22851281723589 918518702 3161797015093216981358819432 7589 33371635610439 58141030813151 893017668 162917943 6089 6184 78761712212070 76 707710090 583313616 78001615624049 7132 989615710100691617324347 436210073 63381244313755 8357 2243 323910560 60951599311866 798117073 41711892113981385418340 65922631 5670 740120562 753720545111732130910059 84172203610124 476 82252121919902 497 1190 3839 98561358218978 505110137 665013160 495919281 49812889243501401923170 614615136 6144 9002 6806194021291515561226791575024632247301828922790245532080621448 14581047221917 56901052412369197292292224471 13601056923270 755813033 6843 1952 9214 749112078 730414063 98831624421903 97815665 5481 64471670111454122731235515366 89452458915202 1267 2826 4159 497610055 179123330 19721488718916 689911685 714112988 865217055 1004219621426023784 1043 115111774 287113313 3285 20961230516548 34091297722874 6508 674417248 3486 7973 8048 575224256 816216788172331308618318 68012255 878123658 69411439721212 92711189923173 912 13381235315470217791194822814 6533 993416849 617918156 169613978 616018967 90741530920502 3545101251143015308 61 8892 480117213 21131384311274 2367 307015661 5917167891087021003226101745519670 5025 5041 256 250014786 77341435421710 9928242101389019643 5890 286 6509 511211863 301611362114911641011464 6695 1446 40672299120166221372049122807 3450218181951121090 2334 7603 6435 515715346 27962444611540120582455622264 4161228892060822824107341171019680 712820778225011242214939 88 873317269 385217278 935214117 6841 115914673 1171108001185711381 134916473 27072468019546 2925 4554 571719718 7311 9838 2567206792187821588 55631052013181132641419523378 898917776113101601319518 29918197 275221997 8559154291521410725149251454715996 600717389 725518925 822313148241441240311556 319 7137 659820794 40715071174022145320902 280812749 825523146 162811288 7524 941314335 822824459118721172913339 252416759 9109136191014615241 30541877714458164271721420249 1244 1411 9135199501102412726 195720350 5566170791744123948 184424418 3813 85121695617341149891268323696 1543 4725127171373216638 707812350 248314248 360912205213371550319010 77691360415353 3238 464015961 51522952 2013 2280 4927 32461748115486 8952 9965110661757121923 902922170 9207 9472101551847024561217982399913816 8222 868418389 925413113151491168023653166371933117184 378918699 7628 65561905915760226801353824570 3952227081033824130 7201792710441 4069 1717 6062 107416141 806511706 972116161217191571216720 23 9539 63451325713529 922016916 36721742617105 530611687 7338 5457146201317222133 7911203671101323601 63391234924660 8536 1291 57541833219661 8954 3420 9861 73631642412873 7661 939020298 9231102551676319715 8681 9649150871884318812 345 2095 4748 213523687 9900 75491236316712199711868319154 407315077201021199112734165901261521634 3641 7650162271515117802117861771420096221482115212307145482140319843 3343 3562 5976 637616318 97231510619239 987 1031 98651283811998 4217 4774 79362378524408 2674100251347519836 84842357220769 14131236720338 2033 388724010 3358 9261 416613787 28661200818553 278511148 9625 310424607 436316856 758622124 7668 315821126 466224467 9073 2256 2735 7188225331074017926 19811249222139 44311275010383 3153 9644 20718515 9717 2122 7214 66131283423207236671078523911125971717920333 3335 4788108851599710940 5533 605517579 229 14061637718785 855 4426 808124900 40891382810923192051492816009 9853154911148921830 317021263 961521129 444 3093 9111 99782440120173 79124787 43642153615900234971445619914 118514909 2876161092496817081 60151698523224 642224876 7996217522146424290 3311 7003 8237103702133415197 75272022213914237961520424286 936622732 8346 84881294116422 232 8839 660318353 39172139210285 9299211451504319897 252821945 32791025913303 405112522180122381721805 4775 7764 31121566 6778 604 1335 26221209813342 453 679217882 833811319140051436220280 86601348221792 4746 943320876138661902915693 8038 283617539 102 156613860 778817262 54123802 6975 5473222541029321060 159919694 26241449913600197322076511564 632 301012669 408812136 6851179871039119547 8653 7903 314515833 520610481 8542 9529 50001254114865152811943922083 6148130742281616783 59471518015901 370611902196161196913712 103317675 767012632 5606147201329620389 6277116861205619322215011926721608 1913131441561316694 990 814822311 5940123511635919096 134816368 872422288 4113 8722 38042304720223236941062412681 650323838 747 266018738 7713130781342921977 246418039 590123887 92662023821341 238813265166401841518662 78602114412324136251200921073216491472322065 3580100271165619440 3299 7292 870413391 1059 836623872 890317818 42181566914219 3290 3707124232488423054 858910037220951489715198 2202165661073020208 505322405 5685169351197412819 920518203 1113172922014121874 398310066 590311205 2481 862322066 312819738 4240 1727 652212319136662210324257 2670 73091301818573 6653242291125416621142511347717607 22941796314247 1554 546310644 166611925 182421277 832811468 7563 775512169144841511419127219282406613066 608821664 9311 13 27542366913138 105617630 2262 99181196814954 977 35671956522141 3558186311060922689 4226 82271747820029 79621553516409224801258411433 172 829824059 97161238014847 128622740 5067 738818675 138615369 35162236316619 1930 35072177524009 4953 738316234239782320011849 216017342 371911914 78872078618372219361104113207 759721389 248 6210 9778157362493111590 192714539 6594 6743 350623507 765221760 773317218138562346614039145181639820780 697011364 94692146119269224851245315142 738 4575 1424 4282 8951 131415743 15302061420031 564316976 35971267320865249631177911951188641039614376 23891721722457 3024132041582922731 765113314131931887511355119061626418316 936515243222552221213111169021636221605 281512488 53951635113707 318418604 567811640115682393424933 332611295 8395 1917 62481958024465 9512820 37611975811221 37561463224425 28291353624532 27018593 4848201471260822552 5115 31313226168752301117759 1777 9765115201474920202 4689 944517560115221014415095 5523 881017480180211900519342235022159023382 13231636420253 362013473 3822142911062019020 952617576 574324173 131514368 846112238 961310446 2892 96241638816030 5086 3365 4941 9720 3159 2595209201190523956 980818923 52691914010715 4752 1655 176920987 5122 4233 7364 596220486 85841118014032 3229115461520018836203421343216598 342414156 4093 552116293220782136024793 3566134742383012128112981181623951248902329924658 950122009 46132298219389 537512973 6678 90971658922128100061102521562 8835 559 79371280716443 54422285716238143211739122323 2176 308815844243521838215631 3471 506419695 46591822016511217731700517277 630 3659 1239239401471217235 206522524 771015500209261053515945197052497721043 7240 866811034 1841 5351 939421533167501700820998204122436821628183492151924564 597818376 39251621315876 45281318015932167551488521255 887415697 475621707 4838217891202124513 671 1198 36831221818523108501704319216123981644424481 2144 576615427 42551060320803 3410 39461751020861 8743 513557 2843 252113341 465523597 298122150 60431234224563 2218 455115806 223114389 417914318 775414197146421250623593 9512108442424311609 3232241661533719991 22002048219967 3002 93131011312830 51511913418761 8891 59901825020576 938910523 2356 7711 2517 68261132521113 46712284 6455 9938215722262517379 916 1083 72031471020193 967511673 7062132681340317749 17 76941621615882 2807148801353121015194601517521024 1145 273223124 40241987517648 116810671 7317186111510818042210252144022604 3380 7593 5952 8953 966013752 660010495 718718586 835124249 1469 282515579182552072612130 561525014983 2963 6582154902461324861 243 4331 1862120471505315120 26492058720660 55651068817785 3202 886014535 42961069116737217461675321356207611099115946 2921 458 1907 955010276109441647117728 3722 886614055 3281246351890223883 7761938016078 203217916 1146 9083 783166001843813513 23641235616942109292437016668 997 174111158 469820359 4001 7190 53171768620811 246820642 781617090 366015552 95811787918123 72731686021131 39512507 73612455911142199131499821460 117614775 4058139681908122168 1821155661208024439216822295424990 37281531818271 523 6372 2165 4471 2643 395720441 317323730 96362069316854 87541473324855 97320923 69461264614252 824524930 4205 93072401614698 4075 62541023924684 5579 842615137 8537175411975124727121422024312547 3928 71031506419674 9992 6018 988420805 976319208 8384 9006151101700223885 854323242 41071275814023 7283241041547315306 604610354150421698719906 990411452 1138 1328 2151 407815034198352474313571 773218669 180214763 597316968183882172324813 2163145582060520789 6993 3012 782314182 3312 588324086 898516975 33271838723142 5631 92131701913227 1376 3318 8419146551962412617196931616316175214501488123028 6998 81822248623436 4158212211643118956 6108 991512280116242430214179 98417324 90082224717840 5608 589113104 170211014 824713345 572716659 7159 5762 9511149271330711170152242253411091 8619 2490 7101 5926 8292143821840015469 153 143914533 1308 434422758109121284322049 189149232450114831 19824011 89314232 7014 1417 864921530 173512071 1510 734814310 1604 233224843 27692406217316 6991119581902314423 85071116113915 3140 474118643146882099923713 912622588 1488 7343 8618 9505 6893 214924355 932319610 923721391 3272 5338 23731382323025 4943 9565 6291174961309320317 352 310614006 8506 908 4274 894023846 678411268 1051161321072411597165752060317363 31931399021747 51471820723620 9292 475121171 7820241071376613904 8609239471855010968 174 555612766 8850197391335814309227501203023243 6661184322056610619 345614053 870315713 4667 7855217352293924008 22212128424385 4464 232424879 5618 3591 83362099312629220321751919595 35351624119286 6231 510 718 7476 443914569 7158 72161648721442 361815873 82191328715904 965214542 2022148901905518677 249411309 743619564 438 40551412310747 852317582 77911146015701 8726124121208312696248411565922737 79523723 9700 6119 8107 6151 7494211731728724389 3379 3561 497219238 6655233981883022654 84851707824233 979421350 8495 17621799922297 30111009122453 8435141982069518710 2541227911694 322 564020825 1527 4351143520743 269513277 7701 475715634 7265 8181176151029811712232941709121551 63961107619191 813115755234991050123548 694814293 7404 202124121 423910742 3675 44961442515719 9932118972088112439214751217915442151322294922718249441993324634 2924514 257423581 9596 264220753 1316 730112225 1491 4104 4220 160318854 314413764 5083121972109213350 7419245171551416722 4480 46061193818163 333417552 589 2482 8305 1423115212363524431 150215881 44531292021040249471935923301106542390618607 4199 499223208 5797 8842 6377117201629616281 4438 27772455013087 1896 9145 439814981 9995 274 29391988915918 251314401 7426 342121787 948624708 1023 76582387418906 3596 500917722190952046821549 4816 8721 6640157651127314473 2038 54491061724713146061473018534 104110826 6105 52192189524889 1337 6490 2579164791459523475 76301703811840 90911973322659 166218873 4037 59811227622891 7370 315110777 729521026106451262313379 702 71441251324872212261807719379111792277120834 46992076322699 89271079818029249611523915933 9351771719312177381664218560 1334 1621 8841 4498 356410050174491813520474 1149 731514825 260419454 420611790 5223207131778722973 2380 247218794 440910357150861752222451 214711675 2185 2899 2426 5638 80272334216177183981743921097 1585 6404 7107 42481165011129203711718613673 6383 350111474 832416507 3548136121904117804 8404141612198816206 404417397 9682119301042711416 8547106641970311380209081401522171 18101767116379 538 13821099223600 5798 2893189461752122745 8460 9331 94781150621249145802260223816 78381076113928158711118518855 84291892416914 2772 3941 5394105761439524184 18432250616179 1567 5597 8196 62872002322071 2689201421332224572 69641453122606 2617222911016422585 63321816615800 7663 776313967 99991997224437 6561 937914879 1863 8241539223624 3332 7024 90151225614935 272816537 5309 278919129 3575 1475 9854 780113297208101339013234196922480221439 691622292 81161271014875 252717860 4135111081827414434201522433914159 198717942 55181185920972 2849 7965 4336184781663919697223372064318240 533 7674 82481364819058 561 2376 7207 286924662 755423219 468115687 1792121221117612531 121314490 366122583 171811747 175514588149932033017052 4157 48771569910267 194816385 4184 516714503 8447133731483223879 7645 88362307720590 56414171 535213462 215323097 2236 759210007172841645916313 4174 57131236810497 330611794 1437 283212126140121920215249 629817967115611797917816 61891699516084 663223867 6581 828510015203161666917461151402131722329 2799 82492325024374 8197 9444 5735134411481320593 6625 1537 2326 72541973617400 922813102 803212768159092017616180 108911514 222817237 10961339914057 4335103201037212292 1539 3095 78501160613424 287718279111131763112747 969813971142362000624061 241316839190361625423068 970919837 4873 615624386126861876620370 2733 4893229582007211404 86552068716967165221800520265 5591147621024023896108601866313062 711814113 42611809717066 257517177 63531043221849 577 247019247217442495413647 31171658623950 717119935 1881110512107822037 40381277521611 51782071412272201061567719365 3253180592229323747 545620652 982022077110621364613691 510011061 324 7843 6 698314791 77 46412088413364110092282612479209951374418236 4851245681090324975 564614659 9976 987120572133691915623907 871141532403711922 521617435 234220179 79762111211339129661365712302 5669 6023 19623866 3818 3369 8943 2896 4118 4638223921954420175 3384 6559 5709 718520169 89251928921494 81941194020461 103 47651857721800 402211662 731220879 7871174571582715468 3211075323129 878 1600 48421133214512233001487816521 1730 572818997 5029 970619769 534524307172212297122122 826916801176791675619324 57071976611241182291577922570 560311893101221016719423124301112524082 1785 406620594 961819478 115160102358224346 635115701016311406 1451 2927 66911120718416222312004523891 49581479723346 830616232 6568 8406 1519 202019200 52531496524801 6129 6663 5231 35110873 478619480 6384 918413873 376823794 8070 49491368120975 600014986 6071195531750220515 74823965 806321252 8273 6009159551129717590 965011096195321168120373 8822144042281923371243961061213389 24891035811049 995913976 838116651639117168 6063 75231894417972 1225150202276415291 6575 30251880313049 5250 7692 64831789718687 617022739 92701294723379114201405015187208671857622692 1989 3425232151248413792 8342232491868422051 544 7318 6234 900910403 139818317 473612788 944 2097 1828 3488 782413955 4545 5760 441812103 3212 858519652 3816676 7329 8845 448 9677177511148813294 4752067224074 621716099 800314241 426415943129101974820892 2627 4065 884014973 2768 406123722169862217224546 1531 594821415 1695 617221167 4888 68022169922375 9949166041225819847 1742 690917149 879917715 1748 5397 24782114724988158032405022347205972499123199 78041065318952 10421073312693 493714306 3699 4259 8135 6066 7377 29151435814585 74419930 54121917419000 1414 4126 6721 849212682 253123952 523411201141782165924881 299523160 8713 3403129751646418928 560515488 792213868 862120456 1688 726413761 198422532 15441372321724 8610157158401759814898 1933212871612821922 4403 8491 974418016 680820830 78412147217515 217 1223 699024932 350 30401669620352 482213454 53732069420659 7314 95971782816614 82891577719455 86422518 437 43701375114347 1091 7130129872488322941134122213517428 1487 1925 499011115 505718655113782152020464 351420838 388510168 9503 97391453717124 357 8739112641764622619 94662121524955 4853219981129415717133882326924839 78941332520076 40 703 170016334 469 531020425 102512086 6616 1299 3183 64932192022671 966823182 3133 3927 5396 679019183 5901032911631179461834323983 856814140 5541 8091 3720 713113321 2713190851805310018 3258 83112409711399 3795 4550 61501849719947 219212951 3008 7567 8477 8326 87171348521684 26442069821804 5755 705812457235402452824103 6651 7519203911048223324 290423814 988 6419 9968230321417520615 883113047 4854 593813877134221682223429 42 4588 876 846510947 1739 686114311 1772 2406 58322184523555 2661796820122 43932327724807 88232130322023 32521217710466162531470916601 2944214241777717027 76541960123629 8165 3787124152078222415 1162 357912366 627219514 5248 77211335424482 193610361 681619411 6898 972224779 4232 919211828 34331497916577 2396 7169 9123103691957123864 74301634712927243941568020620 785412478102351736722560191722459710477173132156422462106372112114455 93421086 7759 4068 942317636 8446109461067011554 92691043514173 21421085516328 95613895 56861331919150 781023230 983 241013788 854118149132522092210669 2543 867716635 81782468716454 530 7232 7421 7031 8561733515691 1373 501 551422031 1534 546710179146022143323808 34402003520686 9442 5291908217358 2178 4029 410814033 154624380 7286207811030621636 866 5107 1788 37161062624579 488182151452522691 7582135710172 314323868 6871 9514239631660916901 1660 209120041237101713224034 14571203224776100431480620100 1627 6314 149324464 3091 69121579421029 55 64122096711535242311458123737 79711284714818144711734523365 7182 7678 1774 4512 4253 99361298914942 8000 853812328 544718581 838212418 8741 8983240511014716936178851572020909226611352019201 180022638 482 508215357 808922026183132301614099205752316520875 58221841420032 477717578 1421 478513145106681708411186 536113553238111255118499131092290121266 1483 2584 4488 2875171891171614945 354622140 445910572 8819211931041724527 62501766023825 6451 76241109520229 6401 293321892 39591224013695 397910914 911720070 862510863 4367 4919 58481965318252 50491210121083 4444 56841007514009173022021913464 3382259924921 226720841150212207515664 5421441321715 3407 5722 9081 59151288214682 7984 1848 2515 444014538 3915 5543102251771911262 5929 768023264 4290131642033511646 5292 78212471612354 4993 703215791 51262224511135 70722365119625 73451737523030 2977226011451716197 1504 345811642 294620764 70212349523141 421921541 9588 1647 876020985 419 5477 267517873 9370101761017120118 2296 239421593 9488 36881420215344152532053023496202142044422352 578 487524473 626423579 26261737820237 166320494 4470 294512436 6793 839917762 397724069 5969 720418792244151066121756105821373915090 380623949108671748224605 51 2493 582010405 955420522 105418694 276718212109691357413603 210514042 6283124001463314529229141887219581 165015819171012288219666 4348 5085 4811 2180 310216014 614011267 9831117801494323053 3993 2070 69491207318745 208511146 3736 3129 4535 691312906188972316623552 44172104815231 3663 8274 388412491 65722176322999 6953 3124 5908 5412358 351311315 685816131 227813762 13682398721216 6621 917423778 1513 5790 868721912249571328018879 254012113 2841 4521 632510465 257614405 47071998615389 28831480224552 40792229611586114471786616523 3869130222339913841127021535218804145841128611980154302210624831 6077176031799318728 7299 4462154762261615619 89913742 1612 640614555 678711419 5703 6258108092283813537 476112069 834713100 5458146081385317219 5902133491196024989 662813809 69651923124441 362311814198151668119493 155510464 530420205 5641 7946 87322055315201 304714312 8413190311760023174 630318485 176622960 5759 554812330150381829018630 2805 5935 96071732023005 3367189831389123505 4559 8617169041123216762 50621659610319 9689161541340514701152792126517753 29613380 584610110 991423740 97181695015927 575721979 8987 85414436223252247023752 22952371711472 2563 8137 685718228 77801130314859195552398422199 7656200652081823349184562124517098 2119 6290 3581196302489819891 533014958 7534 6474234671668818852 526523059 682510690119852087222544 8401518323753 9538 4587 86051444611300 6818 86082242420017 607911766126871139711531 44111722623118 5937 85521423319915 218422336 451514244 58011468415493 7386164551003020886172232361022189 2831546624868 19281801814527 230 95123403 4609 304322846 585019622 39012089218441698017783 1370 6751 817323492 638820701 928123774105331145917475 492814597 804417087 25981888412338 82461159218634 2744217361441418311 4625 6282 6320 9651 9463104102429220527 74921288 796189701951211843230172230019860177061430413921 3222 5479125791170219877 70117907 2961 5510103092431324416 9101072210951 177619158 526216841 6627 7758 6311222941395718294 464221848 956117425203792482923171180222436124204 61031411615495216192139318750 781919895210351077912374 536 729014889 98351588720556175261556018910 324522043 8879 470312211 418817290 897912685 1068 7673 30941204219103 742822897 4483148462162318327190501968819529 1103 5949 284213709 763311110 1204 86152221311970 124820912 5507 7502 81832287812431 209424139 521322162 23351598818735 8012115521953 598922277179251863724934 146 223016395 2941142802395410252 6818686 1710203621215712390171101784123412 188712737172581565815890 900 13591556522988 3156201881974920449 88532070311038 575323744196381070610888245621254524070 525 4895195372260721832 7135721461012352176502198317870 92920392 3985 912520368 420416736 46232235020433 7393 742523051 21361710316468 297314848 6225 8626 85511726623317 2219051 3590 64651786817903 7991179291267519803 930413455175432156519236 3550171461993624235 139721563127941384723493 1714 9832 958310676 98121327019475 26501015216652 35182473711788 6431 9165 377517113 7830 2623 3116 783224981130541624721302 288617857 231924483 2720 5738 72602001220357 16921437720027 220717697 68631045014052171701963220056 5681 64732108518981 291323923 390822473 9011 571213378 7135 8047 812017939 3853132061611219386228351713120386 6477 7951 409 9195214572197112428181901475824866 7577 473156072298917725 64942029124502 839117632 730524039 724 1794 9171 2383 650023649 961410264157631790510594 479924276 581021834 3166147112416419465 4103 7165125031693220364 5321705318330 770 3248 382 8725 1750 412815595 947617154 9305 9748159411206224757228031801723290 63415195 754120398 92101132916061 4723111192067813273234281605419106113631349821076 87571631921105123151364320744169052199023060 93 921219192 21811935 88811266410981 5371483821408 4324 789010109 960166741643421119 119 7139 934722183 6875 89021762314651 69621654315726190461060622410 1072042410337 6028 6039 676311112 7307 978724925 18271237021705 438322725 6341 3352084924803 902616015103882352812178194272046521384 5217 8688 1098 7450 1463 9647174051772919582 39601879718730 630017940 19421039 79013179 3110 1551 574422205 35471544115091 7127 444521091157742173317982 99552154016366 603720250 832224522185201199022160 5091421221401 203718364 228820297 58161533022800 6890158691499517647 8111 684714363153221722920759128251654017906184571145721526 53321835118169 537611711 38414448137151550819224132951416816579 3543 604022848 405614277 5551 65871068120971 6070183681119112164 42862323115283154781373018948151722415021004 8627117672267316951 92111928 2780 33421432417140 389117746 95072145419206131301540210507156481105614454 74771909815247 422310746 851616059 29281692310008126311187812871 7281 10781091117501 6352154231818323564122082282819577 9907185552253021191 2736 9230 4701 5884184221888215209239052117622976 3298 431020495 760116698 845324211 150317261 1910 47431247017741 246522242 34281187120626 8980 866720264105571712316369240291644017700 3064180752051224182145981682821750 408418600 870721367 50352330220596 547019517 8921125331677324777101801096210407138961843113187200742499521929 31092472222883 393718958 447713771 2039 630220767 3053173621231022322 628816194 140 609 6523 73341779111342209861850723338 1443 956316846 478202681932323932 2164 4384 826511451 710 8730 97911758 2215126222473212668132662393315737 874910765 755022108 214168572074115169 4251 5924 6212196771307619754 1949 7942 843424490 8359160262265521064 2197 825222717111231963620365 718314562 9395 9727 42751995417858128572157322646173921293523596 52401260722517 9090120011308819737 14492491421507 214622360141051689319929 356173951803523736220022001021646 157310325 2139 560717743 1878 9817 6716203541355220344244482467924852 1956 62562089516876 5420 581224758 3405 7808 82571358313108104902001421916 3172 5366 7349 357423368 807316597 43581173816474 7895 847219390 82181000516071 926224438 630820555 792716425 9585 83622406 535312944 6954 1723208601455221571 2858 4665 5782 5959 7745246431060814010197761648216908 933918393180332144719487 4639 5880 5732 4896 7546 38461121918588 4271321321620 6870138032189015621185291161717642157391991016083181092126721720 1060 187919584 1736 728022714 20141363420329 4209 5298 8166167471359115485139491714118778188012264323138 8374 84711991221728 1579246762099721614 2030 99961295821854 439122907 1815 521813983 5854 936220700103402043923993 769 163013555170501249324964 4326 841221418 933624146 1202 8242229341430118650 792111160199981809419540 71051995924945 8658 764616348 728514926 9251 91631882119873 4542 572510104 4541930014160 834410065 36402063921919 992711959248971531413783 360 816 8099 1117 799224365 4368 643711870232722107021816 60591309617454 440 7507 8029246741308321873 54441743411128208701133520773243881009220691 9061102132257923004210132377217242 141619377 35572318312498 3038 9988101751443322146 401712230242981597821430 736 9202 85041631110793225541226922880 51642138324304 42418003 39631939315610 42071134117249135951366414180 1097148911910514745 211622711 3180 708624395 526116573 8880 2905 6641184501872518870 839 518024237 2391 2427 92381187617380 652 13751851219149 1433 622415752152572210222639167392000220570232512149921351 73511693 678216148 2289 336320403249671324514728 3924124632403023340139442278716711 96916683 71951280513186 1712 95361156713586 66011832810526 661810599207301865722550 8657 98124419 8154 200913448 2058 4947247111277122804157321683016883 11 9789 8214 9621 661 955823443 7510 84481578218288210271092115671 536410098 774422886 1264 33911866824555 148 4054 449222426 797917352181552098122893 5063232011354524694 135318867 61571833511898 763812518 18611490132511699019502 2109157342413315194 6855 741012085168161835622001 358513836198082188016338 6839233601408921545 1075 7039153451677424000 4437 8160 632817259179132485621498 30011420915236 65352286520094 987415063 918812066 5249235561589720548 75319137 612619963 7588 783314230 5830 8763 10051030715474 8462 99131864813857 49861328321853117302490515848194031387213346212791427514551162392451614808212641542020581146622153423766 1300 9430 26352173724751224482439824996 2851109072234114129 549422309 80351116512875 4904 9839 6092 24611290517012 2947 640312158210811677122863 5677 744411949 993 1479 85542439012311 254618758 979811910166181745223188 4386 289511812 45961158220549 700724877 398823102 498711019121152453011904175112208823849 613917036 7044185802325416811 907712079134912044713167 963 950819378 325517246 75851157112641119672321616279 3121 6760 404012610 6543 80422151716958 676821224 985 94161089622720 5256 586214411 7076209541371724769 97611467515630 17451664313527 3758187801814418548 76792356011901151471615115073 138512952 19661941410848110031686912627 29691196115398 858215238 605219495 62701739922647 6499 9541130771128015672127961286124472132712132724624 404611679 8045 726816229 259419107 7230108061406017384 81021384820422 143117912 2186 9811 424419607107521204421579 47542295116770 520312485 71551967511634175231944211975125372176220262119661811024451 5612 96351272014498 586718943200392158220907 882918000 33610548 4355173742217820552 766 78291591014118178941654424672 657 2501 3175 4592 610911147161872171813406 553221761 957722529 7199139022434124569 7529 23921287419660 621119519 885211153168802083921631136591545717225 6054 773719133196691026611089181422320212469181261849314336124141609819346 4469 8402 874815299225432316424219 7217 9403 8279 67510829 23841956812741 856514616230231561717591 3303194302424510665 89162408119008103901543723091 34313162 298618729 6390 537219634 6844101081372919358 749018556230371164920021 46010884 774815563 2590 8995126611196214107151521136716592 2379 8761 3840218221348121296 1341 508918614 3995 563413051 9641 57912047022781 332010136 6313169171096620266 94002084815416 2935 62142463713700 7194 814018530 3740 8043 562011557 74141521623925 58113198 7831 1155 1595 8097 52751028117411 116721532 947924926 33771325416460 807416572 887 4889 701111544140641113317083155362345516199 52881036711479 8270 3013 49341603223275 399717282188811823824308108071760221837134941531024013121741892124409 317713825 74791132710034 3665 537416255 83072268120183 137416993 7789103111076222306 707 412417166 347013958232171662423792189472120719832 59651380516709 325414696 1874 3027 75511966524920 3065 6138 881614743 6895 7253111521248621933 586618628 8469203991872019217 223521883 367112521 620013845 132024956 804616732107351845916357 28820888150121856819016 4334 53261186713754 2532 3364 876510099169471333117339 36271088616716 80142446617789 9218105892347623583 8643 387622519218072464122967 7088 797823193 151819654 5567245921942823356 2121 4267 603422706 4457140651647618334 209107451603616110 656623756105791610817559 2307 703519498 1035169342375015471 2199 81901137712999175831683619417 3502 917810796135671209116616 55601172615303247901944422417229151812819955 8942 981913899 56502275912790186451320213981 2110 4167 8470 423114475 4618 2653102062159219246 441218246203931434222600 5860 8787 8284 1102118752007121123 5008 53821308021077 112812327 3583132311756122755 6727 7412 7643157831998522044 2467 6378 4591 3228117771912017304 959121996129622075721624 2817 80311184821483 3204 7258 3301 846418859145751781323234 904814162 545919713 121623237 42161154924005 949519002 2145 642712264 96951554415097227802302110009164202357719586 651914388 863620795147161619117485 205 9000 594324099 568 419324043 6551105151310313560195892465323463 481900410846 979122564 111614649 275720673167911915123559 542317830 5303181731006110760161252032712035146662185114819 846620655 9200 5920 7223776 4144 1409 208114601 624 3443 909417390 559622540 629622278238781987421980 4164 97381894215009187791951516927 5855 677917306 59462227924798 94051785413837 21941730310835110112112524185124551516614101167302275717862235342212013833 45981484520792 84824032 20421571519956 6120 924810022148922271923418 39912637159901014117544208332484716775 84102071512667 8594 471 7950136531541221513 971 425813243 5654 5772195312042024778 7572324020537145641593719220 1266211092439224475 46311080314870180411997319782 1245165462085010658 249921981 45341795817566139221810813126162221795721258 4416201452196816327 5054 831818562 2548 8737242711069617988 511317215178842163324291121402450421075 2488 6090 548810081210502271617564 2663 6961 749612823 1358 9841 1512159681011813724 2242 4410 9303 9020 817219305191621877015039 781316069 5232232981549715787 5856 65951538316321 1767 1786146521728519787 48611345110373 1428 54991445722327 3329 770818260 99241772413267 227423632 80319131 513812592 99232100924160 915709 6110 6440 8610 785923393 92710837 4581 4366 14021363320511 302913521 170 1511 1872 697819363 7027 8644 16361230413306128092322224412 657821074 4591469912897 2143 90952476019558199801627824068 558 814523930 942721208 1355 170512162 42791885312015199311952218976218171112621175 122012526 8599191362390815212 2198 8071 2997 5676 753513986 690611591 923314754 4461 74181155223348 6276 628916103 160517797 564523449 181812727 9337228711847118599 2017141022482416542 954 8783 62132380613386193671617210112164381567819543 8316111711134413979190941582418755 1333215531338421028 141015843 79591128418963 27241939211465 6137 768315492 219623263111591355018620 7326 6438 6772174212068910192 87842280810001 777612389115841505710258138002431517973106561390522768 320191711193622586130001676615789 2064 49451701019717 3324873 9609 219 2911 10881922314387227132445410651 7231635824585 66881709913852 1470121541140818949 4516 8676 67741253519177 495 68101815316918 760414287213251531524106 4198 7972113371163020026 9911 84631609422272 91332181210382 3814 6375 6486 449712060 65711372819194 1111 1892 4691 386319864 668722333 750122487 4650 8699 4657 847423922127041749118248 4406 5997 53862266022658 31632080214956 2811613024739 93011877 2357 5273 7928 3886 9432 1489 9818 4057 6864 9180 60201137113290 490819028224272167821814 303 21271253414017 510216808119771472110201148842218815192188862129520934 45062142023503 7703121321236024615 951911817 106511349 45841576820804 5357 591 7469 473711260 5589 5635200131689417204148232208623644 138720347182972483623664 402118392 200513767 8340 96341895118731233951177512596 786216735107381687321427 3879193491301118767 675016781 92841643516419 2129 5930 592 51301854515741 61742054214273176041687221850 957415962225112482220302 65042026320310 6316 6685 74721555815311158342058324648 902 729118832 2310 23851793511620144641442015762 1784 1941 4485 8411 7782161271629121781 580316650 773 41101223615638 2916202101286514571 4257 6643105852296811421194891505219110150921823321999 252618765 169 9249 377324927 131214127136151735321757 337114820 94182146924452 48261231414874211461976823331 224814726 5179150082417517997 1564 5452 86691933519488175302227623518 255019928175371798121872 1839150182242215229 59771473716953 545120432007319348 1301 3910140411784918052 3249167072207014809 325618002 4806246302079324199 586414955 510324367 8138 997716939 22841242022905 59981136818270 1380 3658 7250 13901818922682 1680 22712367616665 76762091621005 359515460 39721875719496 9921 3465231842053110117139392137421133 908010377124051428617151 4130122491076711988133981736124491194672073623384 6237 6355 775713802198191326118510 2582124511420518383 5487 1643 321622445 4484 2861 711719790 426620090248331338313463119951625116513 43321524616892 100 1582 7170 8734 65451438022220 206923648 461224303 499824156159671813323417186322022120630 534017095 813224706 8407228051237918623225211734419257215571759218453 1486 54901849612092 290021011 691021336 829422861 882116780171821725624511 167516792 39002079021411183861878321486218661256018125 46611773418447 7100 52761581821388 7977 775019984 9069224991537822507 32521862 5155 445 7085 221223052 6846 9016131391439812361 800515685 1132220872413413675 322620624 6418 8718 76052418812778 12701013423465 20251166112406136782134510017 216920366 809624485 9612 41001623015542 6976 72021311614507 966724115209131293717594 348917314 6696232742352212201133001275213465 1532 9622 29531446523779 44361472423966 79692226215950 2750143941496718428 2806 4292 6834 83891447222786104561304021477 64322938 92062323517533 840514044 965 814615714 3598 996924461144771968114327 683017310 67661050422796 2306 51601232213747 76471686523769 27751399716806152331790920682104592016512011 1911 900717326 7069 45671024420809 5379 9098 2569 3690 2712 810817780212141308214650 7051590817852 1976 709220534105121251914482 3530 7530 7729 979516453126511512320235170702193810189110591781915319 839824371126601485116922207082295316070 230015751129042052013710 3067 3999 7539 877113911117542094513023179801375016578 8330 32623085 41961534317556 6850 6281 343215814 479419921 3541181061185516587135492196921466 9191 4932 66821552124489 35312185 8364 1259 905214110 18501999910881165931297123038 714 1761214551602811167153511209018204 1737 6515 70631592222159 244421937 2984 5371 2491 27262244024792 5506 6701 818617666206961947322072 426 88115085 560 6306 1418 9993 4917 953712939 5740 900520510 1606 1807 6417 8079115301596016087187112243019279 2415 305824718220062193224194 114019679 42081514319043223951545222420 2352217651271414326 246222904 530011821 5980 94472234320925 197324992 8169 359316671233041970611824138811321724330 26111539517880 4235 4892 479316079199771585624054 68919817 346210635 7580 9845 44291381510436 509712674 759916602 1243 1520 245410764 7115217912239922235 744224432 817 366215032 565322319 174024113 69861141224794 855524015 8764 369519981 63171951014746 3916 692823125239731436619468 394511741 7566 8283 89722402816748 999 936819753215911160022888 296214946 4312137141774423500 9523 61411686711289 3539 4479 9592194911063022909 8794247501184714850185952041917148209441324715935 241410565 7451171941312023370 556413456 46111756 647616126 748215186 9758 7721721219708 1026 24392401810085214582262321283 8882191782442714687217581164121580171442296421116 97371923213028166251558317991 14971232123419 8962 9021 556210232199071701520105 8171 570 7889 578518964135562472014565 767 808717128 88812640 879013631 31891825310584 34851875221106 14741795923969 640216445233471354715350 882 183612270 472624864 9161 532122510 994022459 466823083 1407 938716418 4898 6753 10621483418344143601602216433 5193211481262416969 2800 7440 6546 673613954 16941776613654 4337 4963 884814732 6001 8059141911439921108 72091421116341 904316169 5736 7001 2283156951551723175125302052622208237612031220452 2903 7234 763411109 98591517111931158111605316193 6312 99431205110151 98981215220455 47682389219376 5580 15082014921088241421396613525 34911860920467 5853 864711997 231522685 888417847 8893 529110057 8090199261443120521 57201906119372202961097817495 13315862 76362262422481 5277 135 907022025170001005616855 499 5559 613 945220242 6576 4302182392120518339 503818542 5535 79551947423203 11392265217580 485 138920047 1865 969923964 2000 47441132818321 4750 8211 6239 9952137801434024729 9328 1994 9768 3576 667920339 7089181511767020899193842028720160233901390114611 3790 7699 53921154217443 36742264014777 5451 8243 638721161 397 86115377 9560189222162720500 3023 60272436217494 33041508322557127771192417508 10101292822401 31881318321827208442356323848 1968 9809214961386216970208311170914276 416511954 700812628 6415 7196 920314303232521167216346 142 8851 1942 8913 2889 32881366318103 178218679 687624407 2140 8586102042233011084114991880610421 702015520214781068724098 991615636 968513818103641766919826172711308117253 2996 799411498182862115012591140541609014226158162391422798 191423015 6125 2320 278323591 431412839 212818369 9308 12681392919222 5111 7495217901396418433 6397151992114922845 2536 3607 5448 3223 3325 353624835123201718019466 475523994 4809 83121275724748 151512016170881448620822230121083415582 3499 7104 391112291106342134313212 8220 2715683 2072 6061 9455102291307323425 108216926 279412150 60442435314604 30051912123718 3637 66062215716426 752112107137201879022270 964318341 437723213 69019588 1228 4322 9431 6022 14121130712234 888921358 238222821200921736918177 872 7225 446317505 693510290 1799 7907123731564114933 4474130591627212135179852002824033 37971715320411 6709 208820402113611714321674230291552716091 5945 794515268177212469923804 7161 11121296021079234381739323972 282421352 3413 552611759 6382 994416663109991270719723194362151119701 1625 823316198 7173 955610924 1923 92211499119765 5325 7517136371522322577 29020109 517 382519285 222014624148122040415515 406216146223972188122545 837922936 118620519 2114 87051366717169 1845231131637423066 4288 50161181520843 5191720813655152631782319381 650 2405 3760 8535 5932 8499 89102042915386 509619608243211025424428 509818615 548918160 60421407914960235242195224646 4455 94831518817300239741035510438 8250169992292010234103501670211437 455619190 745220560 297 47701331214545 951710461 40951222420724223352400111226 40218181 7192 8238206061642924293 6660 98782339421204 85081148116847 284 73732096221364 433 801510226 781 963924689 6401202717622 750323759 5015 45932353512446 77151317615328 2781 9708162881365614045 1477 4413 2055 2453 602116492 8147154242272624017 3635 9972 4808 24802176421529200552492415004 9939112331395014704125882081621510 281010984 4684 6271 8573 937820974 71131616211023 242114561368020924 5389 761510704 805013041 8566 2582288715776 1123 2668249651498523870 226115785 39291856322777 58981717312802 617823409 930611338115931004810496 297524789 272 100615510 886513569 153316207 5767 5841159531469122174 2822138822259221679 4277 6442 7533221251075916301 8149 1095 1272 8656 4734184111007415185 677722210 12141528511578 13182235823190 32352053322547 4617 73021480417688 86161450915157174591757424616 550123422 9465135901959016576 412148001276716049 6838173492349421445 9058 9120 722624629 207514587 75221435112878 7310 490 61861843717872 102220124 3849 10812084212893207112072522866 1261 533114216 1633 6247 4433151641952120727113842404511358185061356120182 2340 48501314917130 9296206381227122339 4561 98915227215841103612025 30571696523786 38571611520378 172014982 739216387 3682 656918516 537023726 673014417 315516273 349818917216012202119644 1201116911248122326128121694024372 1623158602051723446 2193 273111093 964622332131532133914020 195519189 491513352 2749 61471788918714 3447 614216447 3657 650514970 13191447622684 89971483314359 16021281420225 552212957 65641541918419 73562106724458 5280 992517121 9800 429 890521057 669 440723295 1847 4931 1170 378510067 1869 5545 502717034 61071183818172 46642348118688 724913157 107224878 299410434 93881273213704 4141178031229715000 5437 957611027127952088520654215942133221598 2297 3729 9648 980416729 399619833 747016261 7152 8329 94911239310660174831793321672243001610522932 532106612424 1184 50041180523406 402817692115131746517414174191915923656198662081217764 1028123921999324601 11872303624433 2589 4995 5047 7814 941522847 411121328166571668222823 15 8885 1556 2631 1517 75941077014104 478224499 5158 785 105711856 208611017 83272043614637 56551311423262 66581998814372 423170641477615098 1425 3243141461481124565 57741527418707 911914305 5656 79001269224114 133111818 6585 954617202249431070918355 1460109041297919696 4859 959413480 7642 670 8275 6132203611260618903179281876820958104011286815629 308 875 8215 287013488227951473421774 653622500 7883107211956219310102502044611517105621597417768248001188322084 846 309813651 7229 57711823722222 547125011983916290 1032 5909 1356 19221324818100 4824 990522775 32171218024436 145158452284013318 58421860 1002 7799 313113672 9807215991416515451195511661322476 2868 67102452022611 133917412 2402168792115120733 16982174210079 95711226619700 616 1378 754015406 173812619 69191510218490 231411773 4845 71801995123508 15762116510430 179811120 8313 6815 9038 9862105612064113539201592193024816 50160232221521528 16401988621365117131318214664 139213687 5478 9034 3625 6336 6773 134416165125991941222822230342336622362 736719741223691407521044 3045 99841301623094 56821182616245 95210223 2325110081956015293 3055 6532 66702321110509 313418732 3136141031844820536 487 8766 2102 6295 2407185021943824971 325121241128531868918782217882291712666171152222619811203951317518811 1212 6927 90991584623279 140024764 189110930 154811690 24761125620964197572028422736127252252715207 905 7584 923 2770119131821419682 3115 977312489131772359820114 74931244114689148402004424216 42941376314780175851981321031 9241747923989129702328315217 5718 8706128691506017484 205915647 9983 268821801 4835 919023615 6452224291629917071 774619382 371021101 746218323 561718420 237 450824167 102118213 423422013 7433 159821474 85441055510558189551924119371 228 4501364518698 742 2586178552474923850 446618892 835421676 3713 9075 788815537 1816 2451107202014021769 9610571 6294201351063119728 780 5074 21619784 16862039618788 6955178831652820937 4191 3030158801550918273 53622468617467 746118740 850013416 3259137181497124161 863920353130352160712386 793 166520462 9656 1109 6615 619218145 61761223710400230762197416231 116513368 7049 898616088119331004415362 757915773 408524969 7061130081948522314 4828100231762124327 3750 1671212431968611791 85391642322509 4361 245916612 820024536 35291053419368 25 777 940812134217432071619199 484423221 31521372218362225622064821670113471652617657 25916837 667612200 5832316318083 329214124 79612466617806 3645 624117174 913210346 369817264 2492 3686 5093 69772461011807 673716631 352118359 920122186105081913013052 62521208815518 869416884142352020917139 550810380 629714138 9367128162001614210 857 559320496 737616218 43601258612923 2260107031155116633164481939124379167981932821311 1119 1707143641302918381 120312490 3772 5619 250218185 737511212 579521835 786422742 506914025 1285 877512762134861800118427 9669 4211222731803119114 1234 5877 18831387123223 6786179891193422138 66671079916067 2645 7891 2771054110549 1287 766922578 452514532 516 8299 6745 1523 8540 9496 449024038201172424615660180632208518436 3615 915915821 7839 991224543177701809821065 64620738 66971508221248 1014213461501321183 550513893 6607 9587 819315104 9410280 2354 3565133631838414841 20932249010273104281328524244 2509 1465 688811441 74581059122913106981215123622 23721672523439 7690216911762818961 3824 645711292149212363716312 5181 67262279713725145402016820204 1436 250618960 278712964 3331 70661716212362 371823862 911022263 6363115051705114741 738924079 506215211014310412220821135318267 58616534 761 469520258 50781916823715 7514169461183216214 29762412616200 732120259 3517074 1985101211371914502 376244351471314842 12111068419628 743122700 2273 946714739 3477 6182 307216721 6630 2958 6824 8293190922223719779 952221481 7483103871110411576 970216612192618367205841326024780 492310998 8235106391671521355 52702050821444 930915065203051164419388120571786418829 452623070181241102613308 6471148611654116679 117 550017464 2100 2082 158110233 15262097919401 543213515 25871804012896 4197117251343623749 339912852 4102402117509 473010975 6659 7518184242239823026 327513737 664821556110482389520894 729 847310462 12115022 648 70481147511635 6923 746721751 46111452423303 634723391128862030423469 88432100113791 143412339 48561195013414 82961671920282116162227115553 94411303611537191181559812730 9751042314416 3227 5341 852117890 797011425117891457015995234621827224494 3197 3743 3305 719817102 9234109562068413007141441987224077 576 39641386514177 44462355812698 4902217832109310601 8926 3071 8468 30691398213991 6633 263812670 66492217624444 85461562810398178992216324574 489712105 8970 926 5233 98701086219303 59682393617135 4134177302141316375 590519153 961924892 13920067 6549153211106422110235421212520871 355 2819 2965174692353818484192952105910402143132177015929 59582199215320111312491116085 25324604 633715837 865 32191270512081140011457823019 897 5135 634021799 2821 4106 4125 43852223018501 369321041 56682103320947 5687 574518085226181902720927 1560 2678 806922493 56631202922902 159218995 43401594918283 5964 982417183103161118815543180761164823020 2257 4749 357020247120991325320766 290224710 7761 800617291 358 94571203612636 906014787 68561197318746 546812846224081224416895160801850023161139992098922022 98991508424560164062150820821 39616123 383613851 6894125592001114873 9774216861873318809 264 692 3800 7939 8411400815400 4815209881302115080 161913835 8956 30420776 9513121931823115461 36462005411647 6472 72441173910458 79521493223196 1610 2887 9246 940 1321 323121480 44422018720846128791563321432 857513918 5159131962248222703 2162 456816724 326518616 5172132141603124740 76951650816866 5714 934616485 7298 85952323213089 794015245 6057 98371139313209 8094 959814976 27320146 560010618 113420948 288018322190781909120580 7313 8869185431395614756 94581094221632 2041 5852 7145 4696 37001171514997171931474419513 175721652 9966 17781479016212 190320001 8906 53871367414836 5602237141475316287 404720704 8212163781939914951164071589316881191282262021914 4308 208 146222379 3198 6614188572298119397 394919756 42302239622202 8817111401165317795 4981100701034914670 44501108118715 542919040 880822520 636 8209 150914944 5660 7544 642912850 6451665316267 6932 7560 828610126 812 87018810146542314522926238282364124266 4818 555721966 24511751 4604 70121710417195 25721282219256 59815813 410510554 1499 397113510 256021615 5871109481280118909 9480 83023315 7743 8008 37342250423220 773811155118371594821259 89210736162251002017007 580521301 656315913 55581475720164 4397 929813165155562040623139 1044176932016710852247031471419122 1743 22661651916591 110024765 871917945 496122111 161515868 3414 7325 872817856184522453717164117762066516515 14521413718822 63561495711528 704315280 146819743 3339 667113696238101231318206 1937 90361984919536 1909 265911900 5673 3476 69171257413596 699423686 9732 8251185371570623387 857123904194902027321307 37 714919641 5849 920821222 7478 340116339184011390320326 462 388914002 286714901 9438 486524171228992420224978 50941899413522 6617177501048922164 40531902513943 565 2507 118823452 558411607201891382616807 2727 7097 572922283 2682 784621318122142209013458 673211431 5882 9420134211654511166 7812 232810536 664523392164011015618894 711124455 869221589 6305101701860819155 362422810 61971646314510166642019223261229252306311331143161985217555 5443123311778617705 6713467 577510011 651219325 104 915313418 251420589 2999 79202129924250 4081228502185212511 5711198120230 33751245614317 54619672 23441338116862 475317107 6961566711055 8832451519763 1384164361021514516 83561152317557217002331423968 9851227912328916831 1780126481199316280 7631144121980916517 214112117 2301 6959 9749 9994 7352139472272814148 486317878 4739 916821697 1181 9451109001052716068 33422698 89921933021320118332060013810 1326 6704 8804 317112467116981559323364 8792 319118939196501504818468 2179 8588 9425 1401 1954 332322118 9176 49011819612217 461521875 73592040813409173821350722149 7989 378 11471449616957 9715104481762019798 2254 655520069194941527820019199042097011007 370521734 1829124321017718488156142251610586148521659924693200051257520203 857010100216121505416677107951292121300 920918202237672488724381 1219 3429 261024200 363023248 838718057247331387618898 3711 471715573244401735523857 856014228199422413616632109411530523662 97071398718164123181884012346 53902474412903 246020717 6446114461805119995229432249423985 26 3702 464720946 9863 3011271512613 65524067 4083 9236 993122860 3532 59882487114029 1901185352360724324 68722000411257 5647 7598 93123827 6026 9023 3126 2132 8622 8805187861926818888195412268824912 1158 71121253922365 3709 9042 69731090523143 219011099192722223623840139311682317950 34417649 48331264915894 5622 3774 84281131119163 62731490420138 758724155138892340717674 4051678622629 9814160551078424019 51901689820390 552823415 6604 4680 8437 522511006109721643218831 5411 5555190481720622394 715711572 8957 25811074810628 1182220023738 18951285921061 24081100415323172222404411343 517417584 273821702 8576 40071425420579 816412146112291229318380197782176823927 1752332317616190191867418122 2839188802142911345 469424591 8496 354915218 633115431 2253 8168 56752055423690 7022 81581035318088182591840621196 797 2250 89141656818601 114312275129961916020443 221 9510 5334143932021811929 748918541117651735124994 518 3990 710916149 739719188 9953 1381 9816 9259197711080412229173571004518199 91921006 2251 504824329 202 4254 645910859 706 48582309215608 55992403524671 66261093719604 5649179761957821233211701021711907 70732005222468 90441091820414 2577138171981019656105741945718835 40491087411823 326616004204351563919017126801390813686 912214559 4644 8420 9903237291468310161 6232123217941 730617529 9876175281886120095 372 2708 56281058324122 42141086916166196402123021017 79681609522126 5108214071016023177 624619671 5355140911529615298206352291219759 13612338015434209562237723350 2890 9584131841596324998 493920900 770916504 297124595 83731428413705 8368 9272239091192710877192821589812020 201920949 3417 3769 7786 36519034 5576 30 5667 5817 7466107181029217332 123 653723712 23332391512445146811312813447 4823 9474242801026124056 5752344420236135041390616237 9243 336810409129971427423611 47241160211495123162414524152 2201 98721131424754 3085 9334 998718823240601343822853 843014337 8651 8847190711457718791 23811028 15892251522730 708 941017280 29681809021985 154718954 1838 7060 4309 529512602 7241 5471132412186324863 28632103716945 9022 804 3944 6518 8502 1500 6862 8867 27452095219668 885918718 8982 9204159812397516649212231155820671 12732118718913 5407112272445721236135752336123894 81101675719996 232112429 35722105614656 5465 921913735 839011733 33491800415914 5311 935011060 385821550146791870822837 48251505520387 756523008 8189 504 679117565 59541932610920 2134 6216 6796 7569169641540718860 17901708220170 1040 4862 5900113541007618397202392142821132 954715559 572324549 75312491518046 8260111322298519141 843910648 9134 6692 690011127 8013 943423834166151608919170 329 8217113592385418719 394 5651 1676 9288 434118808 101717445197931405919755 97801551316458 930118211 19621666624510 88781019123576 3073 928724274 195 5001 3351 62401879624896 413210249 961719576 6143 39814271 6539 8213 252912880 9229 9664 9663219102455411449138881554516690234372475611484134151993818028 64218338129222441011141119161841823381 198312595246651023614355 3943 7933 859613534 647920719 7671154791818012625152441558715866 426319600 955221324 870819760198812444715415220541122814792240411127815925 101117644 9003107631575715980 3423100961089422048122412085813772 2078 2621 4013 2853 234516512 80091863819181 433021326 453210928 4173 8678 4405 4669 3481 50371454623606 757813683 7621126971052912862 85117500 1121 236114817 9146148221818713593 982715121164661327519621 1961 736823089 4131 422918225 1832 291811785 58811074115644 78512273821213 3137 5480122981674224151 27911175521156 71671408723069 48721808723561159021785011827133241495021344 1568 229111654122901464515635 1916 882819794 6036 7362 95622409624612 249 3629 96281042216437 25161236413628 5080190352322815336 796610632164521186020348 3689115411567415649 3865 3401033423673 3517249131606217042 3169 80751279718557 93691576723498 1849 8875 826622130 8949102481984620062 278618521 352017570 41501751223402148281476616734 45071792416005 46771406214424176111340818915 53501063312626 7398 7017168292497324938 90121300520911179952072824478 666178531358517731 43152012613334 26092044221018 677 2723 8767 3897 75051106824656 5099105162455817401 6547 157220315234831529521603 38371277611594 8698 936417673183081987823513 193222933 3260 963121544 34541755124064 37411223523992 4074 994614774239761362722875 3284 4882 586322669 5091 605323236 84521702210326 859117049 3295 726221058231851943524908 4 2390 3763 4451100211361124702 153616134 852010356 1218 80221340111423 261320018 565813168 251 3387 71331064023411 8199 984614615 96161592423682164142026024240 6664 6918 24 4094 131310943 62221464422741164622367110116102422131514314 8870 255915219 3004 7556 37671712021242 7067 2616126561783312209 2504 362114150 2629 5441249352333421261 974318245181431409621181 288221369 6883162501230917517 38012295 4745 1297 2835 2599 4731 2801 4800165611689920783 540617701 82161590321115 7512126911351822900 496424047 519417200127352357415907188152368921426 115222374 1614 6720 2183 3125 6580 9144 1912 528324075 88031918618157 4273 772314963 853117394 812615410 5485 66361562417682177671991823831 10 554622097 159113338 817618258103351154714767111811452117827184872376419011 505 173 142920509 6181199322360316220 2360 3936 4552111021173124426 526710077 606416204113902284917021 94724111 413310425 422722478 507222538 5756 8128 443215251 69392400217299 108512968248571178423119 125319157 4884 685315248192292315619461 8523267 5244 7140 5320 79981342519804180302123821714 986718475 503 4316 50051629522147 125824180 122 699610230 237518350 327024228 3324 507916352 1408 48042422316727185652066824625 1525 6380 7106 3634 99351928021002 564212761 166 3741741824132 53918336100032338820667133232461919958 760 291224844 892311697 9140 1231 4820 5957 2463 639512633 7457174471896222641 1684 39692302224534221431144518374 18251499015261 516321164 239324205 462624885 9475164051113821857 33701343717163 154 20315567179691597524476 5823 34451507922107 4087 400016082 2168206702372714439170172407322702120221250816382187002213115523 4142230441386323307 151 3848 953017334236981367622512 2433 432823565 1771 91382315213563181391911518582 3074 12632345118987 3060 572424551114272156915037 6974111162244616704 46631634322799 627521373 807614668 665618064 719112804153261419616019 522 363214671 5792335519780 73112210 129616509 320712371 2120 3808 86801327821970 8939 2258 276214949 4570 784021578 4313184401896610880216801404017810 6361168001733722852 57891599116043 4041 439417220 5665190541777418136 8895 916224310135541637616845 612213564 791615847 7672 9340 895021406 602522541208622005021784 513 22451719719822 86281195512074 153822185 67622127523967 2008236521596613200 4579 4660167901247316997150052225715449 283721103 290611525 868316361 9751199482095920898 4772117401529016190 640911258 84 1324 435414751 16381154819740 34832145110663 21502101012163 860 1654134532486715059 5615138852329317964165201124322378 342 883421622 4771 9728 643223098 56132255124509 7882 197712251209411167423306 779716667108201132113508 205417031 4086 8259 5971 23392020718146147791856120191 3466 61961184220758 99811138218574 311315546 6481 999816404 947310444 7857200971403714199 382817609201631294516654 968 6878 9573246392433411737227071208715162211681194217815 491318602 816718269 4002410112557 55012638 1058197421426117077 84012076021274227472164224734 70418105 379918527 24431191713237 88901863323491 265713994 9882 5794 45401967614415 129218505 38981811220355 43212186 3482 4585123971128720489219091462718571 71310755 842 2471 7455 939110614 294919820 59412185518969 8998 6972 7148 789311613155262048823311 929020307 5212 925518692 15281832420503 37842130419667 634420827 293114907 85171827523088 632217690 861312037 8944124871932022869 7856 85252228124763 2429 597022302 82722231019093 3112877 243218178 6444 178 69312722 590420200 6051 7835 8604 2103 9713113731255317470 3293 3762 81002059122793118251655622582 813020103 4630 92931429624875 18861086418065 250513587 3667 92451119911092 316816547 177511417 90491062520699 50131865621419201291262113808 11421948 685 9419149101252424281 646822383190211450123117 801212780125682369719250140271925315413241272057116782 59391405817605151352284313559 658 7787 134612378 663922884 3127 5826216961127122872 59071184522458 958922315 90461569623448 3883 598420295 9828 5221 7235 7344147841424515936 62081051420994 77051624323486 64621592311177 834119934196871869621568 120710853 762318552 49561698916467 97552404614263190562497019433 432017888206471527518101 6299178462221924583 4351 768822603226212296223319 30621352420473 2061347921412 5966190371229923773 34691054715373 3781180561959422366 9345 704624593 21711716115240105131130615551 60822251102431053922555 144212662 667714740 3527193272077019009 87701383119329 90551863914770 1099 343822514189271075422267 669811510118521544819406 2101160761766519922222531153222093 89022201 4169219491083012133 3081125831092712426208371947614400 227917893 4082 8977117191684210641 3779 8418 5688 88572017819561 95001038615289216261476521947 64911168310622 8153 9322 96262450623832 1466 6712 8351629419612203081819118266217091301315139 7435149381641210652152821582223316 166720346 26061831922908 35512185621658 5659 243619039 5220 7753 3105 664417311 5124 71291760619783 96871993921124 313918617 8807 3810 52461511715564 992 1894 176817336100711284414408 9671 20902365421143 7227 8635133651439211246 2694 5674 3636 4070 522418932 647512729 2898222681725523770 430018945 8133 922518536238611808221313 42491258714599 893624399 6982199431577821616 67981216712914 8383102001638917756 677624191148762423617327114712071022218 442820311124612109519709 5705113562104718192 3213932 24121921818539 48461230124738162661907419315 4879 6360 86461785119003 51191081417388 115015804 154115590 528716470 687316196248102301824600 8139115632062922216 5343102752172711596 7687151241479622605 5404 7909 8659235331558112543246811138519573 9131103272229510299 513618062 9747103361340217318 5747 3503 8682 57301674519070 972 6524 7870116691258520360 41531093811762167062063217984190322367823225 278 4032 6101548922931225631778824264 802 624517757 27371782624112 119516215107881137219255 768 1998 51431824319308 198613026 877319619 32313879 789214329 74341540418449 25972439115146 73512317623385 8697 9842228171160416246 701923322 3003 84861007221671232661406723281 1670 255520878 742721859 2214 5207 9805 60501386720568 9917186711030320721 6035 702814969 9277 9059 75 67172150011370230241307017859 960324230 96231114918222 415414534 583713624 529612287 7050141431970419651184431962610295194461811819752 34921973 871116562142421589518769 296717373 758316574187091032814132 562713579 9224220981105812639 496914750 5188 476314256 885519871 80682262217638212101437816307110742168815129130792442024456 27510246 5319 35111234424248 792 696924442 119115758 104620541 18521157515724 213323532 9653206571768320127 3998 8815242201183517877 7289 978223584 744716120 862016505 938010323 88831603723990 4443 6400 9733 177911987 7781 78691250910596231551172816887 101221506 9640 264710019 374824125124091604514114177821041613189213061857819767 42501098222965 2329 2840 5191 6620153802032518590 91481511315158 6530237882371615675 1084 8115 7828 9564 518314494 4293 3633110981459416851 6666 9065 676117848 47181221610909 65521955712742 223 738111302 3392 5435 747315074 418 5692 2774 30461865116208 7506 3205 4435 5922163841685811507 6301 67392159511496171991807918019 728 80713541 4670222031181123136 6266 63181123917614 82822820 1419 6967 71791787418481 6740 2607 6809 3381 5260 64921491618799121471720122232 98331618624413 1542 96591299814799 42622346123544176342310618315 47091017314007 6123 671511518206271095012012 549513528 326223573 466617633 71512032321463 81591365214299 8593 9454158381476416733 61181322820692 869310449 1664 4523 36281799216840 5398 927622224112491582822710129651829622349 226 442 4608 372524949 8800 348 25961598419975153482470011276156401856411659173471267920240 227018849 7542 92911196520957 9825 5951250214432 9217189891279121585 108618723 395420814 4213 256511030 553923843 8393 8451 115720651 832311574122781758916493189181634520161 4003 8809 94891189613961 59317006 7406 70791084911895175951881419673 27031649124259 202411190 7405 63151457216001 27101602117172 5446 6884 949216495103742090520484 2006 727616324221662321024917105901183620563 6867172031808420091 66413973 1586190761559121319 8813 938410866 912822050117921995220405 51219884 265614014 5726 848213640 89412441423031 79181844517294 9278 994138832230722782 57111350515019 1608 18882202024812 4186 579323162 14802189120990 5427158541626814344 979621621 896 1340 3783 830313027127121303715226 34173811378915534 821 1290 1646182771708522676198962146823798 4419 33912546 185410525 53361013917548 6814240531882622946125361627523397224981476917711 1808 67341152417667 95821813819370 23741336620565 709913830194821045119176118742285811999 675620567 709512684184911183422633 1317 13641087214868 54222496616605 88942198210220 70151083919714 22862023124904 16111021210537 167713250143742219121776169921723415775169482258424784 210623487 3480 5581 5788 4034 279220685 669012798 89781649718469 194723688 54392095524786 251222955 8442219542072224735 97352003610211 26861765522788105672147324880107161095822238 56924762 572 197814508 3616111981720911415 4155 6865212711203819109 461615115 43111633710128 2455 905618365121231906522911 9421379612845 1456 67671289113216 442212471230841595122105 2188 395315643202441116216205 555423822 1230 142213203 1964 60122126221409177962170624987 2503 353122040 2673 2681 9989 204512365 408010453 6423 5087 7208 62791921323000 3770 7380139341290116925 468812754 137229941009322386 65131294213125103391969818165 221720637 2107 255322489 505912061 60621820 639124714 8203 9888 860615409225971890824651 4005 7408 4572 6951 58991085120752 1251 8695 78841037515612 97671392623132 88711458317572 1092 4636124191077317205 122117588 8876 4541 69881425721371 3317 734717835238212206921570 48371593424567 79 269218461 3269116121559921692 1626 3544 5433 89381322211143215551674318538 4620 847513641 186618816 289 556 8580 103418681 6075131361468524936 4425 70521122421111 541315446 6590 9697192422312112228 3398 3648149001003522672 6114133151579524726 74492485317315194471159513190124961290723504 3611 628012582 637424484 4500 4305 6019163261754619663 43741256617536 265121894 50502463824095 473814240 967417781 96961208212175 16010078 778512166129691377714667 24119339114581782218426188281930919292 200718517104061618820372228112164720723 21751097423913 502810613 3328 624222359 57372324424602 9057 9866 3682325524333 9227 39121362 484 6081 9035 26671176810286 137910540 25521146715270 59672221724430102652145622194 134216119 2685 5358 30861926623946 124162761200611251 33221493111771 352424382 6076135111603820658 768418007 9171313517119 450122754 347217009 1467118641570215689 171324260 437115626 4881125401311819883 59741274013607213421743311923 164215615 3132 6469 32421284115220 6145228181078913232 4713 606924609 63692098316483 266421293 497720381247092248824928 549723427 28512895 472219617 580820906 2252 34361797719471 427812120 6498 734120969 742421443 1321965817279 2740 5116 5704206801378420718235302464910530 262 598312131 76491678515577 651122121 9566 9632 8731 663 397824953 2633 896619210 584520612 3805 6624 9001 9711204162201216152 2244 4048 1631563224232 6729 904123539 39 335719233 755 473213150 118220561 369216058 61361060713110 603 398621379 230324524 9986 69422794 27091264717178 150612195 329412959170131272418096 181721823241022282516565 64916691 67942215614528 208310726 98522177222038 1415 3526 724818899 176418034 926816400 2917 353421537 981016322 433816931 5393 919412703207481107713269 299814849 939311763 58861113711403195271874823638 57761862617707 65541207214328162861772022576 33411191520973 650218366 1071 520822261 72101470017994 78815349 5549 9654 815 726916097 9439201312435824724 2930 5177 63981297624842 7288 99081831019263 62921588910786 5710241381631517308 321824795 657323545 983411079 450510433238151101611492 2564 5070 350413446 384220896139162166920980 6016 875216848 810 562622632 54692344512934 860111701 677511508138272440424429 3236 143 5173 1330 3103 6386 190519230 2983 7538 6267 7423 261923657 4702 9802 8602 8098 6544160002005921016148862041020774 341 831024348 3856102181305614899206111740724445 9951622621096 284510712 3730 9945 7716 9157214022311223853 920 3680109961637019422190241446015877167641081620024 2556 962715919 8524 9638 555019195 6364 908924040 85481907222979 1275 788112860 316718235195971907923605 890116393 4478 37241238211134 3938158611377323731 93151057318929 1858135351235713044142151529421897 207114419 5199 8801 361724529 61672194016181 3966 886110440 79851022118621 44682351418120 305220490 907116116 37821343915506 7340 6924 463319360 78061991923189 476013002 625521314 491111703 768622565 70091330522984164151716523981 506024168 393 802823404138871996515972 853 402013407213381641317736177131013822997 587818874 1135110671397723797185982213224622 16223246 894821717 563718833192432006018941101322003319483 7655 773118901190861931124479 8062 8797 201518950 557521380 954911614105281086516861 24872384111577 919319953 297918465235692205224578 37211293012658 784415574108331629712578 17871096511810 3276 3942119831580123273 76221611812759204002008316933 800713255119962239016178155922005824655 4008 5101 7498177611379014485 836314100 69522086620564 260 34641127918226 8092207841080515987181072251312900 3608 762716027 5492 7279 721520288 1124 9599 157721289 4781 8929137752133320742 3439 87591320519410 6445158311005219030 969015131 50718217 901 616814692 44243781089216906 81912765 7714 19120707 2378 5691 398021042 32211418415899 5166 7070 318214430 421023149 23313969 841620384 105013169 11771479415589 8445146571527624774 70372462311651 6714 6812 81771027422892 486712774 918220963101451749322367 16161148720869214311050513745 2369 57651676714964 9421233091999423001 532423521 849823707209922154724004231581233416183 734 401516910181161695213669 7275 53421278612108 923911054123941791723080 2381157901840721098 855816982 794911939219271286416506 9167 36123595 3843 338222080 5150236192382324985 128924296109861389719550 222417739 887713434 940411075102281163623095 730 4510 5076 1073 6789 1481 2130106041192117298239621436723941 298 386814915 3991 4461498724854 69511157 2002110721404817150 6915155111906023594 719722376106591971120459239531790019144 313823666 4930 471114703 79311662220917235781144020938 96723130 989213948 203121084 65282082315384 6495 7402 112613909 1351 826723762 896710174 957017820 412122382 448114170 8026 6425 94601889321886 99561376924480 1105 7749 866418900 3044 643622204 957512815 6807 7407 838811692 7124102052191513090207851242723013241431539118396184052421319944 2066 27421124511482 7653154531592616655 6795153582119214115204342262716160 3461107141534123006 37371003611269 36 8201 99751071313450 60 8654 57411931713015 904 1061 2211 6449 8988 669315957 43801160818154 3091570015708 543 4489113761104415547133531505614760 727013258 589212713 777910443 2386 454321323 7166 774110552127451499416372 266515522 988611664222391650120666 4203106381218723187 195917971 45711462623431 8282 207914220 587420098 3961 592714752101152149314084 666823090103792250315118 68331418517281 24012050 1997201972390313010 527422589 608319957187742312223473 7206 913016033 327 68423133 8505144502183623470 3264 5237 4569 6907 559519853134001408523318 227 5348 1970 704717599 5923 527 3035 7399 7861 308316252 544013142 49161336022152114851246011071 386202741427923241 8521655317176 1992193741926210352 3178 600811281 6185 904512785 77722056920914 80561885120198 1237 3411 3457 438821730 8256 7186 272222667 3164 5109 9670 97841723015625 4143101651217112744 39922027221218 617516002 4052 8188 5587 9893 5014139271610714445 443018015 265410768 9504150311722418584 390122983 3987 8232 40191194623372 49031123122522 549 500219623 9406 30281268914155 6164227532453319710 2241 30781042610324 5192189932182524668 2926 4965 9104201322283220732 3190163021201312504 91518073239432087323157 1399 2089 7596 7938128281233321127 161 90312050622770 1241 9645 511 895 4212 2249156701446318435142502029422598 235320093 34742421820113 365121436 9610 5486 938613542 783724850 18122100821504 6024 792520796201431726720049 78991601114021 287 63211706013711245311701816853 1618 89121228220300 907623186 101811235181751887611717 614 918 32672054322677 41314167 9170 4564115661572518824 928213376 9166 955924116 982611553179621911910995192931435014821155052491819132 244712387 47719841 27651922824621 130510810229662305814172 1019 3494 8136 74871680321577247851491217340 120010282 273410587 70331153619173154721696618020 1759 6675 826811111 372617185 4376 7251011915852 8915141121663011040 105 75019321 7172 867911865 9742 1639 6647121191194416626 350813017 382123627 696011971 90661304318462211582297813242168331635519829 2545 5960 438111515 34421772714826 3875 5381 3965 8064 472 7798 2993 356914975 4148 5683 494024695 7053134442261224642 1972350917037 308213898 2637223041435716647 911420336 925217895 60482437317784194631859120705 1260 7125 2860 5657 612719425 7150 757620409 828014856 9714 2077 7777127991077223537 53510294 497822017178432147918666 1174 1588 2233196452123124349 3896 44411291719296 627 303119049 298720125 42811393823056 642117712 5739 89911772313925 80841501624747 540221846 7332 541917356205041009714778 599 715319831 906 8716 845 1472 5512 5985 119316360 967318391 2687 6359 829711275 8751113231537122749 4855 49502186721732126781824722442 527818254 670713004180081972521729218381723622642216402182624697 787 8020 9199112251707519979 170811187 265511086 2715 6823 445615772 425619857 460712512 86421142213660 1180 381920750 19352194422165 409219851 6448 8362 9506 34716298 960419854 410923901 58001150918727 937712055 1919 529410623 664620158 1262 3314 48861882012007 175314164 5128 705417057101401842919545 106713855201952215522890 211122193 422212565 6274150511583015555133471520518965146382289519734117811298317773211171744619354 14271306014071 4759 490512161156022169422942 164117824 6194 3112 96812374114694 206112312 74741180213419 9683 601324221 19791644611880164561718821019 8 497924486 91314974241482480923640 2156 8198201391709420245205282265323910 4511218920976 121713736 735015480185702416911469 22771038418869 385413031 43291358917296 511414203 74851898819270 147321685 6674 672210749 2830 4839 5839 8960 1196 126921198 1819 2764 2625 3796118511822420706 88916210 24171015322959 398423661 8291 1811 1880 653813238 374215107 380119962 13632017720676 8067122651238513690 755313658 69501504112458 1238 878612499108431101518186 16791873922356 1674 762618048 288120334 3697 7499131741571813694 711 5944 8920117341703215766 555 61241151113330 36041416315651180741828124848 358214605 8432117320

0.5

1

1.5

2

2.5

3

3.5

4

Hosts

Dis

tanc

e

(a) Dendrogram of hierarchical clustering for a random subset of

hosts

10 8 7 6 50

1

2

3

4

5

6

Number of Clusters

Dis

tanc

e

Intra−Cluster (max)Inter−Cluster (min)Ratio

(b) Comparison of distances in clusters

Figure 3. Cluster Comparison

very sensitive to outliers [10].

We measured the goodness of fit (GOF) of the result-

ing distributions using standard probability-probability (PP)

plots as a visual method and also quantitative metrics, i.e.,

Kolmogorov-Smirnov (KS) and Anderson-Darling (AD)

tests. The graphical results which are depicted in Figure 5

revealed that in the most cases the Gamma distribution is

a good fit. Also, Exponential distribution has some close

fits, specially in cluster 4. These results could allow an ap-

proximation that would result in a simple analytical model.

Based on the third column of PP-plots, it is obvious that the

Pareto is completely far from our underlying distribution,

so we do not have a heavy-tailed distribution. However, as

in some plots Log-normal and Weibull have a close match,

some cluster distributions are likely to be long-tailed.

To be more quantitative, we also reported the p-values of

two goodness-of-fit tests. We randomly select a subsample

of 30 of each data set and compute the p-values iteratively

for 1000 times and finally obtain the average p-value. This

method is similar to the one used by the authors in [7], and

was suggested to us by a statistician.

The results of GOF tests are listed in Table 2 where in

the each row the best fit is highlighted. These quantitative

results strongly confirm the graphical result of the PP-plots.

(In the PP-plots, the closer the plots are to the line y = x,

the better the fit.) We find that the best-fitting distributions

of each cluster to differ significantly from the overall distri-

bution over all iid hosts. Thus, clustering was essential for

accurate host availability modelling.

To be more precise, Table 3 lists some properties of iid

hosts and clusters as well. The first point is the existing

heterogeneity in the clusters in terms of members and per-

centage of total availability. The biggest cluster (i.e, cluster

6) that includes more than 50% of total iid hosts, only con-

tribute 20% of the total availability and also, cluster 3 that

is behind cluster 6 and 3 in number of hosts has the highest

availability contribution.

One possible question about the distribution fitting re-

sults is why four clusters that follow the Gamma distribu-

tions are not in one cluster. The answer is in the last column

of Table 3 where the shape and scale parameters of fitting

are reported (For Log-normal distribution, the numbers are

µ and σ, respectively). These values revealed that all four

clusters have almost same shape (see Figure 4) but at a dif-

ferent scale which are very far from each other.

Another question that may be raised here is whether or

not we are able to model all hosts as a single distribution,

i.e., Gamma distribution with fixed parameters. The answer

could is no; the shape and scale parameters for the Gamma

distribution fitting for all iid hosts are 0.2442 and 51.9864,

respectively, which does not reflect the properties of differ-

ent distributions listed in Table 3.

However, based on the graphical and quantitative p-value

results, we could say that the Gamma is a good fit for all

clusters, so we can use a unique distribution but with differ-

ent parameters (at least different scales) to model the avail-

ability of different hosts. It is worth nothing that the Gamma

distribution has very interesting properties in terms of flex-

ibility and generalization and can be easily used to propose

an analytical Markov model as well [10].

Page 8: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical QuantilesF

itted

Qua

ntile

s0 0.2 0.4 0.6 0.8 1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

(a) Cluster 1

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

(b) Cluster 2

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

(c) Cluster 3

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

(d) Cluster 4

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

(e) Cluster 5

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Emprical Quantiles

Fitt

ed Q

uant

iles

Page 9: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

Exponential Pareto Weibull Log-Normal Gamma

Data sets AD KS AD KS AD KS AD KS AD KS

All iid hosts 0.004 0.000 0.061 0.013 0.581 0.494 0.568 0.397 0.431 0.359

Cluster 1 0.155 0.071 0.029 0.008 0.466 0.243 0.275 0.116 0.548 0.336

Cluster 2 0.188 0.091 0.020 0.004 0.471 0.259 0.299 0.128 0.565 0.384

Cluster 3 0.002 0.000 0.068 0.023 0.485 0.380 0.556 0.409 0.372 0.241

Cluster 4 0.264 0.163 0.002 0.000 0.484 0.242 0.224 0.075 0.514 0.276

Cluster 5 0.204 0.098 0.013 0.002 0.498 0.296 0.314 0.153 0.563 0.389

Cluster 6 0.059 0.016 0.033 0.009 0.570 0.439 0.485 0.328 0.538 0.467

Table 2. P-value results from GOF tests for all iid hosts and six clusters

Clusters # of hosts % of total avail. Best fit Parameters

shape scale

All iid hosts 57757 1.0 Weibull 0.3787 3.0932

Cluster 1 3606 0.16 Gamma 0.3131 289.9017

Cluster 2 9321 0.35 Gamma 0.3372 161.8350

Cluster 3 13256 0.22 Log-Normal -0.8937 3.2098

Cluster 4 275 0.01 Gamma 0.3739 329.6922

Cluster 5 1753 0.05 Gamma 0.3624 95.6827

Cluster 6 29546 0.20 Weibull 0.4651 1.8461

Table 3. Some properties of clusters and iid hosts

100

101

102

103

104

105

100

101

102

103

104

105

Actual number per cluster

Exp

ecte

d nu

mbe

r pe

r cl

uste

r

VenueTimezoneReference

(a) By venue or timezone

1 2 3 4 5 60

1

2

3

4

5

6x 10

9

CP

U s

peed

(F

LOP

S)

Cluster index

(b) By CPU speed

Figure 6. Clustering by other criteria

Page 10: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

7.2 Significance of Clustering Criteria

Our results in the previous section beg the following

question: could the same clusters have been found using

some other static criteria? In this section we considering

cluster formation by static criteria, namely host venue, time-

zone, and clock rates. (Note that a small fraction of hosts

did not have this information specified, and were thus ex-

cluded from this analysis.)

We define host venue to be whether a host is used at

home, school, or work. This is specified by the user to the

BOINC client (though this is not required). Roughly, 23900

are at home, 5500 are at work, and 772 are at school. If our

clustering results correspond to those categories, we would

expect the distribution of host venue across clusters to be

even more skewed.

To measure this, we computed the expected number of

hosts of a particular venue for each one of the six clus-

ters identified in Section 7.0.3. The expected number is

computed using the global percentage of home, work, and

school hosts. The we counted the actual number of hosts of

each venue in each cluster.

Figure 6(a) shows the expected number versus the actual

number for each venue type over each cluster. The results

for larger cluster sizes are more significant. If the clusters

correspond to host venues, we would expect large devia-

tions from the y = x line. However, this is not the case as

the expected and actual values are similar. Thus, the same

clusters would not have resulted from the host venue.

We conducted the same comparison using host time-

zones. We took counted the number of hosts in each

cluster for each of the six largest timezones (in terms of

hosts). These timezones in corresponded to Central Europe

(17,000 hosts), Eastern North America (11,003 hosts), Cen-

tral North America (6,077 hosts)), Western North America

(4,900 hosts), Western Europe (4280 hosts), and Eastern

Asia (2396 hosts).

We then compared this with the expected number, given

the number of hosts in total for each of the six timezones.

We find again that the corresponding points in Figure 6(a)

are close the the line y = x. This indicates that the clusters

are not a direct result of timezones alone.

We also investigated the relationship between CPU

speeds (in FLOPS) and the clusters. Figure 6(b) shows

a box-and-whisker plot of the CPU speeds for each clus-

ter. The box represents the inter-quartile range. As this

box for each cluster appears in similar ranges, we conclude

that the clusters could not have been formed using CPU

speeds alone, and that there is little correlation between

CPU speeds and the length of intervals.

Nonetheless, one would like an intuition to explain why

there was a formation of six clusters. We do not have a pre-

cise answer to this question. It could depend very much on

the behavior of the user, which is hard to measure. For fu-

ture work, we could like to conduct a survey of volunteers

or to monitor their host processes to classify them by how

they use their computer (for example, for gaming, word pro-

cessing, web surfing). This might shed light on the cause of

these clusters.

8 Scheduling Implications

Our study has pinpointed the exact mixture of iid versus

non-iid hosts, and when iid, the distribution that best mod-

els it and its parameters. The difference between the global

distribution for all iid hosts, and the distributions for each

individual cluster impacts scheduling accuracy greatly. For

example, if one uses the Weibull distribution as the global

model, the probability of a host to successfully complete a

24 hour task is less than 20%. By contrast, for hosts in clus-

ter 4, the probability is about 70%. These differences are

magnified multiplicatively when computing the probability

of task completion with replication or for a series of tasks

with dependencies.

Moreover, in terms of multi-job scheduling, an online

scheduler could create a multi-level priority queue and

channel jobs to hosts depending on their model require-

ments. For example, in typical volunteer computing sys-

tems, there are a mixture of high-throughput and low-

latency jobs. In practice, we have observed that the total

sum of availability across hosts in large numbers to be rel-

atively constant and tends towards a Normal distribution.

High-throughput jobs could then be sent to non-iid hosts as

their lack of randomness likely will not affect the aggregate

system throughput as a whole.

On the other hand, the jobs that need low response time,

such as batches of low-latency tasks or DAG’s, can be

scheduled on hosts that exhibit iid availability, and the prob-

ability of successful task completion can be computed with

the discovered model.

9 Conclusions

We considered the problem of discovering availability

models for host subsets from a large-scale distributed sys-

tem. Our specific contributions were the following:

• With respect to methodology.

– We detected and determined the cause of outliers

in the measurements. We minimize their effect

during the preprocessing phase of the measure-

ments. This is important for others to use the

trace data set effectively.

– We described a new method for partitioning hosts

into subsets that facilitates the design of stochas-

Page 11: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

tic scheduling algorithms. We use randomness

tests to identify hosts with iid availability.

– For iid hosts, we use clustering based on dis-

tance metrics that measure the difference be-

tween two probability distributions. We find that

the Cramer-von Mises metric is the most sensi-

tive and computationally efficient compared to

others.

– In the process, we describe how we deal with

with large and variable sample sizes and the hy-

persensitivity of statistical tests by taking a fixed

number (30) of random samples from each host.

• With respect to modelling. We apply the methodology

for the one of the largest Internet-distributed platforms

on the planet, namely SETI@home.

– We find that about 34% of hosts have truly ran-

dom availability intervals.

– These iid hosts have availability that can be

modelled using 6 distributions, in particular, the

Gamma, Weibull, and Log-Normal distributions.

About 51% of the total availability comes from

hosts whose availability follows the Gamma dis-

tribution. This is useful as this distribution is

short-tailed and can be used easily to construct

analytical Markov models.

– The family of Gamma distributions (with differ-

ent scales) could be used to model all iid hosts.

– The discovered distributions from the same fam-

ily differ greatly by scale, which explains their

separation after clustering. The distribution for

all hosts with iid availability also differs signifi-

cant in scale from any of the distributions corre-

sponding to each cluster.

Acknowledgements

We thank Eric Heien for useful discussions. This work

has been supported in part by the ANR project SPADES

(08-ANR-SEGI-025).

References

[1] A. Acharya, G. Edjlali, and J. Saltz. The Utility of Ex-

ploiting Idle Workstations for Parallel Computation.

In Proceedings of the 1997 ACM SIGMETRICS Inter-

national Conference on Measurement and Modeling

of Computer Systems, pages 225–234, 1997.

[2] D. Anderson. Boinc: A system for public-resource

computing and storage. In Proceedings of the 5th

IEEE/ACM International Workshop on Grid Comput-

ing, Pittsburgh, USA, 2004.

[3] D. Anderson and G. Fedak. The Computational and

Storage Potential of Volunteer Computing. In Pro-

ceedings of the IEEE International Symposium on

Cluster Computing and the Grid (CCGRID’06), 2006.

[4] R. Bhagwan, S. Savage, and G. Voelker. Understand-

ing Availability. In Proceedings of IPTPS’03, 2003.

[5] The berkeley open infrastructure for network comput-

ing. http://boinc.berkeley.edu/.

[6] W. Bolosky, J. Douceur, D. Ely, and M. Theimer. Fea-

sibility of a Serverless Distributed file System De-

ployed on an Existing Set of Desktop PCs. In Pro-

ceedings of SIGMETRICS, 2000.

[7] J. Brevik, D. Nurmi, and R. Wolski. Quantifying

Machine Availability in Networked and Desktop Grid

Systems. Technical Report CS2003-37, Dept. of Com-

puter Science and Engineering, University of Califor-

nia at Santa Barbara, November 2003.

[8] G. Casella and R. Berger. Statistical Inference.

Duxbury, 2002.

[9] G Cirrone et al. A goodness-of-fit statistical toolkit.

IEEE Transctions on Nuclear Science, 51(5):2056–

2063, 2004.

[10] Feitelson. D. Workload Modeling for Computer Sys-

tems Performance Evaluation. 2009.

[11] John R. Douceur. Is remote host availability governed

by a universal law? SIGMETRICS Performance Eval-

uation Review, 31(3):25–29, 2003.

[12] D. Kondo, M. Taufer, C. Brooks, H. Casanova, and

A. Chien. Characterizing and Evaluating Desktop

Grids: An Empirical Study. In Proceedings of the In-

ternational Parallel and Distributed Processing Sym-

posium (IPDPS’04), April 2004.

[13] Derrick Kondo, Artur Andrzejak, and David P. Ander-

son. On correlated availability in internet distributed

systems. In IEEE/ACM International Conference on

Grid Computing (Grid), Tsukuba,Japan, 2008.

[14] D. Long, A. Muir, and R. Golding. A Longitudi-

nal Survey of Internet Host Reliability. In 14th Sym-

posium on Reliable Distributed Systems, pages 2–9,

1995.

[15] M. Mutka and M. Livny. The available capacity of

a privately owned workstation environment . Perfor-

mance Evaluation, 4(12), July 1991.

[16] S. Saroiu, P.K. Gummadi, and S.D. Gribble. A mea-

surement study of peer-to-peer file sharing systems. In

Proceedinsg of MMCN, January 2002.

Page 12: Mining for Availability Models in Large-Scale Distributed ...Mining for Availability Models in Large-Scale Distributed Systems: A Case Study of SETI@home Bahman Javadi1, Derrick Kondo1,

[17] Ying Wang. Nonparametric tests for randomness. Re-

search report, UIUC, May 2003.

[18] J. Wingstrom and H. Casanova. Probabilistic alloca-

tion of tasks on desktop grids. In IPDPS’08, pages

1–8, 2008.