V této úloze budu zpracovávat data z MS v hokeji z roku 2019, konkrétně o data české reprezentace.
Struktura dat
Data jsou tvořena řádky obsahující údaje pro jednotlivé hráče. A to konkrétně číslo, jméno, pozici (GK - brankář, F - útočník, D - obránce), stranu (levá, pravá), výšku v metrech, váhu v kilogramech, datum narození, klub, věk, počet odehraných zápasů, počet gólů, počet asistencí, počet trestných minut, statistika +/-, počet gólů v přesilové hře, počet gólů v oslabení, počet rozdílových gólů, průměrný počet gólů za utkání, průměrný počet asistencí za utkání a průměrný počet bodů za utkání
Načtení dat
library(ggplot2)
Warning messages:
1: In readChar(file, size, TRUE) : truncating string with embedded nuls
2: In readChar(file, size, TRUE) : truncating string with embedded nuls
3: In readChar(file, size, TRUE) : truncating string with embedded nuls
4: In readChar(file, size, TRUE) : truncating string with embedded nuls
5: In readChar(file, size, TRUE) : truncating string with embedded nuls
6: In readChar(file, size, TRUE) : truncating string with embedded nuls
7: In readChar(file, size, TRUE) : truncating string with embedded nuls
8: In readChar(file, size, TRUE) : truncating string with embedded nuls
9: In readChar(file, size, TRUE) : truncating string with embedded nuls
library(dplyr)
library(ggpubr)
data <- read.csv("hokej2019.csv", sep = ";")
head(data)
NA
1
V tomto testu budu zkoumat, zda existuje vztah mezi počtem odehraných utkání a celkovým počtem získaných bodů. Očekávám, že čím více zápasů hráč odehrál, tím větší počet bodů získal. Provedu tedy lineární regresi. Nulová hypotéza: mezi počtem odehraných utkání a počtem získaných bodů není lineární vztah.
Nejprve si z dat vyberu vektory obsahující počty získaných bodů a počty odehraných utkání pro jednotlivé hráče mimo brankářů
players_no_gk <- data %>%
filter(POS != "GK")
points <- players_no_gk$P; points
[1] 4 14 4 3 11 2 4 6 10 12 2 1 2 7 3 12 1 16 5 1 0 1
games <- players_no_gk$GP; games
[1] 7 10 10 6 10 5 10 10 10 10 8 10 10 10 10 10 9 10 9 5 8 9
Podívám se, jak data vypadají.
ggplot(players_no_gk, aes(x=GP, y=P)) +
geom_point(size=2, alpha=0.8)
![](data:image/png;base64,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)
Poté spočítám průměrný počet získaných bodů a průměrný počet odehraných zápasů.
points_mean = mean(points); points_mean
[1] 5.5
games_mean = mean(games); games_mean
[1] 8.909091
Spočítám a a b pro regresi.
a = sum((games-games_mean)*(points-points_mean))/sum((games-games_mean)^2); a
[1] 1.370821
b = pointsm - a*gamesm; b
[1] -6.712766
Vynesu přímku do grafu
ggplot(players_no_gk, aes(x=GP,y=P)) +
geom_point(size=2) +
geom_abline(slope=a, intercept=b, color="red")
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAGwCAMAAAB8TkaXAAAAn1BMVEUAAAAAADoAAGYAOpAzMzM6AAA6ADo6kNtNTU1NTW5NTY5NbqtNjshmAABmtv9uTU1uTW5uTY5ubqtuq8huq+SOTU2OTW6OTY6ObquOyP+QOgCQ2/+rbk2rbm6rbo6rjk2ryKur5P+2ZgC2///Ijk3I///bkDrb///kq27k///r6+v/AAD/tmb/yI7/25D/5Kv//7b//8j//9v//+T///8dHVuYAAAACXBIWXMAAA7DAAAOwwHHb6hkAAASvElEQVR4nO2dfV8bxxWF1cRtZDvvjZOSOi844OA6hBD0/T9bJSEBArS72rMzc8/Vc//oz+5ydM9hHk9Gs7PSbEFRpjVrbYCixhbwUrYFvJRtAS9lW8BL2RbwUrZ1ILz/66ruq6mkbn5zRQVeSermN1dU4JWkbn5zRQVeSermN1dU4JWkbn5zRQVeSermN1dU4JWkbn5zRQVeSermN1dU4JWkbn5zRQVeSermN1dU4JWkbn5zRQVeSermN1dU4JWkbn5zRQVeSermN1dU4JWkbn7dos5ms67XBV67ET2eqLNZJ73AK0nd/HpFnc266QVeSerm1ysq8BaVuvn1igq8RaVufs2isuYtKXXz6xaV3YaCUje/uaICryR185srKvBKUje/uaICryR185srKvBKUje/uaICryR185srKvBKUje/uaICryR185srKvBKUje/uaICryR185srKvBKUje/uaICryR185srKvBKUje/uaICryR185srKvBKUje/uaIOgvfqm/PF4mI+n786B972TYm6vTgA3ss1tGcnzLwxmhJ1e7Ef3rOXvy5n3pufToE3RlOibi8OXTZcv1kuG9aT74tldf00RdWtXnivvj59MPs2+YcWUOrmN1fUwfCu627d28RrQKmb31xRgVeSuvnNFXUwvJevPyxufmarLEBTom4vDp55L+bzl3cbDk28BpS6+c0VdRC8T6uJ14BSN7+5ogKvJHXzmysq8EpSN7+5ogKvJHXzmysq8EpSN7+5ogKvJHXzmysq8EpSN7+5ogKvJHXzmysq8EpSN7+5ogKvJHXzmysq8EpSN7+5ogKvJHXzmysq8EpSN79uUflClYJSN79mUfkqq5JSN79eUfkSwaJSN79eUYG3qNTNr1dU4C0q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)
Přímka docela dobře sedí pro hráče, kteří nehráli ve všech zápasech. U hráčů, kteří hráli všech 10 zápasů a kterých je největší množství jsou poměrně velké rozdíly - někdo neskóroval téměř žádné body, někteří hráči zas skórovali nadprůměrně.
relation <- lm(points~games)
summary(relation)
Call:
lm(formula = points ~ games)
Residuals:
Min 1Q Median 3Q Max
-5.995 -3.745 -0.310 2.718 9.005
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -6.7128 5.0732 -1.323 0.2007
games 1.3708 0.5599 2.448 0.0237 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 4.331 on 20 degrees of freedom
Multiple R-squared: 0.2306, Adjusted R-squared: 0.1921
F-statistic: 5.994 on 1 and 20 DF, p-value: 0.02371
relation$coefficients
(Intercept) games
-6.712766 1.370821
p-hodnota vyšla 0,02371, což je méně než hladina významnosti 0,05, takže nulovou hypotézu můžeme zamítnout.
2
V tomto testu budu zkoumat, zda je věk hráčů dobře modelovaný normálním rozdělením.
Budu k tomu používat chi-kvadrát test. Nulová hypotéza: Data jsou modelována normálním rozdělením. Hladina významnosti alfa bude 0.05
Postup
Nejprve si načtu vektor věku hráčů a podívám se, jak data vypadají na histogramu.
age <- data$Age
ggplot(data.frame(age), aes(x = age)) +
geom_histogram(bins=6, fill="#FF67A4", color="#e9ecef", alpha=0.8) +
ggtitle("Histogram věku hráčů")
![](data:image/png;base64,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)
Histogram vzpadá celkem nadějně, že by se skutečně mohlo jednat o normální rozdělení.
Spočítám průměr, rozptyl a směrodatnou odchylku.
age_mean <- mean(age); age_mean
[1] 26.68
age_var <- var(age); age_var
[1] 12.31
age_sd <- sd(age); age_sd
[1] 3.508561
Vytvořím věkové intervaly: <20, <23, <26, <29, <32, >= 32 Spočítám počet hráčů zastoupených v jednotlivých věkových intervalech a dále pro každý interval spočítám z-skóre. Z skóre počítám jako podíl, kde v čitateli je rozdíl horní hranice intervalu a průměru, ve jmenovateli je směrodatná odchylka
k <- 6
bounds <- c(20,23,26,29,32)
observed <- rep(0,6)
observed[1] <- sum(age < bounds[1])
observed[6] <- sum(age >= bounds[5])
for (i in 2:5) {
observed[i] <- sum(age < bounds[i]) - sum(age < bounds[i-1])
}
z_scores <- rep(0,5)
for (i in 1:5){
z_scores[i] <- (bounds[i] - age_mean) / age_sd
}
Ze z skóre spočítám plochu pod křivkou normální distribuce N(0,1)
area_under <- rep(0,6)
for (i in 1:5) {
area_under[i] = pnorm(z_scores[i])
}
area_under[6] = 1
Dále spočítám plochu v rámci intervalů
area_inside <- rep(0,6)
area_inside[1] = area_under[1]
for (i in 2:6){
area_inside[i] = area_under[i] - area_under[i-1]
}
Z toho spočítám očekávané počty hráčů v jednotlivých věkových intervalech
expected <- rep(0,6)
for (i in 1:6) {
expected[i] <- area_inside[i] * 25
}
Když mám spočítané pozorované a očekávané hodnoty pro jednotlivé intervaly, mohu provést chi-squared test. Počet stupňů volnosti je 5 (6 intervalů - 1)
chi <- 0
for (i in 1:6) {
chi <- chi + ((observed[i] - expected[i])^2)/expected[i]
}
Závěr
Pro hladinu významnosti a 5 stupňů volnosti je kritická hodnota 11.070. Protože hodnota vyšla menší nemůžeme hypotézu zamítnout.
Další možnosti
Ještě je možné podívat se na Q-Q plot (quantile - quantile plot)
ggqqplot(age)
![](data:image/png;base64,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)
Z grafu je vidět, že body jsou poměrně blízko přímce, což naznačuje, že by se mohlo jednat o normální rozdělení.
Dále je možné použít Shapiro-Wilkův test normality, pro který v R existuje funkce.
shapiro.test(age)
Shapiro-Wilk normality test
data: age
W = 0.98158, p-value = 0.9146
Protože vyšla p-hodnota vyšší než 0,05, nelze hypotézu zamítnout.
LS0tDQp0aXRsZTogIlN0YXRpc3Rpa2EgdsO9c2xlZGvFryBocsOhxI3FryBob2tlam92w6kgcmVwcmV6ZW50YWNlIMSMUiBuYSBNUyAyMDE5Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KViB0w6l0byDDumxvemUgYnVkdSB6cHJhY292w6F2YXQgZGF0YSB6IE1TIHYgaG9rZWppIHogcm9rdSAyMDE5LCBrb25rcsOpdG7EmyBvIGRhdGEgxI1lc2vDqSByZXByZXplbnRhY2UuDQoNCiMjIFDFr3ZvZCBkYXQNCkRhdGEganNlbSB6w61za2FsYSB6IGh0dHBzOi8vd3d3LnF1YW50aG9ja2V5LmNvbS93aGMvZW4vdGVhbXMvdGVhbS1jemVjaC1yZXB1YmxpYy1wbGF5ZXJzLTIwMTktd2hjLXN0YXRzLmh0bWwgYSBwcm9wb2ppbGEgamUgcyDDumRhamkgesOtc2thbsO9bWkgeiBodHRwczovL3d3dy5paWhmLmNvbS9wZGYvNjkwL2lobTY5MDBjemVfMzNfNV8wX2N6ZQ0KDQoNCiMjIFN0cnVrdHVyYSBkYXQNCkRhdGEganNvdSB0dm/FmWVuYSDFmcOhZGt5IG9ic2FodWrDrWPDrSDDumRhamUgcHJvIGplZG5vdGxpdsOpIGhyw6HEjWUuIEEgdG8ga29ua3LDqXRuxJsgxI3DrXNsbywgam3DqW5vLCBwb3ppY2kgKEdLIC0gYnJhbmvDocWZLCBGIC0gw7p0b8SNbsOtaywgRCAtIG9icsOhbmNlKSwgc3RyYW51IChsZXbDoSwgcHJhdsOhKSwgdsO9xaFrdSB2IG1ldHJlY2gsIHbDoWh1IHYga2lsb2dyYW1lY2gsIGRhdHVtIG5hcm96ZW7DrSwga2x1YiwgdsSbaywgcG/EjWV0IG9kZWhyYW7DvWNoIHrDoXBhc8WvLCBwb8SNZXQgZ8OzbMWvLCBwb8SNZXQgYXNpc3RlbmPDrSwgcG/EjWV0IHRyZXN0bsO9Y2ggbWludXQsIHN0YXRpc3Rpa2EgKy8tLCBwb8SNZXQgZ8OzbMWvIHYgcMWZZXNpbG92w6kgaMWZZSwgcG/EjWV0IGfDs2zFryB2IG9zbGFiZW7DrSwgcG/EjWV0IHJvemTDrWxvdsO9Y2ggZ8OzbMWvLCBwcsWvbcSbcm7DvSBwb8SNZXQgZ8OzbMWvIHphIHV0a8OhbsOtLCBwcsWvbcSbcm7DvSBwb8SNZXQgYXNpc3RlbmPDrSB6YSB1dGvDoW7DrSBhIHByxa9txJtybsO9IHBvxI1ldCBib2TFryB6YSB1dGvDoW7DrQ0KDQojIyBOYcSNdGVuw60gZGF0DQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncHVicikNCmRhdGEgPC0gIHJlYWQuY3N2KCJob2tlajIwMTkuY3N2Iiwgc2VwID0gIjsiKQ0KaGVhZChkYXRhKQ0KDQpgYGANCg0KIyMgMQ0KViB0b210byB0ZXN0dSBidWR1IHprb3VtYXQsIHpkYSBleGlzdHVqZSB2enRhaCBtZXppIHBvxI10ZW0gb2RlaHJhbsO9Y2ggdXRrw6Fuw60gYSBjZWxrb3bDvW0gcG/EjXRlbSB6w61za2Fuw71jaCBib2TFry4gT8SNZWvDoXbDoW0sIMW+ZSDEjcOtbSB2w61jZSB6w6FwYXPFryBocsOhxI0gb2RlaHLDoWwsIHTDrW0gdsSbdMWhw60gcG/EjWV0IGJvZMWvIHrDrXNrYWwuIFByb3ZlZHUgdGVkeSBsaW5lw6FybsOtIHJlZ3Jlc2kuDQpOdWxvdsOhIGh5cG90w6l6YTogbWV6aSBwb8SNdGVtIG9kZWhyYW7DvWNoIHV0a8OhbsOtIGEgcG/EjXRlbSB6w61za2Fuw71jaCBib2TFryBuZW7DrSBsaW5lw6FybsOtIHZ6dGFoLg0KDQpOZWpwcnZlIHNpIHogZGF0IHZ5YmVydSB2ZWt0b3J5IG9ic2FodWrDrWPDrSBwb8SNdHkgesOtc2thbsO9Y2ggYm9kxa8gYSBwb8SNdHkgb2RlaHJhbsO9Y2ggdXRrw6Fuw60gcHJvIGplZG5vdGxpdsOpIGhyw6HEjWUgbWltbyBicmFua8OhxZnFrw0KYGBge3J9DQpwbGF5ZXJzX25vX2drIDwtIGRhdGEgJT4lDQogIGZpbHRlcihQT1MgIT0gIkdLIikNCnBvaW50cyA8LSBwbGF5ZXJzX25vX2drJFA7IHBvaW50cw0KZ2FtZXMgPC0gcGxheWVyc19ub19nayRHUDsgZ2FtZXMNCmBgYA0KUG9kw612w6FtIHNlLCBqYWsgZGF0YSB2eXBhZGFqw60uDQpgYGB7cn0NCmdncGxvdChwbGF5ZXJzX25vX2drLCBhZXMoeD1HUCwgeT1QKSkgKyANCiAgZ2VvbV9wb2ludChzaXplPTIsIGFscGhhPTAuOCkNCmBgYA0KDQpQb3TDqSBzcG/EjcOtdMOhbSBwcsWvbcSbcm7DvSBwb8SNZXQgesOtc2thbsO9Y2ggYm9kxa8gYSBwcsWvbcSbcm7DvSBwb8SNZXQgb2RlaHJhbsO9Y2ggesOhcGFzxa8uDQpgYGB7cn0NCnBvaW50c19tZWFuID0gbWVhbihwb2ludHMpOyBwb2ludHNfbWVhbg0KZ2FtZXNfbWVhbiA9IG1lYW4oZ2FtZXMpOyBnYW1lc19tZWFuDQpgYGANClNwb8SNw610w6FtIGEgYSBiIHBybyByZWdyZXNpLg0KYGBge3J9DQphID0gc3VtKChnYW1lcy1nYW1lc19tZWFuKSoocG9pbnRzLXBvaW50c19tZWFuKSkvc3VtKChnYW1lcy1nYW1lc19tZWFuKV4yKTsgYQ0KYiA9IHBvaW50c20gLSBhKmdhbWVzbTsgYg0KYGBgDQpWeW5lc3UgcMWZw61ta3UgZG8gZ3JhZnUNCmBgYHtyfQ0KZ2dwbG90KHBsYXllcnNfbm9fZ2ssIGFlcyh4PUdQLHk9UCkpICsgDQogIGdlb21fcG9pbnQoc2l6ZT0yKSArIA0KICBnZW9tX2FibGluZShzbG9wZT1hLCBpbnRlcmNlcHQ9YiwgY29sb3I9InJlZCIpDQpgYGANClDFmcOtbWthIGRvY2VsYSBkb2LFmWUgc2Vkw60gcHJvIGhyw6HEjWUsIGt0ZcWZw60gbmVocsOhbGkgdmUgdsWhZWNoIHrDoXBhc2VjaC4gVSBocsOhxI3Frywga3RlxZnDrSBocsOhbGkgdsWhZWNoIDEwIHrDoXBhc8WvIGEga3RlcsO9Y2ggamUgbmVqdsSbdMWhw60gbW5vxb5zdHbDrSBqc291IHBvbcSbcm7EmyB2ZWxrw6kgcm96ZMOtbHkgLSBuxJtrZG8gbmVza8Ozcm92YWwgdMOpbcSbxZkgxb7DoWRuw6kgYm9keSwgbsSba3RlxZnDrSBocsOhxI1pIHphcyBza8Ozcm92YWxpIG5hZHByxa9txJtybsSbLg0KDQpgYGB7cn0NCnJlbGF0aW9uIDwtIGxtKHBvaW50c35nYW1lcykNCg0Kc3VtbWFyeShyZWxhdGlvbikNCnJlbGF0aW9uJGNvZWZmaWNpZW50cyANCmBgYA0KDQpwLWhvZG5vdGEgdnnFoWxhIDAsMDIzNzEsIGNvxb4gamUgbcOpbsSbIG5lxb4gaGxhZGluYSB2w716bmFtbm9zdGkgMCwwNSwgdGFrxb5lIG51bG92b3UgaHlwb3TDqXp1IG3Fr8W+ZW1lIHphbcOtdG5vdXQuDQoNCiMjIDINClYgdG9tdG8gdGVzdHUgYnVkdSB6a291bWF0LCB6ZGEgamUgdsSbayBocsOhxI3FryBkb2LFmWUgbW9kZWxvdmFuw70gbm9ybcOhbG7DrW0gcm96ZMSbbGVuw61tLg0KDQpCdWR1IGsgdG9tdSBwb3XFvsOtdmF0IGNoaS1rdmFkcsOhdCB0ZXN0LiANCk51bG92w6EgaHlwb3TDqXphOiBEYXRhIGpzb3UgbW9kZWxvdsOhbmEgbm9ybcOhbG7DrW0gcm96ZMSbbGVuw61tLiBIbGFkaW5hIHbDvXpuYW1ub3N0aSBhbGZhIGJ1ZGUgMC4wNQ0KDQojIyMgUG9zdHVwDQoNCk5lanBydmUgc2kgbmHEjXR1IHZla3RvciB2xJtrdSBocsOhxI3FryBhIHBvZMOtdsOhbSBzZSwgamFrIGRhdGEgdnlwYWRhasOtIG5hIGhpc3RvZ3JhbXUuDQoNCmBgYHtyfQ0KYWdlIDwtIGRhdGEkQWdlDQpnZ3Bsb3QoZGF0YS5mcmFtZShhZ2UpLCBhZXMoeCA9IGFnZSkpICsgDQogIGdlb21faGlzdG9ncmFtKGJpbnM9NiwgZmlsbD0iI0ZGNjdBNCIsIGNvbG9yPSIjZTllY2VmIiwgYWxwaGE9MC44KSArDQogIGdndGl0bGUoIkhpc3RvZ3JhbSB2xJtrdSBocsOhxI3FryIpDQoNCmBgYA0KDQpIaXN0b2dyYW0gdnpwYWTDoSBjZWxrZW0gbmFkxJtqbsSbLCDFvmUgYnkgc2Ugc2t1dGXEjW7EmyBtb2hsbyBqZWRuYXQgbyBub3Jtw6FsbsOtIHJvemTEm2xlbsOtLg0KDQpTcG/EjcOtdMOhbSBwcsWvbcSbciwgcm96cHR5bCBhIHNtxJtyb2RhdG5vdSBvZGNoeWxrdS4NCmBgYHtyfQ0KYWdlX21lYW4gPC0gbWVhbihhZ2UpOyBhZ2VfbWVhbg0KYWdlX3ZhciA8LSB2YXIoYWdlKTsgYWdlX3Zhcg0KYWdlX3NkIDwtIHNkKGFnZSk7IGFnZV9zZA0KYGBgDQoNClZ5dHZvxZnDrW0gdsSba292w6kgaW50ZXJ2YWx5OiA8MjAsIDwyMywgPDI2LCA8MjksIDwzMiwgPj0gMzINClNwb8SNw610w6FtIHBvxI1ldCBocsOhxI3FryB6YXN0b3VwZW7DvWNoIHYgamVkbm90bGl2w71jaCB2xJtrb3bDvWNoIGludGVydmFsZWNoIGEgZMOhbGUgcHJvIGthxb5kw70gaW50ZXJ2YWwgc3BvxI3DrXTDoW0gei1za8OzcmUuDQpaIHNrw7NyZSBwb8SNw610w6FtIGpha28gcG9kw61sLCBrZGUgdiDEjWl0YXRlbGkgamUgcm96ZMOtbCBob3Juw60gaHJhbmljZSBpbnRlcnZhbHUgYSBwcsWvbcSbcnUsIHZlIGptZW5vdmF0ZWxpIGplIHNtxJtyb2RhdG7DoSBvZGNoeWxrYQ0KYGBge3J9DQprIDwtIDYNCmJvdW5kcyA8LSBjKDIwLDIzLDI2LDI5LDMyKQ0KDQpvYnNlcnZlZCA8LSByZXAoMCw2KQ0Kb2JzZXJ2ZWRbMV0gPC0gc3VtKGFnZSA8IGJvdW5kc1sxXSkNCm9ic2VydmVkWzZdIDwtIHN1bShhZ2UgPj0gYm91bmRzWzVdKQ0KZm9yIChpIGluIDI6NSkgew0KICBvYnNlcnZlZFtpXSA8LSBzdW0oYWdlIDwgYm91bmRzW2ldKSAtIHN1bShhZ2UgPCBib3VuZHNbaS0xXSkNCn0NCg0Kel9zY29yZXMgPC0gcmVwKDAsNSkNCmZvciAoaSBpbiAxOjUpew0KICB6X3Njb3Jlc1tpXSA8LSAgKGJvdW5kc1tpXSAtIGFnZV9tZWFuKSAvIGFnZV9zZA0KfQ0KYGBgDQoNClplIHogc2vDs3JlIHNwb8SNw610w6FtIHBsb2NodSBwb2Qga8WZaXZrb3Ugbm9ybcOhbG7DrSBkaXN0cmlidWNlIE4oMCwxKQ0KYGBge3J9DQphcmVhX3VuZGVyIDwtIHJlcCgwLDYpDQpmb3IgKGkgaW4gMTo1KSB7DQogIGFyZWFfdW5kZXJbaV0gPSBwbm9ybSh6X3Njb3Jlc1tpXSkNCn0NCmFyZWFfdW5kZXJbNl0gPSAxDQpgYGANCkTDoWxlIHNwb8SNw610w6FtIHBsb2NodSB2IHLDoW1jaSBpbnRlcnZhbMWvDQpgYGB7cn0NCmFyZWFfaW5zaWRlIDwtIHJlcCgwLDYpDQphcmVhX2luc2lkZVsxXSA9IGFyZWFfdW5kZXJbMV0NCmZvciAoaSBpbiAyOjYpew0KICBhcmVhX2luc2lkZVtpXSA9IGFyZWFfdW5kZXJbaV0gLSBhcmVhX3VuZGVyW2ktMV0NCn0NCmBgYA0KWiB0b2hvIHNwb8SNw610w6FtIG/EjWVrw6F2YW7DqSBwb8SNdHkgaHLDocSNxa8gdiBqZWRub3RsaXbDvWNoIHbEm2tvdsO9Y2ggaW50ZXJ2YWxlY2gNCmBgYHtyfQ0KZXhwZWN0ZWQgPC0gcmVwKDAsNikNCmZvciAoaSBpbiAxOjYpIHsNCiAgZXhwZWN0ZWRbaV0gPC0gYXJlYV9pbnNpZGVbaV0gKiAyNQ0KfQ0KYGBgDQpLZHnFviBtw6FtIHNwb8SNw610YW7DqSBwb3pvcm92YW7DqSBhIG/EjWVrw6F2YW7DqSBob2Rub3R5IHBybyBqZWRub3RsaXbDqSBpbnRlcnZhbHksIG1vaHUgcHJvdsOpc3QgY2hpLXNxdWFyZWQgdGVzdC4NClBvxI1ldCBzdHVwxYjFryB2b2xub3N0aSBqZSA1ICg2IGludGVydmFsxa8gLSAxKQ0KYGBge3J9DQpjaGkgPC0gMA0KZm9yIChpIGluIDE6Nikgew0KICBjaGkgPC0gY2hpICsgKChvYnNlcnZlZFtpXSAtIGV4cGVjdGVkW2ldKV4yKS9leHBlY3RlZFtpXQ0KfQ0KYGBgDQojIyMgWsOhdsSbcg0KUHJvIGhsYWRpbnUgdsO9em5hbW5vc3RpIGEgNSBzdHVwxYjFryB2b2xub3N0aSBqZSBrcml0aWNrw6EgaG9kbm90YSAxMS4wNzAuIFByb3Rvxb5lIGhvZG5vdGEgdnnFoWxhIG1lbsWhw60gbmVtxa/FvmVtZSBoeXBvdMOpenUgemFtw610bm91dC4NCg0KIyMjIERhbMWhw60gbW/Fvm5vc3RpDQpKZcWhdMSbIGplIG1vxb5uw6kgcG9kw612YXQgc2UgbmEgUS1RIHBsb3QgKHF1YW50aWxlIC0gcXVhbnRpbGUgcGxvdCkNCmBgYHtyfQ0KZ2dxcXBsb3QoYWdlKQ0KYGBgDQpaIGdyYWZ1IGplIHZpZMSbdCwgxb5lIGJvZHkganNvdSBwb23Em3JuxJsgYmzDrXprbyBwxZnDrW1jZSwgY2/FviBuYXpuYcSNdWplLCDFvmUgYnkgc2UgbW9obG8gamVkbmF0IG8gbm9ybcOhbG7DrSByb3pkxJtsZW7DrS4NCg0KRMOhbGUgamUgbW/Fvm7DqSBwb3XFvsOtdCBTaGFwaXJvLVdpbGvFr3YgdGVzdCBub3JtYWxpdHksIHBybyBrdGVyw70gdiBSIGV4aXN0dWplIGZ1bmtjZS4NCmBgYHtyfQ0Kc2hhcGlyby50ZXN0KGFnZSkNCmBgYA0KUHJvdG/FvmUgdnnFoWxhIHAtaG9kbm90YSB2ecWhxaHDrSBuZcW+IDAsMDUsIG5lbHplIGh5cG90w6l6dSB6YW3DrXRub3V0Lg0K