#include <bits/stdc++.h> #define ALL(x) (x).begin(), (x).end() #define SZ(x) ((int)(x).size()) #define st first #define nd second using namespace std; #define sim template < class c #define ris return * this #define dor > debug & operator << #define eni(x) sim > typename \ enable_if<sizeof dud<c>(0) x 1, debug&>::type operator<<(c i) { sim > struct rge { c b, e; }; sim > rge<c> range(c i, c j) { return rge<c>{i, j}; } sim > auto dud(c* x) -> decltype(cerr << *x, 0); sim > char dud(...); struct debug { #ifdef LOCAL ~debug() { cerr << endl; } eni(!=) cerr << boolalpha << i; ris; } eni(==) ris << range(begin(i), end(i)); } sim, class b dor(pair < b, c > d) { ris << "(" << d.first << ", " << d.second << ")"; } sim dor(rge<c> d) { *this << "["; for (auto it = d.b; it != d.e; ++it) *this << ", " + 2 * (it == d.b) << *it; ris << "]"; } #else sim dor(const c&) { ris; } #endif }; #define imie(...) " [" << #__VA_ARGS__ ": " << (__VA_ARGS__) << "] " using ll = long long; using pii = pair<int,int>; using pll = pair<ll,ll>; using vi = vector<int>; using vll = vector<ll>; using i128 = __int128_t; ostream &operator<<(ostream &os, i128 val) { assert(val >= 0); if (val == 0) { return os << "0"; } string s; while (val) { s += ('0' + val % 10); val /= 10; } reverse(ALL(s)); return os << s; } i128 my_gcd(i128 a, i128 b) { while (b) { a %= b; swap(a, b); } return a; } const string strategy_str = R"dziendobry(=>?@9ABC!DE-F-G)H)I)J*KL+M+N+*M+*EF-G)H)I)O*PQ+R+*SQ+R+*Q+*F)'CL-E-T)J)U)H*FM+N+*M+KN+**D1E1F1L0HT/J/U/0J/0BCP-D-V)W)O)G*SF+Q+R+*Q+*D1E1F1P0VO/G/0WO/G/0O/0C13XTB!@L-E-C)J)H)U*MY+N+Z+*N+*AC!EL%!J!H!DL#!FL#!!CLE%!!EL'U$J$Y%N%Z%$LJH$DF%M%K%$F%$DH%'FH%'H$'!@B[Y-L-U)\)])J*EN+Z+*N+MZ+**YL-)L\)])U)^*_`+a+*b`+a+*`+*'L1[1Y1E0CJ/U/0J/HU/00BA!C!D[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!E[Y%L%U!\!]!J"N#Z#"YL%!\!]!U!L^"_`#a#"b`#a#"`#"!F[Y%L%U!\!]!J"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!P[Y$L$J!U!\!]!N"MZ"!!YL$!^!\!]!U!L_`"a"!b`"a"!`"!![YVO#G#$WO#G#$O#$LVO#G#$WO#G#$O#$VO!G!J!U!\!]!N"MZ"!!WO!G!J!U!\!]!N"MZ"!!O!J!U!\!]!N"MZ"!!YLVO#G#$WO#G#$O#$!VO!G!^!\!]!U!L_`"a"!b`"a"!`"!!WO!G!^!\!]!U!L_`"a"!b`"a"!`"!!O!^!\!]!U!L_`"a"!b`"a"!`"!!ACLE%!U!J!E[#Y#!!DEL)[)Y)U'J'(L)F[Y'JU&\&]&'U&'YJ&U&'$[YGH&J&'H&IJ&''GHJU%\%]%&U%&JU%\%]%&U&'HJU%\%]%&U%&IJU%\%]%&U&'JU&\&]&'U&'YGHJ%U%&J%U&'HJ%U%&IJ%U&'J&U&'GH#J#$H#IJ#$$EL)[)Y)U'J'(FL)[YJ&H&'JU%\%]%&HU%&U&'YJ%HU%&U&'J#H#$LH'J'([Y$JU#\#]#$U#$YJ#U#$!CL)E[)Y)U'J'(P[Y'JU&\&]&'U&'YJ&U&'$D[Y'JU&\&]&'U&'YJ&U&'$[YV&W&O&'VJU%\%]%&U%&WJU%\%]%&U%&OJU%\%]%&U%&JU&\&]&'U&'YVJ%U%&WJ%U%&OJ%U%&J&U&'V#W#O#$EL+[+Y+*L+[Y*JU)\)])*U)*YJ)U)*'@TB_-[-c)d)^)\*bY+`+a+*`+*1B[1Y1L1_0c^/\/0d^/\/0^/03BAC!T!DE[%Y%L%_$c^#\#$d^#\#$^#$F[%Y%L%_$c^#\#$d^#\#$^#$G!H!I![J"KL#M#N#"M#"YJ"KL#M#N#"M#"LJ"K#M#"J!_KM"N"!M"!c^!\!KM"N"!M"!d^!\!KM"N"!M"!^!KM"N"!M"!EF[%Y%L%_$c^#\#$d^#\#$^#$G!H!I![O"PQ#R#"SQ#R#"Q#"YO"PQ#R#"SQ#R#"Q#"LO"PQ#R#"SQ#R#"Q#"O!_PQ"R"!SQ"R"!Q"!c^!\!PQ"R"!SQ"R"!Q"!d^!\!PQ"R"!SQ"R"!Q"!^!PQ"R"!RS"Q"!Q"!!CT!P[%Y%L%_$c^#\#$d^#\#$^#$D[%Y%L%_$c^#\#$d^#\#$^#$V!W!O![G"SF#Q#R#"Q#"YG"SF#Q#R#"Q#"LG"SF#Q#R#"Q#"G!_SF"Q"R"!Q"!c^!\!SF"Q"R"!Q"!d^!\!SF"Q"R"!Q"!^!SF"Q"R"!Q"!TD_%[%c!d!^!\"bY#`#a#"`#"E_%[%c!d!^!\"bY#`#a#"`#"F_%[%c!d!^!\"bY#`#a#"`#"P_$[$c!d!^!\!bY"`"a"!`"!_VO#G#$WO#G#$O#$[VO#G#$WO#G#$O#$Vc!O!G!d!^!\!bY"`"a"!`"!c!WO!G!d!^!\!bY"`"a"!`"!O!d!^!\!bY"`"a"!`"!D[)Y)L)_(c^'\'(d^'\'(^'(E[)Y)L)_(c^'\'(d^'\'(^'(F[)Y)L)_(c^'\'(d^'\'(^'(P[(Y(L(_'c^&\&'d^&\&'^&'[VO'G'(WO'G'(O'(YVO'G'(WO'G'(O'(LVO'G'(WO'G'(O'(_VO&G&'WO&G&'O&'VOc^%\%&d^%\%&^%&Gc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'WOc^%\%&d^%\%&^%&Gc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'Oc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'ACTLE%!!LE'J$H$F%M%K%$EUJ$[%Y%$[JY%Z%N%$'YJ%'J$'!TDE)L)F_'['c&d&^&'_GH&J&'H&IJ&''[GH&J&'H&IJ&''GcH%J%&dH%J%&^H%J%&H&J&'Hc%d%^%&IcJ%&dJ%&^J%&J&'c&d&^&'E)FL)_J&H&'[J&H&'cJ%H%&dJ%H%&^J%H%&J&H&'LH'J'(_$[$c#d#^#$DE+L+F*GH)J)*H)IJ)**E+FL+J)H)*L*'CTL)E)P_'['c&d&^&'D_'['c&d&^&'_V&W&O&'[V&W&O&'Vc%d%^%&Wc%d%^%&Oc%d%^%&c&d&^&'L+E+P*D*V)W)O)*TE+L+_*[*c)d)^)*-ecX!?@_-[-T)^)\)d*fb+`+*gb+`+*b+*AB!C!D_%[%T!^!\!d"fb#`#"gb#`#"b#"E_%[%T!^!\!d"fb#`#"gb#`#"b#"F_%[%T!^!\!d"fb#`#"gb#`#"b#"_L$HT#J#U#$J#$[L$HT#J#U#$J#$T!d!^!\!Lfb"`"!gb"`"!b"!HJ!U!fb"`"!gb"`"!b"!J!fb"`"!gb"`"!b"!BC!D_%[%T!^!\!d"fb#`#"gb#`#"b#"E_%[%T!^!\!d"fb#`#"gb#`#"b#"F_%[%T!^!\!d"fb#`#"gb#`#"b#"P_$[$T!d!^!\!fb"`"!gb"`"!b"!_VO#G#$WO#G#$O#$[VO#G#$WO#G#$O#$VT!O!G!d!^!\!fb"`"!gb"`"!b"!T!WO!G!d!^!\!fb"`"!gb"`"!b"!O!d!^!\!fb"`"!gb"`"!b"!C_%[%T!^!\!d"fb#`#"gb#`#"b#"_'['T#^#\#d$fb%`%$gb%`%$b%$TB!@_[%!!!@B_[%^!\!Y#L#!!_['^\$LY%`%a%$Y%$L\%'Y\%'\$'[d$^$f%g%b%$!!?@Xhf-_-i)j)d)^*g[+b+`+*b+*f_-)_i)j)d)k*lm+n+*om+n+*m+*'h1f1_1[0dT/^/\/0^/0XAB!C!hfD%E%F%L$HT#J#U#$J#$_D%E%F%L$HT#J#U#$J#$i!j!d!D^"g[#b#`#"b#"E^"g[#b#`#"b#"F^"g[#b#`#"b#"^!Lg["b"`"!b"!HT!J!U!g["b"`"!b"!J!g["b"`"!b"!f_D%E%F%L$HT#J#U#$J#$!i!j!d!_Dk"lm#n#"om#n#"m#"Ek"lm#n#"om#n#"m#"Fk"lm#n#"om#n#"m#"k!Llm"n"!om"n"!m"!HT!J!U!lm"n"!om"n"!m"!J!lm"n"!om"n"!m"!!BC!hfD%E%F%P$VO#G#$WO#G#$O#$_D%E%F%P$VO#G#$WO#G#$O#$i!j!d!D^"g[#b#`#"b#"E^"g[#b#`#"b#"F^"g[#b#`#"b#"^!Pg["b"`"!b"!VO!G!g["b"`"!b"!WO!G!g["b"`"!b"!O!g["b"`"!b"!f_D%E%F%P$VO#G#$WO#G#$O#$!i!j!d!_Dk"lm#n#"om#n#"m#"Ek"lm#n#"om#n#"m#"Fk"lm#n#"om#n#"m#"k!Plm"n"!om"n"!m"!VO!G!lm"n"!om"n"!m"!WO!G!lm"n"!om"n"!m"!O!lm"n"!om"n"!m"!!Chf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"lm#n#"om#n#"m#"!hf'_'i#j#d#^$g[%b%`%$b%$f_'#_i#j#d#k$lm%n%$om%n%$m%$!ABC!hDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!fDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!_DE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!DE[$dT#^#\#$^#$F[$dT#^#\#$^#$G!H!I!J![KL"M"N"!M"!dT!^!\!KL"M"N"!M"!^!KL"M"N"!M"!EF[$dT#^#\#$^#$O!G!H!I![PQ"R"!SQ"R"!Q"!dT!^!\!PQ"R"!SQ"R"!Q"!^!PQ"R"!SQ"R"!Q"!!ChL%E%T!J!U!H"FM#N#"M#KN#""fL%E%T!J!U!H"FM#N#"M#KN#""_L%E%T!J!U!H"FM#N#"M#KN#""[L$E$T!J!H!U!FM"N"!M"KN"!!LdT#^#\#$^#$EdT#^#\#$^#$T!d^!J!H!\!U!FM"N"!M"KN"!!^!J!H!U!FM"N"!M"KN"!!hD)E)F)L(HT'J'U'(J'(fD)E)F)L(HT'J'U'(J'(_D)E)F)L(HT'J'U'(J'(D[(dT'^'\'(^'(E[(dT'^'\'(^'(F[(dT'^'\'(^'([L'HT&J&U&'J&'LdT&^&\&'^&'dHT%^J%U%&\J%U%&J&U&'JT%^%\%&T&^&\&'^HT%J%U%&J%&HT&J&U&'J&'BCPh%f%_%[$dT#^#\#$^#$Dh%f%_%[$dT#^#\#$^#$V!W!O!hG"SF#Q#R#"Q#"fG"SF#Q#R#"Q#"_G"SF#Q#R#"Q#"G![SF"Q"R"!Q"!dT!^!\!SF"Q"R"!Q"!^!SF"Q"R"!Q"!hD)E)F)P(VO'G'(WO'G'(O'(fD)E)F)P(VO'G'(WO'G'(O'(_D)E)F)P(VO'G'(WO'G'(O'(D[(dT'^'\'(^'(E[(dT'^'\'(^'(F[(dT'^'\'(^'(P['dT&^&\&'^&'[VO&G&'WO&G&'O&'VOdT%^%\%&^%&GdT%^%\%&^%&dT&^&\&'^&'WOdT%^%\%&^%&GdT%^%\%&^%&dT&^&\&'^&'OdT%^%\%&^%&dT&^&\&'^&'Ch)f)_)[(dT'^'\'(^'(h+f+_+[*dT)^)\)*^)*XT!B!@hfL%[%Y%E$CJ#U#$J#HU#$$_L%[%Y%E$CJ#U#$J#HU#$$i!j!d!L^"g[#b#`#"b#"[^"g#b#"Y^"gb#`#"b#"^!Egb"`"!b"!CJ!U!gb"`"!b"!J!HU!gb"`"!b"!gb"`"!b"!f_L%[%Y%E$CJ#U#$J#HU#$$!i!j!d!_Lk"lm#n#"om#n#"m#"[k"lm#n#"om#n#"m#"Yk"lm#n#"om#n#"m#"k!Elm"n"!om"n"!m"!CJ!U!lm"n"!om"n"!m"!J!HU!lm"n"!om"n"!m"!lm"n"!no"m"!m"!!!@TB_[%!d!^!h[#!f[#!!h_)[)fL'E'C&J&H&'Lid&^&'jd&^&'d&'Eid&^&'jd&^&'d&'idC%J%H%&^C%J%H%&C&J&H&'jdC%J%H%&^C%J%H%&C&J&H&'dC%J%H%&C&J&H&'f_)[)Ld&^&'Ed&^&'dC%J%H%&^C%J%H%&C&J&H&'_)[d'^'(L$E$C#J#H#$Bh_[)Y)L)^'\'([)fYL'^&\&'L^\&]&U&'\&'$YLid&^&'jd&^&'d&'id^%\%&^%\&'jd^%\%&^%\&'d^%\%&^&\&'Lid^\%]%U%&\%&^\%]%U%&\&'jd^\%]%U%&\%&^\%]%U%&\&'d^\%]%U%&\%&^\&]&U&'\&'id#^#$jd#^#$d#$f_[)Y)L)^'\'([)YLd&^&'d^%\%&^%\&'Ld^\%]%U%&\%&^\%]%U%&\&'d#^#$_[)Y)L)^'\'([d'^'(YL$^#\#$L^\#]#U#$\#$!h_+[+f*id)^)*jd)^)*d)*f_+[+d)^)*_+[*'AB!C!T!hD_E#L#F"GH!J!"H!IJ!""[E#L#F"GH!J!"H!IJ!""fE"L"!id!^!E"L"!jd!^!E"L"!d!E"L"!E_#[#f"id!^!"jd!^!"d!"F_L#J!H!"[L#J!H!"fL"!id!^!L"!jd!^!L"!d!L"!_L"![L"!!fD_E#L#F"GH!J!"H!IJ!""[E#L#F"GH!J!"H!IJ!""d!^!E"L"!E_#[#d!^!"F_L#J!H!"[L#J!H!"d!^!L"!_L"![L"!!_DE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!D[E"L"!!E["!F[L"!!!B!CT!h_L#E#P"D"V!W!O!"[L#E#P"D"V!W!O!"fL"E"!id!^!L"E"!jd!^!L"E"!d!L"E"!f_L#E#P"D"V!W!O!"[L#E#P"D"V!W!O!"d!^!L"E"!_L#E#P"D"V!W!O!"[L"E"!!Th_E#L#["![E#L#d!^!"!f_E#L#["![E#L#d!^!"!_E#L#["!d!^![E"L"!!h_%[%f$id#^#$jd#^#$d#$f_%[%d#^#$_%[$!?@cXl-h-V)p)k)i*of+m+n+*m+*1Xh1f1_1l0Vk/i/0pk/i/0k/03cXAB!C!lD%E%F%L$HT#J#U#$J#$hD%E%F%L$HT#J#U#$J#$V!p!k!Di"of#m#n#"m#"Ei"of#m#n#"m#"Fi"of#m#n#"m#"i!Lof"m"n"!m"!HT!J!U!of"m"n"!m"!J!of"m"n"!m"!BC!lD%E%F%P$VO#G#$WO#G#$O#$hD%E%F%P$VO#G#$WO#G#$O#$V!p!k!Di"of#m#n#"m#"Ei"of#m#n#"m#"Fi"of#m#n#"m#"i!Pof"m"n"!m"!WO!G!of"m"n"!m"!O!of"m"n"!m"!Cl%h%V!p!k!i"of#m#n#"m#"l'h'V#p#k#i$of%m%n%$m%$ABC!DE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!CL%E%T!J!U!H"FM#N#"M#KN#""D)E)F)L(HT'J'U'(J'(BCP%D%V!W!O!G"SF#Q#R#"Q#"D)E)F)P(VO'G'(WO'G'(O'(C)+ABC!XhDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!fDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!_DE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!lDE$F$G!H!I!J!KL"M"N"!M"!EF$O!G!H!I!PQ"R"!SQ"R"!Q"!!DEVk#i#$pk#i#$k#$FVk#i#$pk#i#$k#$Vk!i!G!H!I!J!KL"M"N"!M"!pk!i!G!H!I!J!KL"M"N"!M"!k!G!H!I!J!KL"M"N"!M"!EFVk#i#$pk#i#$k#$Vk!i!O!G!H!I!PQ"R"!SQ"R"!Q"!pk!i!O!G!H!I!PQ"R"!SQ"R"!Q"!k!O!G!H!I!PQ"R"!SQ"R"!Q"!!DE'F'G#H#I#J$KL%M%N%$M%$EF'G#H#I#O$PQ%R%$SQ%R%$Q%$F#!XChL%E%T!J!U!H"FM#N#"M#KN#""fL%E%T!J!U!H"FM#N#"M#KN#""_L%E%T!J!U!H"FM#N#"M#KN#""lL$E$T!J!H!U!FM"N"!M"KN"!!LVk#i#$pk#i#$k#$EVk#i#$pk#i#$k#$VT!k!i!J!H!U!FM"N"!M"KN"!!T!pk!i!J!H!U!FM"N"!M"NK"!!k!J!H!U!FM"N"!NM"K"!M"!hD)E)F)L(HT'J'U'(J'(fD)E)F)L(HT'J'U'(J'(_D)E)F)L(HT'J'U'(J'(lD(E(F(L'HT&J&U&'J&'DVk'i'(pk'i'(k'(EVk'i'(pk'i'(k'(FVk'i'(pk'i'(k'(LVk&i&'pk&i&'k&'VkHT%J%U%&J%&iHT%J%U%&J%&HT&J&U&'J&'pkHT%J%U%&J%&iHT%J%U%&J%&HT&J&U&'J&'kHT%J%U%&J%&HT&J&U&'J&'CL'E'T#J#U#H$FM%N%$M%KN%$$D+E+F+L*HT)J)U)*J)*XBCPh%f%_%l$Vk#i#$pk#i#$k#$Dh%f%_%l$Vk#i#$pk#i#$k#$V!W!O!hG"SF#Q#R#"Q#"fG"SF#Q#R#"Q#"_G"SF#Q#R#"Q#"G!lSF"Q"R"!Q"!pk!i!SF"Q"R"!Q"!k!SF"Q"R"!Q"!hD)E)F)P(VO'G'(WO'G'(O'(fD)E)F)P(VO'G'(WO'G'(O'(_D)E)F)P(VO'G'(WO'G'(O'(lD(E(F(P'VO&G&'WO&G&'O&'DVk'i'(pk'i'(k'(EVk'i'(pk'i'(k'(FVk'i'(pk'i'(k'(PVk&i&'pk&i&'k&'VkO%G%&iO%G%&O&G&'pWkO%G%&iO%G%&O&G&'Ok%i%&k&i&'kWO%G%&O%&WO&G&'O&'Ch)f)_)l(Vk'i'(pk'i'(k'(h+f+_+l*Vk)i)*pk)i)*k)*BCP'D'V#W#O#G$SF%Q%R%$Q%$D+E+F+P*VO)G)*WO)G)*O)*C+-XcT!B!@lL%[%Y%E$CJ#U#$J#HU#$$hL%[%Y%E$CJ#U#$J#HU#$$V!p!k!Li"of#m#n#"m#"[i"of#m#n#"m#"Yi"of#m#n#"m#"i!Eof"m"n"!m"!CJ!U!of"m"n"!m"!J!HU!of"m"n"!m"!of"m"n"!m"!!TB!@hL%E%C!J!H!U"MY#N#Z#"N#"fL%E%C!J!H!U"MY#N#Z#"N#"_L%E%C!J!H!U"MY#N#Z#"N#"lL$E$C!J!H!U!MY"N"Z"!N"!LVk#i#$pk#i#$k#$EVk#i#$pk#i#$k#$VC!k!i!J!H!U!MY"N"Z"!N"!C!pk!i!J!H!U!MY"N"Z"!N"!k!J!H!U!MY"N"Z"!N"!!@Bh[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!f[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!_[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"`#a#"!l[Y$L$U!J!\!]!EN"Z"!N"MZ"!!YL$!^!\!]!U!Lb`"a"!`"!![YVk#i#$pk#i#$k#$LVk#i#$pk#i#$k#$Vk!i!U!J!\!]!EN"Z"!N"MZ"!!pk!i!U!J!\!]!EN"Z"!N"ZM"!!k!U!J!\!]!EN"Z"!ZN"M"!N"!YLVk#i#$pk#i#$k#$!Vk!i!^!\!]!U!Lb`"a"!`"!!pk!i!^!\!]!U!Lb`"a"!`"!!k!^!\!]!U!Lb`"a"!`"!!hL)[)Y)E(CJ'U'(J'HU'((fL)[)Y)E(CJ'U'(J'HU'((_L)[)Y)E(CJ'U'(J'HU'((lL([(Y(E'CJ&U&'J&HU&''LVk'i'(pk'i'(k'([Vk'i'(pk'i'(k'(YVk'i'(pk'i'(k'(EVk&i&'pk&i&'k&'VkCJ%U%&J%HU%&&iCJ%U%&J%HU%&&CJ&U&'J&HU&''pkCJ%U%&J%HU%&&iCJ%U%&J%HU%&&CJ&U&'J&HU&''kCJ%U%&J%HU%&&CJ&U&'J&UH&''A!B!C!hEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!fEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!_EL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!lEL"["Y"!L"!Vk!i!EL"["Y"!L"!pk!i!EL"["Y"!L"!k!EL"["Y"!L"!@cTB_[%!!_)[)lL'E'C&J&H&'hL'E'C&J&H&'LV&p&k&'EV&p&k&'VC%J%H%&pC%J%H%&kC%J%H%&C&J&H&'B_[)Y)L)^'\'([)lYL'^&\&'L^\&]&U&'\&'$hYL'^&\&'L^\&]&U&'\&'$YLV&p&k&'V^%\%&p^%\%&k^%\%&^&\&'LV^\%]%U%&\%&p^\%]%U%&\%&k^\%]%U%&\%&^\&]&U&'\&'V#p#k#$_+[+l*h*V)p)k)*TB_['^$\$Y%`%a%$[d^$h%f%$h^f%g%b%$'f^%'^$'!_+[+L*E*C)J)H)*B_[+Y+L+*[+YL*^)\)*L^\)])U)*\)*'-cAB!C!T!D_E#L#F"GH!J!"H!IJ!""[E#L#F"GH!J!"H!IJ!""lE"L"!hE"L"!V!p!k!E"L"!E_#[#l"h"V!p!k!"F_L#J!H!"[L#J!H!"lL"!hL"!V!p!k!L"!_L"![L"!!B!CT!_L#E#P"D"V!W!O!"[L#E#P"D"V!W!O!"lL"E"!hL"E"!V!p!k!L"E"!T_E#L#["![E#L#!!_%[%l$h$V#p#k#$AB!C!TD_E#L#![E#L#!EL"!J!H!L"!E_#[#L"!F_L#![L#!J!H!L"!H!J!_L"![L"!!DE%L%F$GH#J#$H#IJ#$$E%FL%J#H#$L$!BC!T!D_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!E_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!F_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!P_["Y"L"!["!VO!G!_["Y"L"!["!WO!G!_["Y"L"!["!O!_["Y"L"!["!CT_L#E#![L#E#!LE"!!L%E%P$D$V#W#O#$T_E%L%$[E%L%$E$L$!'VeA!@>?P-D-C)O)G)W*qS+Q+*rS+Q+*S+*XT!B!PL%[%Y%E$CJ#U#$J#HU#$$DL%[%Y%E$CJ#U#$J#HU#$$C!O!G!LW"qS#Q#"rS#Q#"S#"[W"qS#Q#"rS#Q#"S#"YW"qS#Q#"rS#Q#"S#"W!EqS"Q"!rS"Q"!S"!J!HU!qS"Q"!rS"Q"!S"!qS"Q"!rS"Q"!S"!TB!P%D%C!O!G!W"qS#Q#"rS#Q#"S#"BP[%Y%L%_$c^#\#$d^#\#$^#$D[%Y%L%_$c^#\#$d^#\#$^#$C!O!G![W"qS#Q#"rS#Q#"S#"YW"qS#Q#"rS#Q#"S#"LW"qS#Q#"rS#Q#"S#"W!_qS"Q"!rS"Q"!S"!c^!\!qS"Q"!rS"Q"!S"!d^!\!qS"Q"!rS"Q"!S"!^!qS"Q"!Qr"S"!S"!P'D'C#O#G#W$qS%Q%$rS%Q%$S%$c!X!?Ph%f%_%[$dT#^#\#$^#$Dh%f%_%[$dT#^#\#$^#$C!O!G!hW"qS#Q#"rS#Q#"S#"fW"qS#Q#"rS#Q#"S#"_W"qS#Q#"rS#Q#"S#"W![qS"Q"!rS"Q"!S"!dT!^!\!qS"Q"!rS"Q"!S"!^!qS"Q"!rS"Q"!S"!!BC!>?PD%O!G!F#E#!!!!>?CPD%!!PD'OG$F%EQ%R%$$EG%'FG%'G$'DW$O$q%r%S%$!!!>?@Al-h-c)k)i)p*qo+m+*so+m+*o+*1AB!C!lD%E%F%L$HT#J#U#$J#$hD%E%F%L$HT#J#U#$J#$c!k!i!Dp"qo#m#"so#m#"o#"Ep"qo#m#"so#m#"o#"Fp"qo#m#"so#m#"o#"p!Lqo"m"!so"m"!o"!HT!J!U!qo"m"!so"m"!o"!J!qo"m"!so"m"!o"!BCPD%!!PD)E)F)O'G'(D)lEF'OG&H&I&'G&'FO&G&'$hEF'OG&H&I&'G&'FO&G&'$EFc&k&i&'cOG%H%I%&G%&kOG%H%I%&G%&iOG%H%I%&G%&OG&H&I&'G&'FcO%G%&kO%G%&iO%G%&O&G&'c#k#i#$CP)D)lL'E'T&J&U&'hL'E'T&J&U&'Lc&k&i&'Ec&k&i&'cT%J%U%&kT%J%U%&iT%J%U%&T&J&U&'P+D+l*h*c)k)i)*AXT!B!@lL%[%Y%E$CJ#U#$J#HU#$$hL%[%Y%E$CJ#U#$J#HU#$$c!k!i!Lp"qo#m#"so#m#"o#"[p"qo#m#"so#m#"o#"Yp"qo#m#"so#m#"o#"p!Eqo"m"!so"m"!o"!CJ!U!qo"m"!so"m"!o"!J!HU!qo"m"!so"m"!o"!qo"m"!ms"o"!o"!!TB!@l%h%c!k!i!p"qo#m#"so#m#"o#"!@Bl[%Y%L%_$c^#\#$d^#\#$^#$h[%Y%L%_$c^#\#$d^#\#$^#$c!k!i![p"qo#m#"so#m#"o#"Yp"qo#m#"so#m#"o#"Lp"qo#m#"so#m#"o#"p!_qo"m"!so"m"!o"!d^!\!qo"m"!so"m"!o"!^!qo"m"!so"m"!o"!l'h'c#k#i#p$qo%m%$so%m%$o%$!XTB!@L%E%C!J!H!U"MY#N#Z#"N#"!@B[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!L)[)Y)E(CJ'U'(J'HU'((B!C!PEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!lEL"["Y"!L"!hEL"["Y"!L"!c!k!i!EL"["Y"!L"!@TB_%[%c!d!^!\"bY#`#a#"`#")B[)Y)L)_(c^'\'(d^'\'(^'(+B!CT!PL#E#D"!DL#E#!!TPE#L#_"["c!d!^!"DE#L#_"["c!d!^!"lE"L"!hE"L"!c!k!i!E"L"!P%D%l$h$c#k#i#$AcX!?@lh%!!!!?@Xlh%k!i!f#_#!!lh'ki$f%_m%n%$$fi%'_i%'i$'hp$k$q%s%o%$!!!@?cXlh%!!l)h)P_'['T&^&\&'D_'['T&^&\&'_C&O&G&'[C&O&G&'CT%^%\%&OT%^%\%>%^%\%&T&^&\&'Xlh)f)_)k'i'(h)Pf_'k&i&'_ki&j&d&'i&'$Df_'k&i&'_ki&j&d&'i&'$f_C&O&G&'kC%O%G%&iC%O%G%&C&O&G&'_kCi%j%d%&Oi%j%d%&Gi%j%d%&i&j&d&'iC%O%G%&C&O&G&'C#O#G#$l+h+P*D*C)O)G)*cX!T!B!l_#[#h"!h_#[#!!X!TB!l_#[#L"E"C!J!H!"h_#[#L"E"C!J!H!"P_"["!D_"["!C!O!G!_"["!Bl_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!h_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!P_["Y"L"!["!D_["Y"L"!["!C!O!G!_["Y"L"!["!l%h%P$D$C#O#G#$cX!B!C!?lP#D#h"!hP#D#!!!XB!C!?lPh#f#_#k!i!"Dh#f#_#k!i!"h"k!i!f"_"!hP#D#!!!BC!?lPD#E#F#O!G!"D#!hPD#E#F#O!G!"D#!PD"O!G!F"E"!!!?ClP#D#!hP#D#!PD"!!lP%D%$hP%D%$P$D$!!>?@eAql-P-)lP-t)p)W)O*rD+S+Q+*S+*Pt)p)W)k*sh+o+m+*o+*'q1l1P1D0WC/O/G/0O/0Aq1l1P1h0pc/k/i/0k/03AeB!C!qlD%E%F%L$HT#J#U#$J#$PD%E%F%L$HT#J#U#$J#$!lPD%E%F%L$HT#J#U#$J#$t!p!W!DO"r#S#"EO"rS#Q#"S#"FO"rS#Q#"S#"O!LrS"Q"!S"!HT!J!U!rS"Q"!S"!J!rS"Q"!S"!t!p!W!PDk"sh#o#m#"o#"Ek"sh#o#m#"o#"Fk"sh#o#m#"o#"k!Lsh"o"m"!o"!HT!J!U!sh"o"m"!o"!J!sh"o"m"!o"!!BC!qDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!lDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!PDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"Q#R#"!hDE$F$G!H!I!J!KL"M"N"!M"!EF$O!G!H!I!SQ"R"!Q"!!DEpc#k#i#$k#$Fpc#k#i#$k#$pc!k!i!G!H!I!J!KL"M"N"!M"!k!G!H!I!J!KL"M"N"!M"!EFpc#k#i#$k#$pc!k!O!i!G!H!I!SQ"R"!Q"!k!O!G!H!I!SQ"R"!Q"!!CqL%E%T!J!U!H"FM#N#"M#KN#""lL%E%T!J!U!H"FM#N#"M#KN#""PL%E%T!J!U!H"FM#N#"M#KN#""hL$E$T!J!H!U!FM"N"!M"KN"!!Lpc#k#i#$k#$Epc#k#i#$k#$T!pc!k!i!J!H!U!FM"N"!M"KN"!!k!J!H!U!FM"N"!M"NK"!!qD)E)F)L(HT'J'U'(J'(lD)E)F)L(HT'J'U'(J'(PD)E)F)L(HT'J'U'(J'(hD(E(F(L'HT&J&U&'J&'Dpc'k'i'(k'(Epc'k'i'(k'(Fpc'k'i'(k'(Lpc&k&i&'k&'pcHT%J%U%&J%&kHT%J%U%&J%&iHT%J%U%&J%&HT&J&U&'J&'kHT%J%U%&J%&HT&J&U&'J&'eBCPD%!W!O!qD#!lD#!!qPD)E)F)O'G'(D)lEF'OG&H&I&'G&'FO&G&'$EFW&O&'WOG%H%I%&G%&OG%H%I%&G&'FWO%G%&O%G&'W#O#$lPD)E)F)O'G'(D)EFtW&O&'pW&O&'W&'tWOG%H%I%&G%&OG%H%I%&G&'pWOG%H%I%&G%&OG%H%I%&G&'WOG%H%I%&G%&OG&H&I&'G&'FtWO%G%&O%G&'pWO%G%&O%G&'WO%G%&O&G&'tW#O#$pW#O#$W#$PD)E)F)O'G'(DW'O'(EF$OG#H#I#$G#$FO#G#$!CqP)D)lL'E'T&J&U&'LW&O&'EW&O&'WT%J%U%&OT%J%U%&T&J&U&'lP)D)LtW&O&'pW&O&'W&'EtW&O&'pW&O&'W&'tWT%J%U%&OT%J%U%&T&J&U&'pWT%J%U%&OT%J%U%&T&J&U&'WT%J%U%&T&J&U&'P)DW'O'(L$E$T#J#U#$qP+D+l*W)O)*lP+D+tW)O)*pW)O)*W)*P+D*'BCPD'O$G$F%Q%R%$DWO$q%l%$qO%'lOr%S%$'O$'!PD+E+F+*D+EF*OG)H)I)*G)*FO)G)*'CP+D+L*E*T)J)U)*-eAXT!B!@qlL%[%Y%E$CJ#U#$J#HU#$$PL%[%Y%E$CJ#U#$J#HU#$$!lPL%[%Y%E$CJ#U#$J#HU#$$t!p!W!LO"rD#S#Q#"S#"[O"rD#S#Q#"S#"YO"rD#S#Q#"S#"O!ErD"S"Q"!S"!CJ!U!rD"S"Q"!S"!J!HU!rD"S"Q"!S"!rD"S"Q"!S"!t!p!W!PLk"sh#o#m#"o#"[k"sh#o#m#"o#"Yk"sh#o#m#"o#"k!Esh"o"m"!o"!CJ!U!sh"o"m"!o"!J!HU!sh"o"m"!o"!sh"o"m"!o"!!!TB!@ql%P%!lP%t!p!W!O"rD#S#Q#"S#"t!p!W!Pk"sh#o#m#"o#"!!@Bql[%Y%L%_$c^#\#$d^#\#$^#$P[%Y%L%_$c^#\#$d^#\#$^#$!lP[%Y%L%_$c^#\#$d^#\#$^#$t!p!W![O"rD#S#Q#"S#"YO"rD#S#Q#"S#"LO"rD#S#Q#"S#"O!_rD"S"Q"!S"!c^!\!rD"S"Q"!S"!d^!\!rD"S"Q"!S"!^!rD"S"Q"!S"!t!p!W!P[k"sh#o#m#"o#"Yk"sh#o#m#"o#"Lk"sh#o#m#"o#"k!_sh"o"m"!o"!c^!\!sh"o"m"!o"!d^!\!sh"o"m"!o"!^!sh"o"m"!o"!!ql'P'#lP't#p#W#O$rD%S%Q%$S%$Pt#p#W#k$sh%o%m%$o%$!!XTB!@qL%E%C!J!H!U"MY#N#Z#"N#"lL%E%C!J!H!U"MY#N#Z#"N#"PL%E%C!J!H!U"MY#N#Z#"N#"DL$E$C!J!H!U!MY"N"Z"!N"!LWC#O#G#$O#$EWC#O#G#$O#$C!WO!G!J!H!U!MY"N"Z"!N"!O!J!H!U!MY"N"Z"!N"!!@Bq[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!l[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!P[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!D[Y$L$U!J!\!]!EN"Z"!N"MZ"!!YL$!^!\!]!U!L_`"a"!b`"a"!`"!![YWC#O#G#$O#$LWC#O#G#$O#$WC!O!G!U!J!\!]!EN"Z"!N"MZ"!!O!U!J!\!]!EN"Z"!N"MZ"!!YLWC#O#G#$O#$!WC!O!G!^!\!]!U!L_`"a"!b`"a"!`"!!O!^!\!]!U!L_`"a"!b`"a"!`"!!qL)[)Y)E(CJ'U'(J'HU'((lL)[)Y)E(CJ'U'(J'HU'((PL)[)Y)E(CJ'U'(J'HU'((DL([(Y(E'CJ&U&'J&HU&''LWC'O'G'(O'([WC'O'G'(O'(YWC'O'G'(O'(EWC&O&G&'O&'WCJ%U%&OJ%HU%&&GJ%HU%&&J&HU&''OCJ%U%&J%HU%&&CJ&U&'J&HU&''B!C!qPEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!lEL"["Y"!L"!W!O!EL"["Y"!L"!lPEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!tW!O!EL"["Y"!L"!pW!O!EL"["Y"!L"!W!EL"["Y"!L"!PEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL"["Y"!L"!!@TBq_%[%c!d!^!\"bY#`#a#"`#"l_%[%c!d!^!\"bY#`#a#"`#"P_%[%c!d!^!\"bY#`#a#"`#"D_$[$c!d!^!\!bY"`"a"!`"!_WC#O#G#$O#$[WC#O#G#$O#$c!WC!O!G!d!^!\!bY"`"a"!`"!O!d!^!\!bY"`"a"!`"!q)l)P)D(WC'O'G'(O'(Bq[)Y)L)_(c^'\'(d^'\'(^'(l[)Y)L)_(c^'\'(d^'\'(^'(P[)Y)L)_(c^'\'(d^'\'(^'(D[(Y(L(_'c^&\&'d^&\&'^&'[WC'O'G'(O'(YWC'O'G'(O'(LWC'O'G'(O'(_WC&O&G&'O&'WCc^%\%&d^%\%&^%&Oc^%\%&d^%\%&^%&Gc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'Oc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'q+l+P+D*WC)O)G)*O)*B!CT!qPL#E#D"!DL#E#W!O!"!lPL#E#D"!DL#E#W!O!"!PL#E#D"!W!O!DL"E"!!TqPE#L#_"["c!d!^!"DE#L#_"["c!d!^!"lE"L"!W!O!E"L"!lPE#L#_"["c!d!^!"DE#L#_"["c!d!^!"tW!O!E"L"!pW!O!E"L"!W!E"L"!PE#L#_"["c!d!^!"DE"L"!!qP%D%l$W#O#$lP%D%tW#O#$pW#O#$W#$P%D$!XTB!@AqL%E%C!J!H!U"MY#N#Z#"N#"lL%E%C!J!H!U"MY#N#Z#"N#"PL%E%C!J!H!U"MY#N#Z#"N#"hL$E$C!J!H!U!MY"N"Z"!N"!Lpc#k#i#$k#$Epc#k#i#$k#$C!pc!k!i!J!H!U!MY"N"Z"!N"!k!J!H!U!MY"N"Z"!N"!L'E'C#J#H#U$MY%N%Z%$N%$!@ABq[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!l[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!P[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!h[Y$L$U!J!\!]!EN"Z"!N"MZ"!!YL$!^!\!]!U!L_`"a"!b`"a"!`"!![Ypc#k#i#$k#$Lpc#k#i#$k#$pc!k!i!U!J!\!]!EN"Z"!N"MZ"!!k!U!J!\!]!EN"Z"!N"ZM"!!YLpc#k#i#$k#$!pc!k!i!^!\!]!U!L_`"a"!b`"a"!`"!!k!^!\!]!U!L_`"a"!b`"a"!`"!!qL)[)Y)E(CJ'U'(J'HU'((lL)[)Y)E(CJ'U'(J'HU'((PL)[)Y)E(CJ'U'(J'HU'((hL([(Y(E'CJ&U&'J&HU&''Lpc'k'i'(k'([pc'k'i'(k'(Ypc'k'i'(k'(Epc&k&i&'k&'pcCJ%U%&J%HU%&&kCJ%U%&J%HU%&&iCJ%U%&J%HU%&&CJ&U&'J&UH&''kCJ%U%&J%HU%&&CJ&U&'J&UH&''B[Y'L'U#\#]#J$EN%Z%$N%MZ%$$YL'#L\#]#U#^$_`%a%$b`%a%$`%$!L+[+Y+E*CJ)U)*J)HU)**A!B!CPL#E[#Y#U!J!"!DL#E[#Y#U!J!"!LE"!U!J!E["Y"!!EL%[%Y%$L%[Y$JU#\#]#$U#$YJ#U#$!@ATBq_%[%c!d!^!\"bY#`#a#"`#"l_%[%c!d!^!\"bY#`#a#"`#"P_%[%c!d!^!\"bY#`#a#"`#"h_$[$c!d!^!\!bY"`"a"!`"!_pc#k#i#$k#$[pc#k#i#$k#$c!pk!i!d!^!\!bY"`"a"!`"!k!d!^!\!bY"`"a"!`"!q)l)P)h(pc'k'i'(k'(Bq[)Y)L)_(c^'\'(d^'\'(^'(l[)Y)L)_(c^'\'(d^'\'(^'(P[)Y)L)_(c^'\'(d^'\'(^'(h[(Y(L(_'c^&\&'d^&\&'^&'[pc'k'i'(k'(Ypc'k'i'(k'(Lpc'k'i'(k'(_pc&k&i&'k&'pc^%\%&kd^%\%&^%&id^%\%&^%&d^&\&'^&'kc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'q+l+P+h*pc)k)i)*k)*TB_'['c#d#^#\$bY%`%a%$`%$+B[+Y+L+_*c^)\)*d^)\)*^)*-AB!C!T!qDE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!lDE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!PDE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!hDE"L"!E"FL"!!pc!k!i!DE"L"!E"FL"!!k!DE"L"!E"FL"!!BC!T!PD[#Y#L#_"c^!\!"d^!\!"^!"E[#Y#L#_"c^!\!"d^!\!"^!"F[#Y#L#_"c^!\!"d^!\!"^!"["Y"L"!D[#Y#L#_"c^!\!"d^!\!"^!"EF["Y"L"!OG!H!I!["Y"L"!G!["Y"L"!O!G!F["Y"L"!!CTPL#E#!DL#E#!LE"!!PL%E%$DL%E%$L$E$!TE%L%_$[$c#d#^#$'eAc!X!?@qlh%f%_%[$dT#^#\#$^#$Ph%f%_%[$dT#^#\#$^#$!lPh%f%_%[$dT#^#\#$^#$t!p!W!hO"rD#S#Q#"S#"fO"rD#S#Q#"S#"_O"rD#S#Q#"S#"O![rD"S"Q"!S"!dT!^!\!rD"S"Q"!S"!^!rD"S"Q"!S"!t!p!W!Phk"s#o#"fk"so#m#"o#"_k"so#m#"o#"k![so"m"!o"!dT!^!\!so"m"!o"!^!so"m"!o"!!!!cX!@?q_%[%T!^!\!d"fb#`#"gb#`#"b#"l_%[%T!^!\!d"fb#`#"gb#`#"b#"P_%[%T!^!\!d"fb#`#"gb#`#"b#"D_$[$T!d!^!\!fb"`"!gb"`"!b"!_WC#O#G#$O#$[WC#O#G#$O#$T!WC!O!G!d!^!\!fb"`"!gb"`"!b"!O!d!^!\!fb"`"!gb"`"!b"!!!@?Xqhf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"lm#n#"om#n#"m#"!lhf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"m#n#"!Phf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"om#n#"m#"!Dhf$_$i!j!d!^!g["b"`"!b"!f_$!k!i!j!d!_om"n"!m"!!hfWC#O#G#$O#$_WC#O#G#$O#$WC!O!G!i!j!d!^!g["b"`"!b"!O!i!j!d!^!g["b"`"!b"!f_WC#O#G#$O#$!WC!k!O!i!G!j!d!_om"n"!m"!!k!O!i!j!d!_om"n"!m"!!qh)f)_)[(dT'^'\'(^'(lh)f)_)[(dT'^'\'(^'(Ph)f)_)[(dT'^'\'(^'(Dh(f(_(['dT&^&\&'^&'hWC'O'G'(O'(fWC'O'G'(O'(_WC'O'G'(O'([WC&O&G&'O&'WCdT%^%\%&^%&OdT%^%\%&^%&GdT%^%\%&^%&dT&^&\&'^&'OdT%^%\%&^%&dT&^&\&'^&'X!T!B!qh_#[#f"id!^!"jd!^!"d!"f_#[#d!^!"_#["!lh_#[#f"id!^!"jd!^!"d!"f_#[#d!^!"_#["!Ph_#[#f"id!^!"jd!^!"d!"f_#[#d!^!"_#["!Dh_"["!f_"["!_"!WC!O!G!h_"["!f_"["!_"!O!h_"["!f_"["!_"!X!B!C!?qPh#f#_#["dT!^!\!"^!"Dh#f#_#["dT!^!\!"^!"lh"f"_"!W!O!h"f"_"!lPh#f#_#["dT!^!\!"^!"Dh#f#_#["dT!^!\!"^!"tW!O!h"f"_"!pW!O!h"f"_"!W!h"f"_"!Ph#f#_#["dT!^!\!"^!"Dh"f"_"!!!?@AcXlh%!p!k!hq#P#!!ql)h)P_'['T&^&\&'_p&k&'[p&k&'pT%^%\%&kT%^%\%&T&^&\&'l)Ph)_tp&k&'p&Wk&''[tp&k&'p&Wk&''tpT%^%\%&kT%^%\%&T&^&\&'pT%^%\%&WkT%^%\%&T&^&\&'T&^&\&'hp'k'(_$[$T#^#\#$Xqlh)f)_)k'i'(h)Pf_'k&i&'_ki&j&d&'i&'$f_p&k&'pk%i%&k%i&'_pki%j%d%&i%&ki%j%d%&i&'p#k#$lh)f)_)k'i'(Ph)f_tp&k&'p&Wk&''tpk%i%&k%i&'pk%i%&Wk%i&'k&i&'_tpki%j%d%&i%&ki%j%d%&i&'pki%j%d%&i%&Wki%j%d%&i&'ki&j&d&'i&'tp#k#$p#Wk#$$hp'k'(f_$k#i#$_ki#j#d#$i#$!ql+h+P*p)k)*l+Ph+tp)k)*p)Wk)**h*'cXlh'k$i$f%m%n%$hpk$q%P%$qk%'Pks%o%$'k$'!l+h+_*[*T)^)\)*Xlh+f+_+*h+f_*k)i)*_ki)j)d)*i)*'-Ac!X!B!C!qlD#E#F#L"HT!J!U!"J!"hD#E#F#L"HT!J!U!"J!"PD"E"F"!p!k!D"E"F"!lD#E#F#L"HT!J!U!"J!"PhD#E#F#L"HT!J!U!"J!"tp!k!D"E"F"!p!Wk!D"E"F"!D"E"F"!hD"E"F"!!cX!BC!lPD#E#F#"D#EF"OG!H!I!"G!"O!G!F"!hPD#E#F#"D#EF"OG!H!I!"G!"O!G!F"!PD_"["T!^!\!"E_"["T!^!\!"F_"["T!^!\!"!D_"["T!^!\!"!ClP#D#L"E"T!J!U!"hP#D#L"E"T!J!U!"P_"["T!^!\!"D_"["T!^!\!"!l%h%_$[$T#^#\#$BC!XlPhD#E#F#"fD#E#F#"_D#E#F#"D"E"F"!Dh#f#_#"hEF"OG!H!I!"G!"O!G!F"!fEF"OG!H!I!"G!"O!G!F"!_EF"OG!H!I!"G!"O!G!F"!!hPD#E#F#"D#EF"OG!H!I!"G!"O!G!F"!Pf_D"E"F"!k!i!D"E"F"!ki!j!d!_D"E"F"!!i!_D"E"F"!!Df_"k!i!"ki!j!d!_"!i!_"!!PD%E%F%$D%EF$OG#H#I#$G#$FO#G#$!XClPh#f#_#"Dh#f#_#"hL"E"T!J!U!"fL"E"T!J!U!"_L"E"T!J!U!"!hP#D#L"E"T!J!U!"Pf_"k!i!"ki!j!d!_"!i!_"!Df_"k!i!"ki!j!d!_"!i!_"!!lh%f%_%$h%f_$k#i#$_ki#j#d#$i#$!CP%D%L$E$T#J#U#$'AcX!T!B!@ql_#[#h"!h_#[#p!k!"!l_#[#h"!Ph_#[#p!k!"!p!k!h_"["!!!X!TB!@ql_#[#L"E"C!J!H!"h_#[#L"E"C!J!H!"P_"["!p!k!_"["!l_#[#L"E"C!J!H!"Ph_#[#L"E"C!J!H!"tp!k!_"["!p!Wk!_"["!_"["!h_"["!!!@Bql_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!h_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!P_["Y"L"!["!p!k!_["Y"L"!["!l_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!Ph_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!tp!k!_["Y"L"!["!p!Wk!_["Y"L"!["!_["Y"L"!["!h_["Y"L"!["!!ql%h%P$p#k#$l%Ph%tp#k#$p#Wk#$$h$!!Xc!T!B!@lhL#[#Y#E"CJ!U!"J!HU!""fL#[#Y#E"CJ!U!"J!HU!""_L#[#Y#E"CJ!U!"J!HU!""L"["Y"!hL#[#Y#E"CJ!U!"J!HU!""f_L"["Y"!k!i!L"["Y"!ki!j!d!_L"["Y"!!i!_L"["Y"!!!TB!@cl_#[#!h_#[#!_["!!_%[%L$E$C#J#H#$!@cBl_[#Y#L#^!\!"[#!h_[#Y#L#^!\!"[#!_["^!\!Y"L"!!l_%[%$h_%[%$_$[$!B_[%Y%L%$[%YL$^#\#$L^\#]#U#$\#$!'!)dziendobry"; const vector<pii> checked_cells = { {-1, 0}, {0, -1}, {1, 0}, {0, 1}, {-1, 1}, {1, 1}, {0, 2}, {-1, 2}, {1, 2}, {0, 3}, {-1, 3}, {1, 3}, {0, 4}, {2, 2}, {1, 4}, {2, 1}, {2, 3}, {3, 2}, {-2, 2}, {-2, 1}, {-2, 3}, {-1, 4}, {-3, 2}, {2, 0}, {3, 1}, {-2, 0}, {-3, 1}, {1, -1}, {3, 0}, {4, 1}, {2, -1}, {3, -1}, {4, 0}, {2, -2}, {1, -2}, {3, -2}, {4, -1}, {2, -3}, {0, -2}, {1, -3}, {-1, -1}, {0, -3}, {1, -4}, {-1, -2}, {-1, -3}, {0, -4}, {-2, -2}, {-2, -1}, {-2, -3}, {-1, -4}, {-3, -2}, {-3, -1}, {-3, 0}, {-4, 1}, {-4, -1}, {-4, 0} }; struct StrategyElem { int ans = -1; int cell_idx = -1, no = -1, yes = -1; ll mask_cells = 0; ll questionmark_memo = -1; }; vector<StrategyElem> strategy_tree; const int kShift = 57; void Preproc() { int cur_loc = 0; function<int(void)> Parse = [&]() { char ch = strategy_str[cur_loc++]; int node_idx = SZ(strategy_tree); strategy_tree.emplace_back(); if (ch < '<') { strategy_tree.back().ans = (ch - '!'); strategy_tree.back().questionmark_memo = ll(strategy_tree.back().ans) << kShift; return node_idx; } else { int lhs_node = Parse(); int rhs_node = Parse(); auto &node = strategy_tree[node_idx]; const int cell_idx = ch - '='; assert(0 <= cell_idx && cell_idx < SZ(checked_cells)); node.cell_idx = cell_idx; node.no = lhs_node; node.yes = rhs_node; node.mask_cells = 1LL << cell_idx; node.mask_cells |= ( strategy_tree[lhs_node].mask_cells | strategy_tree[rhs_node].mask_cells); node.questionmark_memo = ( strategy_tree[lhs_node].questionmark_memo + strategy_tree[rhs_node].questionmark_memo) / 2; return node_idx; } }; Parse(); assert(cur_loc == SZ(strategy_str)); } int n, m; vector<string> board; char GetBoard(int r, int c) { if (r < 0 || c < 0 || r >= n || c >= m) { return '.'; } return board[r][c]; }; ll Solve(int r, int c) { if (board[r][c] == '.') { return 0; } string s; ll questionmark_mask = 0; for (int i = 0; i < SZ(checked_cells); ++i) { auto cell = checked_cells[i]; s += GetBoard(r + cell.st, c + cell.nd); if (s.back() == '?') { questionmark_mask |= (1LL << i); } } function<ll(int)> ProcessTree = [&](int cur_node) { auto &node = strategy_tree[cur_node]; if (node.ans != -1) { return ll(node.ans) << kShift; } if ((node.mask_cells & questionmark_mask) == node.mask_cells) { return node.questionmark_memo; } const char ch = s[node.cell_idx]; //GetBoard(r + node.r, c + node.c); if (ch == 'O') { return ProcessTree(node.yes); } else if (ch == '.') { return ProcessTree(node.no); } else { return (ProcessTree(node.yes) + ProcessTree(node.no)) / 2; } }; ll ans = ProcessTree(0); if (board[r][c] == '?') { ans /= 2; } return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(11); cerr << fixed << setprecision(10); assert(kShift > SZ(checked_cells)); Preproc(); //~ cerr << checked_cells.size() << "\n"; //~ cerr << strategy_tree.size() << "\n"; cin >> n >> m; board.resize(n); for (int i = 0; i < n; ++i) { cin >> board[i]; } i128 p = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { p += Solve(i, j); } } i128 q = i128(24) << kShift; i128 g = my_gcd(p, q); p /= g; q /= g; cout << p << "/" << q << "\n"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | #include <bits/stdc++.h> #define ALL(x) (x).begin(), (x).end() #define SZ(x) ((int)(x).size()) #define st first #define nd second using namespace std; #define sim template < class c #define ris return * this #define dor > debug & operator << #define eni(x) sim > typename \ enable_if<sizeof dud<c>(0) x 1, debug&>::type operator<<(c i) { sim > struct rge { c b, e; }; sim > rge<c> range(c i, c j) { return rge<c>{i, j}; } sim > auto dud(c* x) -> decltype(cerr << *x, 0); sim > char dud(...); struct debug { #ifdef LOCAL ~debug() { cerr << endl; } eni(!=) cerr << boolalpha << i; ris; } eni(==) ris << range(begin(i), end(i)); } sim, class b dor(pair < b, c > d) { ris << "(" << d.first << ", " << d.second << ")"; } sim dor(rge<c> d) { *this << "["; for (auto it = d.b; it != d.e; ++it) *this << ", " + 2 * (it == d.b) << *it; ris << "]"; } #else sim dor(const c&) { ris; } #endif }; #define imie(...) " [" << #__VA_ARGS__ ": " << (__VA_ARGS__) << "] " using ll = long long; using pii = pair<int,int>; using pll = pair<ll,ll>; using vi = vector<int>; using vll = vector<ll>; using i128 = __int128_t; ostream &operator<<(ostream &os, i128 val) { assert(val >= 0); if (val == 0) { return os << "0"; } string s; while (val) { s += ('0' + val % 10); val /= 10; } reverse(ALL(s)); return os << s; } i128 my_gcd(i128 a, i128 b) { while (b) { a %= b; swap(a, b); } return a; } const string strategy_str = R"dziendobry(=>?@9ABC!DE-F-G)H)I)J*KL+M+N+*M+*EF-G)H)I)O*PQ+R+*SQ+R+*Q+*F)'CL-E-T)J)U)H*FM+N+*M+KN+**D1E1F1L0HT/J/U/0J/0BCP-D-V)W)O)G*SF+Q+R+*Q+*D1E1F1P0VO/G/0WO/G/0O/0C13XTB!@L-E-C)J)H)U*MY+N+Z+*N+*AC!EL%!J!H!DL#!FL#!!CLE%!!EL'U$J$Y%N%Z%$LJH$DF%M%K%$F%$DH%'FH%'H$'!@B[Y-L-U)\)])J*EN+Z+*N+MZ+**YL-)L\)])U)^*_`+a+*b`+a+*`+*'L1[1Y1E0CJ/U/0J/HU/00BA!C!D[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!E[Y%L%U!\!]!J"N#Z#"YL%!\!]!U!L^"_`#a#"b`#a#"`#"!F[Y%L%U!\!]!J"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!P[Y$L$J!U!\!]!N"MZ"!!YL$!^!\!]!U!L_`"a"!b`"a"!`"!![YVO#G#$WO#G#$O#$LVO#G#$WO#G#$O#$VO!G!J!U!\!]!N"MZ"!!WO!G!J!U!\!]!N"MZ"!!O!J!U!\!]!N"MZ"!!YLVO#G#$WO#G#$O#$!VO!G!^!\!]!U!L_`"a"!b`"a"!`"!!WO!G!^!\!]!U!L_`"a"!b`"a"!`"!!O!^!\!]!U!L_`"a"!b`"a"!`"!!ACLE%!U!J!E[#Y#!!DEL)[)Y)U'J'(L)F[Y'JU&\&]&'U&'YJ&U&'$[YGH&J&'H&IJ&''GHJU%\%]%&U%&JU%\%]%&U&'HJU%\%]%&U%&IJU%\%]%&U&'JU&\&]&'U&'YGHJ%U%&J%U&'HJ%U%&IJ%U&'J&U&'GH#J#$H#IJ#$$EL)[)Y)U'J'(FL)[YJ&H&'JU%\%]%&HU%&U&'YJ%HU%&U&'J#H#$LH'J'([Y$JU#\#]#$U#$YJ#U#$!CL)E[)Y)U'J'(P[Y'JU&\&]&'U&'YJ&U&'$D[Y'JU&\&]&'U&'YJ&U&'$[YV&W&O&'VJU%\%]%&U%&WJU%\%]%&U%&OJU%\%]%&U%&JU&\&]&'U&'YVJ%U%&WJ%U%&OJ%U%&J&U&'V#W#O#$EL+[+Y+*L+[Y*JU)\)])*U)*YJ)U)*'@TB_-[-c)d)^)\*bY+`+a+*`+*1B[1Y1L1_0c^/\/0d^/\/0^/03BAC!T!DE[%Y%L%_$c^#\#$d^#\#$^#$F[%Y%L%_$c^#\#$d^#\#$^#$G!H!I![J"KL#M#N#"M#"YJ"KL#M#N#"M#"LJ"K#M#"J!_KM"N"!M"!c^!\!KM"N"!M"!d^!\!KM"N"!M"!^!KM"N"!M"!EF[%Y%L%_$c^#\#$d^#\#$^#$G!H!I![O"PQ#R#"SQ#R#"Q#"YO"PQ#R#"SQ#R#"Q#"LO"PQ#R#"SQ#R#"Q#"O!_PQ"R"!SQ"R"!Q"!c^!\!PQ"R"!SQ"R"!Q"!d^!\!PQ"R"!SQ"R"!Q"!^!PQ"R"!RS"Q"!Q"!!CT!P[%Y%L%_$c^#\#$d^#\#$^#$D[%Y%L%_$c^#\#$d^#\#$^#$V!W!O![G"SF#Q#R#"Q#"YG"SF#Q#R#"Q#"LG"SF#Q#R#"Q#"G!_SF"Q"R"!Q"!c^!\!SF"Q"R"!Q"!d^!\!SF"Q"R"!Q"!^!SF"Q"R"!Q"!TD_%[%c!d!^!\"bY#`#a#"`#"E_%[%c!d!^!\"bY#`#a#"`#"F_%[%c!d!^!\"bY#`#a#"`#"P_$[$c!d!^!\!bY"`"a"!`"!_VO#G#$WO#G#$O#$[VO#G#$WO#G#$O#$Vc!O!G!d!^!\!bY"`"a"!`"!c!WO!G!d!^!\!bY"`"a"!`"!O!d!^!\!bY"`"a"!`"!D[)Y)L)_(c^'\'(d^'\'(^'(E[)Y)L)_(c^'\'(d^'\'(^'(F[)Y)L)_(c^'\'(d^'\'(^'(P[(Y(L(_'c^&\&'d^&\&'^&'[VO'G'(WO'G'(O'(YVO'G'(WO'G'(O'(LVO'G'(WO'G'(O'(_VO&G&'WO&G&'O&'VOc^%\%&d^%\%&^%&Gc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'WOc^%\%&d^%\%&^%&Gc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'Oc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'ACTLE%!!LE'J$H$F%M%K%$EUJ$[%Y%$[JY%Z%N%$'YJ%'J$'!TDE)L)F_'['c&d&^&'_GH&J&'H&IJ&''[GH&J&'H&IJ&''GcH%J%&dH%J%&^H%J%&H&J&'Hc%d%^%&IcJ%&dJ%&^J%&J&'c&d&^&'E)FL)_J&H&'[J&H&'cJ%H%&dJ%H%&^J%H%&J&H&'LH'J'(_$[$c#d#^#$DE+L+F*GH)J)*H)IJ)**E+FL+J)H)*L*'CTL)E)P_'['c&d&^&'D_'['c&d&^&'_V&W&O&'[V&W&O&'Vc%d%^%&Wc%d%^%&Oc%d%^%&c&d&^&'L+E+P*D*V)W)O)*TE+L+_*[*c)d)^)*-ecX!?@_-[-T)^)\)d*fb+`+*gb+`+*b+*AB!C!D_%[%T!^!\!d"fb#`#"gb#`#"b#"E_%[%T!^!\!d"fb#`#"gb#`#"b#"F_%[%T!^!\!d"fb#`#"gb#`#"b#"_L$HT#J#U#$J#$[L$HT#J#U#$J#$T!d!^!\!Lfb"`"!gb"`"!b"!HJ!U!fb"`"!gb"`"!b"!J!fb"`"!gb"`"!b"!BC!D_%[%T!^!\!d"fb#`#"gb#`#"b#"E_%[%T!^!\!d"fb#`#"gb#`#"b#"F_%[%T!^!\!d"fb#`#"gb#`#"b#"P_$[$T!d!^!\!fb"`"!gb"`"!b"!_VO#G#$WO#G#$O#$[VO#G#$WO#G#$O#$VT!O!G!d!^!\!fb"`"!gb"`"!b"!T!WO!G!d!^!\!fb"`"!gb"`"!b"!O!d!^!\!fb"`"!gb"`"!b"!C_%[%T!^!\!d"fb#`#"gb#`#"b#"_'['T#^#\#d$fb%`%$gb%`%$b%$TB!@_[%!!!@B_[%^!\!Y#L#!!_['^\$LY%`%a%$Y%$L\%'Y\%'\$'[d$^$f%g%b%$!!?@Xhf-_-i)j)d)^*g[+b+`+*b+*f_-)_i)j)d)k*lm+n+*om+n+*m+*'h1f1_1[0dT/^/\/0^/0XAB!C!hfD%E%F%L$HT#J#U#$J#$_D%E%F%L$HT#J#U#$J#$i!j!d!D^"g[#b#`#"b#"E^"g[#b#`#"b#"F^"g[#b#`#"b#"^!Lg["b"`"!b"!HT!J!U!g["b"`"!b"!J!g["b"`"!b"!f_D%E%F%L$HT#J#U#$J#$!i!j!d!_Dk"lm#n#"om#n#"m#"Ek"lm#n#"om#n#"m#"Fk"lm#n#"om#n#"m#"k!Llm"n"!om"n"!m"!HT!J!U!lm"n"!om"n"!m"!J!lm"n"!om"n"!m"!!BC!hfD%E%F%P$VO#G#$WO#G#$O#$_D%E%F%P$VO#G#$WO#G#$O#$i!j!d!D^"g[#b#`#"b#"E^"g[#b#`#"b#"F^"g[#b#`#"b#"^!Pg["b"`"!b"!VO!G!g["b"`"!b"!WO!G!g["b"`"!b"!O!g["b"`"!b"!f_D%E%F%P$VO#G#$WO#G#$O#$!i!j!d!_Dk"lm#n#"om#n#"m#"Ek"lm#n#"om#n#"m#"Fk"lm#n#"om#n#"m#"k!Plm"n"!om"n"!m"!VO!G!lm"n"!om"n"!m"!WO!G!lm"n"!om"n"!m"!O!lm"n"!om"n"!m"!!Chf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"lm#n#"om#n#"m#"!hf'_'i#j#d#^$g[%b%`%$b%$f_'#_i#j#d#k$lm%n%$om%n%$m%$!ABC!hDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!fDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!_DE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!DE[$dT#^#\#$^#$F[$dT#^#\#$^#$G!H!I!J![KL"M"N"!M"!dT!^!\!KL"M"N"!M"!^!KL"M"N"!M"!EF[$dT#^#\#$^#$O!G!H!I![PQ"R"!SQ"R"!Q"!dT!^!\!PQ"R"!SQ"R"!Q"!^!PQ"R"!SQ"R"!Q"!!ChL%E%T!J!U!H"FM#N#"M#KN#""fL%E%T!J!U!H"FM#N#"M#KN#""_L%E%T!J!U!H"FM#N#"M#KN#""[L$E$T!J!H!U!FM"N"!M"KN"!!LdT#^#\#$^#$EdT#^#\#$^#$T!d^!J!H!\!U!FM"N"!M"KN"!!^!J!H!U!FM"N"!M"KN"!!hD)E)F)L(HT'J'U'(J'(fD)E)F)L(HT'J'U'(J'(_D)E)F)L(HT'J'U'(J'(D[(dT'^'\'(^'(E[(dT'^'\'(^'(F[(dT'^'\'(^'([L'HT&J&U&'J&'LdT&^&\&'^&'dHT%^J%U%&\J%U%&J&U&'JT%^%\%&T&^&\&'^HT%J%U%&J%&HT&J&U&'J&'BCPh%f%_%[$dT#^#\#$^#$Dh%f%_%[$dT#^#\#$^#$V!W!O!hG"SF#Q#R#"Q#"fG"SF#Q#R#"Q#"_G"SF#Q#R#"Q#"G![SF"Q"R"!Q"!dT!^!\!SF"Q"R"!Q"!^!SF"Q"R"!Q"!hD)E)F)P(VO'G'(WO'G'(O'(fD)E)F)P(VO'G'(WO'G'(O'(_D)E)F)P(VO'G'(WO'G'(O'(D[(dT'^'\'(^'(E[(dT'^'\'(^'(F[(dT'^'\'(^'(P['dT&^&\&'^&'[VO&G&'WO&G&'O&'VOdT%^%\%&^%&GdT%^%\%&^%&dT&^&\&'^&'WOdT%^%\%&^%&GdT%^%\%&^%&dT&^&\&'^&'OdT%^%\%&^%&dT&^&\&'^&'Ch)f)_)[(dT'^'\'(^'(h+f+_+[*dT)^)\)*^)*XT!B!@hfL%[%Y%E$CJ#U#$J#HU#$$_L%[%Y%E$CJ#U#$J#HU#$$i!j!d!L^"g[#b#`#"b#"[^"g#b#"Y^"gb#`#"b#"^!Egb"`"!b"!CJ!U!gb"`"!b"!J!HU!gb"`"!b"!gb"`"!b"!f_L%[%Y%E$CJ#U#$J#HU#$$!i!j!d!_Lk"lm#n#"om#n#"m#"[k"lm#n#"om#n#"m#"Yk"lm#n#"om#n#"m#"k!Elm"n"!om"n"!m"!CJ!U!lm"n"!om"n"!m"!J!HU!lm"n"!om"n"!m"!lm"n"!no"m"!m"!!!@TB_[%!d!^!h[#!f[#!!h_)[)fL'E'C&J&H&'Lid&^&'jd&^&'d&'Eid&^&'jd&^&'d&'idC%J%H%&^C%J%H%&C&J&H&'jdC%J%H%&^C%J%H%&C&J&H&'dC%J%H%&C&J&H&'f_)[)Ld&^&'Ed&^&'dC%J%H%&^C%J%H%&C&J&H&'_)[d'^'(L$E$C#J#H#$Bh_[)Y)L)^'\'([)fYL'^&\&'L^\&]&U&'\&'$YLid&^&'jd&^&'d&'id^%\%&^%\&'jd^%\%&^%\&'d^%\%&^&\&'Lid^\%]%U%&\%&^\%]%U%&\&'jd^\%]%U%&\%&^\%]%U%&\&'d^\%]%U%&\%&^\&]&U&'\&'id#^#$jd#^#$d#$f_[)Y)L)^'\'([)YLd&^&'d^%\%&^%\&'Ld^\%]%U%&\%&^\%]%U%&\&'d#^#$_[)Y)L)^'\'([d'^'(YL$^#\#$L^\#]#U#$\#$!h_+[+f*id)^)*jd)^)*d)*f_+[+d)^)*_+[*'AB!C!T!hD_E#L#F"GH!J!"H!IJ!""[E#L#F"GH!J!"H!IJ!""fE"L"!id!^!E"L"!jd!^!E"L"!d!E"L"!E_#[#f"id!^!"jd!^!"d!"F_L#J!H!"[L#J!H!"fL"!id!^!L"!jd!^!L"!d!L"!_L"![L"!!fD_E#L#F"GH!J!"H!IJ!""[E#L#F"GH!J!"H!IJ!""d!^!E"L"!E_#[#d!^!"F_L#J!H!"[L#J!H!"d!^!L"!_L"![L"!!_DE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!D[E"L"!!E["!F[L"!!!B!CT!h_L#E#P"D"V!W!O!"[L#E#P"D"V!W!O!"fL"E"!id!^!L"E"!jd!^!L"E"!d!L"E"!f_L#E#P"D"V!W!O!"[L#E#P"D"V!W!O!"d!^!L"E"!_L#E#P"D"V!W!O!"[L"E"!!Th_E#L#["![E#L#d!^!"!f_E#L#["![E#L#d!^!"!_E#L#["!d!^![E"L"!!h_%[%f$id#^#$jd#^#$d#$f_%[%d#^#$_%[$!?@cXl-h-V)p)k)i*of+m+n+*m+*1Xh1f1_1l0Vk/i/0pk/i/0k/03cXAB!C!lD%E%F%L$HT#J#U#$J#$hD%E%F%L$HT#J#U#$J#$V!p!k!Di"of#m#n#"m#"Ei"of#m#n#"m#"Fi"of#m#n#"m#"i!Lof"m"n"!m"!HT!J!U!of"m"n"!m"!J!of"m"n"!m"!BC!lD%E%F%P$VO#G#$WO#G#$O#$hD%E%F%P$VO#G#$WO#G#$O#$V!p!k!Di"of#m#n#"m#"Ei"of#m#n#"m#"Fi"of#m#n#"m#"i!Pof"m"n"!m"!WO!G!of"m"n"!m"!O!of"m"n"!m"!Cl%h%V!p!k!i"of#m#n#"m#"l'h'V#p#k#i$of%m%n%$m%$ABC!DE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!CL%E%T!J!U!H"FM#N#"M#KN#""D)E)F)L(HT'J'U'(J'(BCP%D%V!W!O!G"SF#Q#R#"Q#"D)E)F)P(VO'G'(WO'G'(O'(C)+ABC!XhDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!fDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!_DE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!lDE$F$G!H!I!J!KL"M"N"!M"!EF$O!G!H!I!PQ"R"!SQ"R"!Q"!!DEVk#i#$pk#i#$k#$FVk#i#$pk#i#$k#$Vk!i!G!H!I!J!KL"M"N"!M"!pk!i!G!H!I!J!KL"M"N"!M"!k!G!H!I!J!KL"M"N"!M"!EFVk#i#$pk#i#$k#$Vk!i!O!G!H!I!PQ"R"!SQ"R"!Q"!pk!i!O!G!H!I!PQ"R"!SQ"R"!Q"!k!O!G!H!I!PQ"R"!SQ"R"!Q"!!DE'F'G#H#I#J$KL%M%N%$M%$EF'G#H#I#O$PQ%R%$SQ%R%$Q%$F#!XChL%E%T!J!U!H"FM#N#"M#KN#""fL%E%T!J!U!H"FM#N#"M#KN#""_L%E%T!J!U!H"FM#N#"M#KN#""lL$E$T!J!H!U!FM"N"!M"KN"!!LVk#i#$pk#i#$k#$EVk#i#$pk#i#$k#$VT!k!i!J!H!U!FM"N"!M"KN"!!T!pk!i!J!H!U!FM"N"!M"NK"!!k!J!H!U!FM"N"!NM"K"!M"!hD)E)F)L(HT'J'U'(J'(fD)E)F)L(HT'J'U'(J'(_D)E)F)L(HT'J'U'(J'(lD(E(F(L'HT&J&U&'J&'DVk'i'(pk'i'(k'(EVk'i'(pk'i'(k'(FVk'i'(pk'i'(k'(LVk&i&'pk&i&'k&'VkHT%J%U%&J%&iHT%J%U%&J%&HT&J&U&'J&'pkHT%J%U%&J%&iHT%J%U%&J%&HT&J&U&'J&'kHT%J%U%&J%&HT&J&U&'J&'CL'E'T#J#U#H$FM%N%$M%KN%$$D+E+F+L*HT)J)U)*J)*XBCPh%f%_%l$Vk#i#$pk#i#$k#$Dh%f%_%l$Vk#i#$pk#i#$k#$V!W!O!hG"SF#Q#R#"Q#"fG"SF#Q#R#"Q#"_G"SF#Q#R#"Q#"G!lSF"Q"R"!Q"!pk!i!SF"Q"R"!Q"!k!SF"Q"R"!Q"!hD)E)F)P(VO'G'(WO'G'(O'(fD)E)F)P(VO'G'(WO'G'(O'(_D)E)F)P(VO'G'(WO'G'(O'(lD(E(F(P'VO&G&'WO&G&'O&'DVk'i'(pk'i'(k'(EVk'i'(pk'i'(k'(FVk'i'(pk'i'(k'(PVk&i&'pk&i&'k&'VkO%G%&iO%G%&O&G&'pWkO%G%&iO%G%&O&G&'Ok%i%&k&i&'kWO%G%&O%&WO&G&'O&'Ch)f)_)l(Vk'i'(pk'i'(k'(h+f+_+l*Vk)i)*pk)i)*k)*BCP'D'V#W#O#G$SF%Q%R%$Q%$D+E+F+P*VO)G)*WO)G)*O)*C+-XcT!B!@lL%[%Y%E$CJ#U#$J#HU#$$hL%[%Y%E$CJ#U#$J#HU#$$V!p!k!Li"of#m#n#"m#"[i"of#m#n#"m#"Yi"of#m#n#"m#"i!Eof"m"n"!m"!CJ!U!of"m"n"!m"!J!HU!of"m"n"!m"!of"m"n"!m"!!TB!@hL%E%C!J!H!U"MY#N#Z#"N#"fL%E%C!J!H!U"MY#N#Z#"N#"_L%E%C!J!H!U"MY#N#Z#"N#"lL$E$C!J!H!U!MY"N"Z"!N"!LVk#i#$pk#i#$k#$EVk#i#$pk#i#$k#$VC!k!i!J!H!U!MY"N"Z"!N"!C!pk!i!J!H!U!MY"N"Z"!N"!k!J!H!U!MY"N"Z"!N"!!@Bh[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!f[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!_[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"`#a#"!l[Y$L$U!J!\!]!EN"Z"!N"MZ"!!YL$!^!\!]!U!Lb`"a"!`"!![YVk#i#$pk#i#$k#$LVk#i#$pk#i#$k#$Vk!i!U!J!\!]!EN"Z"!N"MZ"!!pk!i!U!J!\!]!EN"Z"!N"ZM"!!k!U!J!\!]!EN"Z"!ZN"M"!N"!YLVk#i#$pk#i#$k#$!Vk!i!^!\!]!U!Lb`"a"!`"!!pk!i!^!\!]!U!Lb`"a"!`"!!k!^!\!]!U!Lb`"a"!`"!!hL)[)Y)E(CJ'U'(J'HU'((fL)[)Y)E(CJ'U'(J'HU'((_L)[)Y)E(CJ'U'(J'HU'((lL([(Y(E'CJ&U&'J&HU&''LVk'i'(pk'i'(k'([Vk'i'(pk'i'(k'(YVk'i'(pk'i'(k'(EVk&i&'pk&i&'k&'VkCJ%U%&J%HU%&&iCJ%U%&J%HU%&&CJ&U&'J&HU&''pkCJ%U%&J%HU%&&iCJ%U%&J%HU%&&CJ&U&'J&HU&''kCJ%U%&J%HU%&&CJ&U&'J&UH&''A!B!C!hEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!fEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!_EL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!lEL"["Y"!L"!Vk!i!EL"["Y"!L"!pk!i!EL"["Y"!L"!k!EL"["Y"!L"!@cTB_[%!!_)[)lL'E'C&J&H&'hL'E'C&J&H&'LV&p&k&'EV&p&k&'VC%J%H%&pC%J%H%&kC%J%H%&C&J&H&'B_[)Y)L)^'\'([)lYL'^&\&'L^\&]&U&'\&'$hYL'^&\&'L^\&]&U&'\&'$YLV&p&k&'V^%\%&p^%\%&k^%\%&^&\&'LV^\%]%U%&\%&p^\%]%U%&\%&k^\%]%U%&\%&^\&]&U&'\&'V#p#k#$_+[+l*h*V)p)k)*TB_['^$\$Y%`%a%$[d^$h%f%$h^f%g%b%$'f^%'^$'!_+[+L*E*C)J)H)*B_[+Y+L+*[+YL*^)\)*L^\)])U)*\)*'-cAB!C!T!D_E#L#F"GH!J!"H!IJ!""[E#L#F"GH!J!"H!IJ!""lE"L"!hE"L"!V!p!k!E"L"!E_#[#l"h"V!p!k!"F_L#J!H!"[L#J!H!"lL"!hL"!V!p!k!L"!_L"![L"!!B!CT!_L#E#P"D"V!W!O!"[L#E#P"D"V!W!O!"lL"E"!hL"E"!V!p!k!L"E"!T_E#L#["![E#L#!!_%[%l$h$V#p#k#$AB!C!TD_E#L#![E#L#!EL"!J!H!L"!E_#[#L"!F_L#![L#!J!H!L"!H!J!_L"![L"!!DE%L%F$GH#J#$H#IJ#$$E%FL%J#H#$L$!BC!T!D_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!E_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!F_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!P_["Y"L"!["!VO!G!_["Y"L"!["!WO!G!_["Y"L"!["!O!_["Y"L"!["!CT_L#E#![L#E#!LE"!!L%E%P$D$V#W#O#$T_E%L%$[E%L%$E$L$!'VeA!@>?P-D-C)O)G)W*qS+Q+*rS+Q+*S+*XT!B!PL%[%Y%E$CJ#U#$J#HU#$$DL%[%Y%E$CJ#U#$J#HU#$$C!O!G!LW"qS#Q#"rS#Q#"S#"[W"qS#Q#"rS#Q#"S#"YW"qS#Q#"rS#Q#"S#"W!EqS"Q"!rS"Q"!S"!J!HU!qS"Q"!rS"Q"!S"!qS"Q"!rS"Q"!S"!TB!P%D%C!O!G!W"qS#Q#"rS#Q#"S#"BP[%Y%L%_$c^#\#$d^#\#$^#$D[%Y%L%_$c^#\#$d^#\#$^#$C!O!G![W"qS#Q#"rS#Q#"S#"YW"qS#Q#"rS#Q#"S#"LW"qS#Q#"rS#Q#"S#"W!_qS"Q"!rS"Q"!S"!c^!\!qS"Q"!rS"Q"!S"!d^!\!qS"Q"!rS"Q"!S"!^!qS"Q"!Qr"S"!S"!P'D'C#O#G#W$qS%Q%$rS%Q%$S%$c!X!?Ph%f%_%[$dT#^#\#$^#$Dh%f%_%[$dT#^#\#$^#$C!O!G!hW"qS#Q#"rS#Q#"S#"fW"qS#Q#"rS#Q#"S#"_W"qS#Q#"rS#Q#"S#"W![qS"Q"!rS"Q"!S"!dT!^!\!qS"Q"!rS"Q"!S"!^!qS"Q"!rS"Q"!S"!!BC!>?PD%O!G!F#E#!!!!>?CPD%!!PD'OG$F%EQ%R%$$EG%'FG%'G$'DW$O$q%r%S%$!!!>?@Al-h-c)k)i)p*qo+m+*so+m+*o+*1AB!C!lD%E%F%L$HT#J#U#$J#$hD%E%F%L$HT#J#U#$J#$c!k!i!Dp"qo#m#"so#m#"o#"Ep"qo#m#"so#m#"o#"Fp"qo#m#"so#m#"o#"p!Lqo"m"!so"m"!o"!HT!J!U!qo"m"!so"m"!o"!J!qo"m"!so"m"!o"!BCPD%!!PD)E)F)O'G'(D)lEF'OG&H&I&'G&'FO&G&'$hEF'OG&H&I&'G&'FO&G&'$EFc&k&i&'cOG%H%I%&G%&kOG%H%I%&G%&iOG%H%I%&G%&OG&H&I&'G&'FcO%G%&kO%G%&iO%G%&O&G&'c#k#i#$CP)D)lL'E'T&J&U&'hL'E'T&J&U&'Lc&k&i&'Ec&k&i&'cT%J%U%&kT%J%U%&iT%J%U%&T&J&U&'P+D+l*h*c)k)i)*AXT!B!@lL%[%Y%E$CJ#U#$J#HU#$$hL%[%Y%E$CJ#U#$J#HU#$$c!k!i!Lp"qo#m#"so#m#"o#"[p"qo#m#"so#m#"o#"Yp"qo#m#"so#m#"o#"p!Eqo"m"!so"m"!o"!CJ!U!qo"m"!so"m"!o"!J!HU!qo"m"!so"m"!o"!qo"m"!ms"o"!o"!!TB!@l%h%c!k!i!p"qo#m#"so#m#"o#"!@Bl[%Y%L%_$c^#\#$d^#\#$^#$h[%Y%L%_$c^#\#$d^#\#$^#$c!k!i![p"qo#m#"so#m#"o#"Yp"qo#m#"so#m#"o#"Lp"qo#m#"so#m#"o#"p!_qo"m"!so"m"!o"!d^!\!qo"m"!so"m"!o"!^!qo"m"!so"m"!o"!l'h'c#k#i#p$qo%m%$so%m%$o%$!XTB!@L%E%C!J!H!U"MY#N#Z#"N#"!@B[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!L)[)Y)E(CJ'U'(J'HU'((B!C!PEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!lEL"["Y"!L"!hEL"["Y"!L"!c!k!i!EL"["Y"!L"!@TB_%[%c!d!^!\"bY#`#a#"`#")B[)Y)L)_(c^'\'(d^'\'(^'(+B!CT!PL#E#D"!DL#E#!!TPE#L#_"["c!d!^!"DE#L#_"["c!d!^!"lE"L"!hE"L"!c!k!i!E"L"!P%D%l$h$c#k#i#$AcX!?@lh%!!!!?@Xlh%k!i!f#_#!!lh'ki$f%_m%n%$$fi%'_i%'i$'hp$k$q%s%o%$!!!@?cXlh%!!l)h)P_'['T&^&\&'D_'['T&^&\&'_C&O&G&'[C&O&G&'CT%^%\%&OT%^%\%>%^%\%&T&^&\&'Xlh)f)_)k'i'(h)Pf_'k&i&'_ki&j&d&'i&'$Df_'k&i&'_ki&j&d&'i&'$f_C&O&G&'kC%O%G%&iC%O%G%&C&O&G&'_kCi%j%d%&Oi%j%d%&Gi%j%d%&i&j&d&'iC%O%G%&C&O&G&'C#O#G#$l+h+P*D*C)O)G)*cX!T!B!l_#[#h"!h_#[#!!X!TB!l_#[#L"E"C!J!H!"h_#[#L"E"C!J!H!"P_"["!D_"["!C!O!G!_"["!Bl_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!h_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!P_["Y"L"!["!D_["Y"L"!["!C!O!G!_["Y"L"!["!l%h%P$D$C#O#G#$cX!B!C!?lP#D#h"!hP#D#!!!XB!C!?lPh#f#_#k!i!"Dh#f#_#k!i!"h"k!i!f"_"!hP#D#!!!BC!?lPD#E#F#O!G!"D#!hPD#E#F#O!G!"D#!PD"O!G!F"E"!!!?ClP#D#!hP#D#!PD"!!lP%D%$hP%D%$P$D$!!>?@eAql-P-)lP-t)p)W)O*rD+S+Q+*S+*Pt)p)W)k*sh+o+m+*o+*'q1l1P1D0WC/O/G/0O/0Aq1l1P1h0pc/k/i/0k/03AeB!C!qlD%E%F%L$HT#J#U#$J#$PD%E%F%L$HT#J#U#$J#$!lPD%E%F%L$HT#J#U#$J#$t!p!W!DO"r#S#"EO"rS#Q#"S#"FO"rS#Q#"S#"O!LrS"Q"!S"!HT!J!U!rS"Q"!S"!J!rS"Q"!S"!t!p!W!PDk"sh#o#m#"o#"Ek"sh#o#m#"o#"Fk"sh#o#m#"o#"k!Lsh"o"m"!o"!HT!J!U!sh"o"m"!o"!J!sh"o"m"!o"!!BC!qDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!lDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"PQ#R#"SQ#R#"Q#"!PDE%F%G!H!I!J"KL#M#N#"M#"EF%G!H!I!O"Q#R#"!hDE$F$G!H!I!J!KL"M"N"!M"!EF$O!G!H!I!SQ"R"!Q"!!DEpc#k#i#$k#$Fpc#k#i#$k#$pc!k!i!G!H!I!J!KL"M"N"!M"!k!G!H!I!J!KL"M"N"!M"!EFpc#k#i#$k#$pc!k!O!i!G!H!I!SQ"R"!Q"!k!O!G!H!I!SQ"R"!Q"!!CqL%E%T!J!U!H"FM#N#"M#KN#""lL%E%T!J!U!H"FM#N#"M#KN#""PL%E%T!J!U!H"FM#N#"M#KN#""hL$E$T!J!H!U!FM"N"!M"KN"!!Lpc#k#i#$k#$Epc#k#i#$k#$T!pc!k!i!J!H!U!FM"N"!M"KN"!!k!J!H!U!FM"N"!M"NK"!!qD)E)F)L(HT'J'U'(J'(lD)E)F)L(HT'J'U'(J'(PD)E)F)L(HT'J'U'(J'(hD(E(F(L'HT&J&U&'J&'Dpc'k'i'(k'(Epc'k'i'(k'(Fpc'k'i'(k'(Lpc&k&i&'k&'pcHT%J%U%&J%&kHT%J%U%&J%&iHT%J%U%&J%&HT&J&U&'J&'kHT%J%U%&J%&HT&J&U&'J&'eBCPD%!W!O!qD#!lD#!!qPD)E)F)O'G'(D)lEF'OG&H&I&'G&'FO&G&'$EFW&O&'WOG%H%I%&G%&OG%H%I%&G&'FWO%G%&O%G&'W#O#$lPD)E)F)O'G'(D)EFtW&O&'pW&O&'W&'tWOG%H%I%&G%&OG%H%I%&G&'pWOG%H%I%&G%&OG%H%I%&G&'WOG%H%I%&G%&OG&H&I&'G&'FtWO%G%&O%G&'pWO%G%&O%G&'WO%G%&O&G&'tW#O#$pW#O#$W#$PD)E)F)O'G'(DW'O'(EF$OG#H#I#$G#$FO#G#$!CqP)D)lL'E'T&J&U&'LW&O&'EW&O&'WT%J%U%&OT%J%U%&T&J&U&'lP)D)LtW&O&'pW&O&'W&'EtW&O&'pW&O&'W&'tWT%J%U%&OT%J%U%&T&J&U&'pWT%J%U%&OT%J%U%&T&J&U&'WT%J%U%&T&J&U&'P)DW'O'(L$E$T#J#U#$qP+D+l*W)O)*lP+D+tW)O)*pW)O)*W)*P+D*'BCPD'O$G$F%Q%R%$DWO$q%l%$qO%'lOr%S%$'O$'!PD+E+F+*D+EF*OG)H)I)*G)*FO)G)*'CP+D+L*E*T)J)U)*-eAXT!B!@qlL%[%Y%E$CJ#U#$J#HU#$$PL%[%Y%E$CJ#U#$J#HU#$$!lPL%[%Y%E$CJ#U#$J#HU#$$t!p!W!LO"rD#S#Q#"S#"[O"rD#S#Q#"S#"YO"rD#S#Q#"S#"O!ErD"S"Q"!S"!CJ!U!rD"S"Q"!S"!J!HU!rD"S"Q"!S"!rD"S"Q"!S"!t!p!W!PLk"sh#o#m#"o#"[k"sh#o#m#"o#"Yk"sh#o#m#"o#"k!Esh"o"m"!o"!CJ!U!sh"o"m"!o"!J!HU!sh"o"m"!o"!sh"o"m"!o"!!!TB!@ql%P%!lP%t!p!W!O"rD#S#Q#"S#"t!p!W!Pk"sh#o#m#"o#"!!@Bql[%Y%L%_$c^#\#$d^#\#$^#$P[%Y%L%_$c^#\#$d^#\#$^#$!lP[%Y%L%_$c^#\#$d^#\#$^#$t!p!W![O"rD#S#Q#"S#"YO"rD#S#Q#"S#"LO"rD#S#Q#"S#"O!_rD"S"Q"!S"!c^!\!rD"S"Q"!S"!d^!\!rD"S"Q"!S"!^!rD"S"Q"!S"!t!p!W!P[k"sh#o#m#"o#"Yk"sh#o#m#"o#"Lk"sh#o#m#"o#"k!_sh"o"m"!o"!c^!\!sh"o"m"!o"!d^!\!sh"o"m"!o"!^!sh"o"m"!o"!!ql'P'#lP't#p#W#O$rD%S%Q%$S%$Pt#p#W#k$sh%o%m%$o%$!!XTB!@qL%E%C!J!H!U"MY#N#Z#"N#"lL%E%C!J!H!U"MY#N#Z#"N#"PL%E%C!J!H!U"MY#N#Z#"N#"DL$E$C!J!H!U!MY"N"Z"!N"!LWC#O#G#$O#$EWC#O#G#$O#$C!WO!G!J!H!U!MY"N"Z"!N"!O!J!H!U!MY"N"Z"!N"!!@Bq[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!l[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!P[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!D[Y$L$U!J!\!]!EN"Z"!N"MZ"!!YL$!^!\!]!U!L_`"a"!b`"a"!`"!![YWC#O#G#$O#$LWC#O#G#$O#$WC!O!G!U!J!\!]!EN"Z"!N"MZ"!!O!U!J!\!]!EN"Z"!N"MZ"!!YLWC#O#G#$O#$!WC!O!G!^!\!]!U!L_`"a"!b`"a"!`"!!O!^!\!]!U!L_`"a"!b`"a"!`"!!qL)[)Y)E(CJ'U'(J'HU'((lL)[)Y)E(CJ'U'(J'HU'((PL)[)Y)E(CJ'U'(J'HU'((DL([(Y(E'CJ&U&'J&HU&''LWC'O'G'(O'([WC'O'G'(O'(YWC'O'G'(O'(EWC&O&G&'O&'WCJ%U%&OJ%HU%&&GJ%HU%&&J&HU&''OCJ%U%&J%HU%&&CJ&U&'J&HU&''B!C!qPEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!lEL"["Y"!L"!W!O!EL"["Y"!L"!lPEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!tW!O!EL"["Y"!L"!pW!O!EL"["Y"!L"!W!EL"["Y"!L"!PEL#[#Y#"L#[Y"JU!\!]!"U!"J!U!Y"!DEL"["Y"!L"!!@TBq_%[%c!d!^!\"bY#`#a#"`#"l_%[%c!d!^!\"bY#`#a#"`#"P_%[%c!d!^!\"bY#`#a#"`#"D_$[$c!d!^!\!bY"`"a"!`"!_WC#O#G#$O#$[WC#O#G#$O#$c!WC!O!G!d!^!\!bY"`"a"!`"!O!d!^!\!bY"`"a"!`"!q)l)P)D(WC'O'G'(O'(Bq[)Y)L)_(c^'\'(d^'\'(^'(l[)Y)L)_(c^'\'(d^'\'(^'(P[)Y)L)_(c^'\'(d^'\'(^'(D[(Y(L(_'c^&\&'d^&\&'^&'[WC'O'G'(O'(YWC'O'G'(O'(LWC'O'G'(O'(_WC&O&G&'O&'WCc^%\%&d^%\%&^%&Oc^%\%&d^%\%&^%&Gc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'Oc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'q+l+P+D*WC)O)G)*O)*B!CT!qPL#E#D"!DL#E#W!O!"!lPL#E#D"!DL#E#W!O!"!PL#E#D"!W!O!DL"E"!!TqPE#L#_"["c!d!^!"DE#L#_"["c!d!^!"lE"L"!W!O!E"L"!lPE#L#_"["c!d!^!"DE#L#_"["c!d!^!"tW!O!E"L"!pW!O!E"L"!W!E"L"!PE#L#_"["c!d!^!"DE"L"!!qP%D%l$W#O#$lP%D%tW#O#$pW#O#$W#$P%D$!XTB!@AqL%E%C!J!H!U"MY#N#Z#"N#"lL%E%C!J!H!U"MY#N#Z#"N#"PL%E%C!J!H!U"MY#N#Z#"N#"hL$E$C!J!H!U!MY"N"Z"!N"!Lpc#k#i#$k#$Epc#k#i#$k#$C!pc!k!i!J!H!U!MY"N"Z"!N"!k!J!H!U!MY"N"Z"!N"!L'E'C#J#H#U$MY%N%Z%$N%$!@ABq[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!l[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!P[Y%L%U!\!]!J"EN#Z#"N#MZ#""YL%!\!]!U!L^"_`#a#"b`#a#"`#"!h[Y$L$U!J!\!]!EN"Z"!N"MZ"!!YL$!^!\!]!U!L_`"a"!b`"a"!`"!![Ypc#k#i#$k#$Lpc#k#i#$k#$pc!k!i!U!J!\!]!EN"Z"!N"MZ"!!k!U!J!\!]!EN"Z"!N"ZM"!!YLpc#k#i#$k#$!pc!k!i!^!\!]!U!L_`"a"!b`"a"!`"!!k!^!\!]!U!L_`"a"!b`"a"!`"!!qL)[)Y)E(CJ'U'(J'HU'((lL)[)Y)E(CJ'U'(J'HU'((PL)[)Y)E(CJ'U'(J'HU'((hL([(Y(E'CJ&U&'J&HU&''Lpc'k'i'(k'([pc'k'i'(k'(Ypc'k'i'(k'(Epc&k&i&'k&'pcCJ%U%&J%HU%&&kCJ%U%&J%HU%&&iCJ%U%&J%HU%&&CJ&U&'J&UH&''kCJ%U%&J%HU%&&CJ&U&'J&UH&''B[Y'L'U#\#]#J$EN%Z%$N%MZ%$$YL'#L\#]#U#^$_`%a%$b`%a%$`%$!L+[+Y+E*CJ)U)*J)HU)**A!B!CPL#E[#Y#U!J!"!DL#E[#Y#U!J!"!LE"!U!J!E["Y"!!EL%[%Y%$L%[Y$JU#\#]#$U#$YJ#U#$!@ATBq_%[%c!d!^!\"bY#`#a#"`#"l_%[%c!d!^!\"bY#`#a#"`#"P_%[%c!d!^!\"bY#`#a#"`#"h_$[$c!d!^!\!bY"`"a"!`"!_pc#k#i#$k#$[pc#k#i#$k#$c!pk!i!d!^!\!bY"`"a"!`"!k!d!^!\!bY"`"a"!`"!q)l)P)h(pc'k'i'(k'(Bq[)Y)L)_(c^'\'(d^'\'(^'(l[)Y)L)_(c^'\'(d^'\'(^'(P[)Y)L)_(c^'\'(d^'\'(^'(h[(Y(L(_'c^&\&'d^&\&'^&'[pc'k'i'(k'(Ypc'k'i'(k'(Lpc'k'i'(k'(_pc&k&i&'k&'pc^%\%&kd^%\%&^%&id^%\%&^%&d^&\&'^&'kc^%\%&d^%\%&^%&c^&\&'d^&\&'^&'q+l+P+h*pc)k)i)*k)*TB_'['c#d#^#\$bY%`%a%$`%$+B[+Y+L+_*c^)\)*d^)\)*^)*-AB!C!T!qDE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!lDE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!PDE#L#F"GH!J!"H!IJ!""E#FL#J!H!"L"!hDE"L"!E"FL"!!pc!k!i!DE"L"!E"FL"!!k!DE"L"!E"FL"!!BC!T!PD[#Y#L#_"c^!\!"d^!\!"^!"E[#Y#L#_"c^!\!"d^!\!"^!"F[#Y#L#_"c^!\!"d^!\!"^!"["Y"L"!D[#Y#L#_"c^!\!"d^!\!"^!"EF["Y"L"!OG!H!I!["Y"L"!G!["Y"L"!O!G!F["Y"L"!!CTPL#E#!DL#E#!LE"!!PL%E%$DL%E%$L$E$!TE%L%_$[$c#d#^#$'eAc!X!?@qlh%f%_%[$dT#^#\#$^#$Ph%f%_%[$dT#^#\#$^#$!lPh%f%_%[$dT#^#\#$^#$t!p!W!hO"rD#S#Q#"S#"fO"rD#S#Q#"S#"_O"rD#S#Q#"S#"O![rD"S"Q"!S"!dT!^!\!rD"S"Q"!S"!^!rD"S"Q"!S"!t!p!W!Phk"s#o#"fk"so#m#"o#"_k"so#m#"o#"k![so"m"!o"!dT!^!\!so"m"!o"!^!so"m"!o"!!!!cX!@?q_%[%T!^!\!d"fb#`#"gb#`#"b#"l_%[%T!^!\!d"fb#`#"gb#`#"b#"P_%[%T!^!\!d"fb#`#"gb#`#"b#"D_$[$T!d!^!\!fb"`"!gb"`"!b"!_WC#O#G#$O#$[WC#O#G#$O#$T!WC!O!G!d!^!\!fb"`"!gb"`"!b"!O!d!^!\!fb"`"!gb"`"!b"!!!@?Xqhf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"lm#n#"om#n#"m#"!lhf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"m#n#"!Phf%_%i!j!d!^"g[#b#`#"b#"f_%!i!j!d!_k"om#n#"m#"!Dhf$_$i!j!d!^!g["b"`"!b"!f_$!k!i!j!d!_om"n"!m"!!hfWC#O#G#$O#$_WC#O#G#$O#$WC!O!G!i!j!d!^!g["b"`"!b"!O!i!j!d!^!g["b"`"!b"!f_WC#O#G#$O#$!WC!k!O!i!G!j!d!_om"n"!m"!!k!O!i!j!d!_om"n"!m"!!qh)f)_)[(dT'^'\'(^'(lh)f)_)[(dT'^'\'(^'(Ph)f)_)[(dT'^'\'(^'(Dh(f(_(['dT&^&\&'^&'hWC'O'G'(O'(fWC'O'G'(O'(_WC'O'G'(O'([WC&O&G&'O&'WCdT%^%\%&^%&OdT%^%\%&^%&GdT%^%\%&^%&dT&^&\&'^&'OdT%^%\%&^%&dT&^&\&'^&'X!T!B!qh_#[#f"id!^!"jd!^!"d!"f_#[#d!^!"_#["!lh_#[#f"id!^!"jd!^!"d!"f_#[#d!^!"_#["!Ph_#[#f"id!^!"jd!^!"d!"f_#[#d!^!"_#["!Dh_"["!f_"["!_"!WC!O!G!h_"["!f_"["!_"!O!h_"["!f_"["!_"!X!B!C!?qPh#f#_#["dT!^!\!"^!"Dh#f#_#["dT!^!\!"^!"lh"f"_"!W!O!h"f"_"!lPh#f#_#["dT!^!\!"^!"Dh#f#_#["dT!^!\!"^!"tW!O!h"f"_"!pW!O!h"f"_"!W!h"f"_"!Ph#f#_#["dT!^!\!"^!"Dh"f"_"!!!?@AcXlh%!p!k!hq#P#!!ql)h)P_'['T&^&\&'_p&k&'[p&k&'pT%^%\%&kT%^%\%&T&^&\&'l)Ph)_tp&k&'p&Wk&''[tp&k&'p&Wk&''tpT%^%\%&kT%^%\%&T&^&\&'pT%^%\%&WkT%^%\%&T&^&\&'T&^&\&'hp'k'(_$[$T#^#\#$Xqlh)f)_)k'i'(h)Pf_'k&i&'_ki&j&d&'i&'$f_p&k&'pk%i%&k%i&'_pki%j%d%&i%&ki%j%d%&i&'p#k#$lh)f)_)k'i'(Ph)f_tp&k&'p&Wk&''tpk%i%&k%i&'pk%i%&Wk%i&'k&i&'_tpki%j%d%&i%&ki%j%d%&i&'pki%j%d%&i%&Wki%j%d%&i&'ki&j&d&'i&'tp#k#$p#Wk#$$hp'k'(f_$k#i#$_ki#j#d#$i#$!ql+h+P*p)k)*l+Ph+tp)k)*p)Wk)**h*'cXlh'k$i$f%m%n%$hpk$q%P%$qk%'Pks%o%$'k$'!l+h+_*[*T)^)\)*Xlh+f+_+*h+f_*k)i)*_ki)j)d)*i)*'-Ac!X!B!C!qlD#E#F#L"HT!J!U!"J!"hD#E#F#L"HT!J!U!"J!"PD"E"F"!p!k!D"E"F"!lD#E#F#L"HT!J!U!"J!"PhD#E#F#L"HT!J!U!"J!"tp!k!D"E"F"!p!Wk!D"E"F"!D"E"F"!hD"E"F"!!cX!BC!lPD#E#F#"D#EF"OG!H!I!"G!"O!G!F"!hPD#E#F#"D#EF"OG!H!I!"G!"O!G!F"!PD_"["T!^!\!"E_"["T!^!\!"F_"["T!^!\!"!D_"["T!^!\!"!ClP#D#L"E"T!J!U!"hP#D#L"E"T!J!U!"P_"["T!^!\!"D_"["T!^!\!"!l%h%_$[$T#^#\#$BC!XlPhD#E#F#"fD#E#F#"_D#E#F#"D"E"F"!Dh#f#_#"hEF"OG!H!I!"G!"O!G!F"!fEF"OG!H!I!"G!"O!G!F"!_EF"OG!H!I!"G!"O!G!F"!!hPD#E#F#"D#EF"OG!H!I!"G!"O!G!F"!Pf_D"E"F"!k!i!D"E"F"!ki!j!d!_D"E"F"!!i!_D"E"F"!!Df_"k!i!"ki!j!d!_"!i!_"!!PD%E%F%$D%EF$OG#H#I#$G#$FO#G#$!XClPh#f#_#"Dh#f#_#"hL"E"T!J!U!"fL"E"T!J!U!"_L"E"T!J!U!"!hP#D#L"E"T!J!U!"Pf_"k!i!"ki!j!d!_"!i!_"!Df_"k!i!"ki!j!d!_"!i!_"!!lh%f%_%$h%f_$k#i#$_ki#j#d#$i#$!CP%D%L$E$T#J#U#$'AcX!T!B!@ql_#[#h"!h_#[#p!k!"!l_#[#h"!Ph_#[#p!k!"!p!k!h_"["!!!X!TB!@ql_#[#L"E"C!J!H!"h_#[#L"E"C!J!H!"P_"["!p!k!_"["!l_#[#L"E"C!J!H!"Ph_#[#L"E"C!J!H!"tp!k!_"["!p!Wk!_"["!_"["!h_"["!!!@Bql_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!h_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!P_["Y"L"!["!p!k!_["Y"L"!["!l_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!Ph_[#Y#L#"[#YL"^!\!"^\!]!U!L"!\!L"!tp!k!_["Y"L"!["!p!Wk!_["Y"L"!["!_["Y"L"!["!h_["Y"L"!["!!ql%h%P$p#k#$l%Ph%tp#k#$p#Wk#$$h$!!Xc!T!B!@lhL#[#Y#E"CJ!U!"J!HU!""fL#[#Y#E"CJ!U!"J!HU!""_L#[#Y#E"CJ!U!"J!HU!""L"["Y"!hL#[#Y#E"CJ!U!"J!HU!""f_L"["Y"!k!i!L"["Y"!ki!j!d!_L"["Y"!!i!_L"["Y"!!!TB!@cl_#[#!h_#[#!_["!!_%[%L$E$C#J#H#$!@cBl_[#Y#L#^!\!"[#!h_[#Y#L#^!\!"[#!_["^!\!Y"L"!!l_%[%$h_%[%$_$[$!B_[%Y%L%$[%YL$^#\#$L^\#]#U#$\#$!'!)dziendobry"; const vector<pii> checked_cells = { {-1, 0}, {0, -1}, {1, 0}, {0, 1}, {-1, 1}, {1, 1}, {0, 2}, {-1, 2}, {1, 2}, {0, 3}, {-1, 3}, {1, 3}, {0, 4}, {2, 2}, {1, 4}, {2, 1}, {2, 3}, {3, 2}, {-2, 2}, {-2, 1}, {-2, 3}, {-1, 4}, {-3, 2}, {2, 0}, {3, 1}, {-2, 0}, {-3, 1}, {1, -1}, {3, 0}, {4, 1}, {2, -1}, {3, -1}, {4, 0}, {2, -2}, {1, -2}, {3, -2}, {4, -1}, {2, -3}, {0, -2}, {1, -3}, {-1, -1}, {0, -3}, {1, -4}, {-1, -2}, {-1, -3}, {0, -4}, {-2, -2}, {-2, -1}, {-2, -3}, {-1, -4}, {-3, -2}, {-3, -1}, {-3, 0}, {-4, 1}, {-4, -1}, {-4, 0} }; struct StrategyElem { int ans = -1; int cell_idx = -1, no = -1, yes = -1; ll mask_cells = 0; ll questionmark_memo = -1; }; vector<StrategyElem> strategy_tree; const int kShift = 57; void Preproc() { int cur_loc = 0; function<int(void)> Parse = [&]() { char ch = strategy_str[cur_loc++]; int node_idx = SZ(strategy_tree); strategy_tree.emplace_back(); if (ch < '<') { strategy_tree.back().ans = (ch - '!'); strategy_tree.back().questionmark_memo = ll(strategy_tree.back().ans) << kShift; return node_idx; } else { int lhs_node = Parse(); int rhs_node = Parse(); auto &node = strategy_tree[node_idx]; const int cell_idx = ch - '='; assert(0 <= cell_idx && cell_idx < SZ(checked_cells)); node.cell_idx = cell_idx; node.no = lhs_node; node.yes = rhs_node; node.mask_cells = 1LL << cell_idx; node.mask_cells |= ( strategy_tree[lhs_node].mask_cells | strategy_tree[rhs_node].mask_cells); node.questionmark_memo = ( strategy_tree[lhs_node].questionmark_memo + strategy_tree[rhs_node].questionmark_memo) / 2; return node_idx; } }; Parse(); assert(cur_loc == SZ(strategy_str)); } int n, m; vector<string> board; char GetBoard(int r, int c) { if (r < 0 || c < 0 || r >= n || c >= m) { return '.'; } return board[r][c]; }; ll Solve(int r, int c) { if (board[r][c] == '.') { return 0; } string s; ll questionmark_mask = 0; for (int i = 0; i < SZ(checked_cells); ++i) { auto cell = checked_cells[i]; s += GetBoard(r + cell.st, c + cell.nd); if (s.back() == '?') { questionmark_mask |= (1LL << i); } } function<ll(int)> ProcessTree = [&](int cur_node) { auto &node = strategy_tree[cur_node]; if (node.ans != -1) { return ll(node.ans) << kShift; } if ((node.mask_cells & questionmark_mask) == node.mask_cells) { return node.questionmark_memo; } const char ch = s[node.cell_idx]; //GetBoard(r + node.r, c + node.c); if (ch == 'O') { return ProcessTree(node.yes); } else if (ch == '.') { return ProcessTree(node.no); } else { return (ProcessTree(node.yes) + ProcessTree(node.no)) / 2; } }; ll ans = ProcessTree(0); if (board[r][c] == '?') { ans /= 2; } return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(11); cerr << fixed << setprecision(10); assert(kShift > SZ(checked_cells)); Preproc(); //~ cerr << checked_cells.size() << "\n"; //~ cerr << strategy_tree.size() << "\n"; cin >> n >> m; board.resize(n); for (int i = 0; i < n; ++i) { cin >> board[i]; } i128 p = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { p += Solve(i, j); } } i128 q = i128(24) << kShift; i128 g = my_gcd(p, q); p /= g; q /= g; cout << p << "/" << q << "\n"; } |