AtCoder Shop má N produktů.
Cena i-tého produktu (1\leq i\leq N) je P _ i.
I-tý produkt (1\leq i\leq N) má funkce C_i. j-tá funkce (1\leq j\leq C _ i) i-tého produktu (1\leq i\leq N) je reprezentována jako celé číslo F _ {i,j} mezi 1 a M, včetně.
Takahashi si klade otázku, zda existuje produkt, který je přísně lepší než jiný.
Pokud existují i a j (1\leq i,j\leq N) takové, že i-tý a j-tý produkt splňují všechny následující podmínky, vytiskněte Ano; jinak tisk No.

- P _ i\geq P _ j.
- j-tý produkt má všechny funkce i-tého produktu.
- P _ i\gt P _ j, nebo j-tý produkt má jednu nebo více funkcí, které i-tý produkt postrádá.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
P _ 1 C _ 1 F _ {1,1} F _ {1,2} \ldots F _ {1,C _ 1}
P _ 2 C _ 2 F _ {2,1} F _ {2,2} \ldots F _ {2,C _ 2}
\vdots
P _ N C _ N F _ {N,1} F _ {N,2} \ldots F _ {N,C _ N}

Výstup

Vytiskněte odpověď na jeden řádek.

Omezení

- 2\leq N\leq100
- 1\leq M\leq100
- 1\leq P _ i\leq10^5\ (1\leq i\leq N)
- 1\leq C _ i\leq M\ (1\leq i\leq N)
- 1\leq F _ {i,1}\lt F _ {i,2}\lt\cdots\lt F _ {i,C _ i}\leq M\ (1\leq i\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 6
10000 2 1 3
15000 3 1 2 4
30000 3 1 3 5
35000 2 1 5
100000 6 1 2 3 4 5 6

Ukázkový výstup 1

Yes
(i,j)=(4,3) splňuje všechny podmínky.
Žádný jiný pár je neuspokojuje. Například pro (i,j)=(4,5) má j-tý produkt všechny funkce i-tého, ale P _ i\lt P _ j, takže není přísně nadřazený.

Ukázkový vstup 2

4 4
3 1 1
3 1 2
3 1 2
4 2 2 3

Ukázkový výstup 2

No
Více produktů může mít stejnou cenu a funkce.

Ukázkový vstup 3

20 10
72036 3 3 4 9
7716 4 1 2 3 6
54093 5 1 6 7 8 10
25517 7 3 4 5 6 7 9 10
96930 8 2 3 4 6 7 8 9 10
47774 6 2 4 5 6 7 9
36959 5 1 3 4 5 8
46622 7 1 2 3 5 6 8 10
34315 9 1 3 4 5 6 7 8 9 10
54129 7 1 3 4 6 7 8 9
4274 5 2 4 7 9 10
16578 5 2 3 6 7 9
61809 4 1 2 4 5
1659 5 3 5 6 9 10
59183 5 1 2 3 4 9
22186 4 3 5 6 8
98282 4 1 4 7 10
72865 8 1 2 3 4 6 8 9 10
33796 6 1 3 5 7 9 10
74670 4 1 2 6 8

Ukázkový výstup 3

Yes

AtCoder Shop má N produktů.
Cena i-tého výrobku (1\leq i\leq N) je P _ i.
i-tý výrobek (1\leq i\leq N) má funkce C_i. J-tá funkce (1\leq j\leq C _ i) i-tého výrobku (1\leq i\leq N) je reprezentována jako celé číslo F _ {i,j} mezi 1 a M včetně.
Takahaši si klade otázku, zda existuje součin, který je striktně nadřazen jinému.
Pokud existují i a j (1\leq i,j\leq N) takové, že i-tý a j-tý součin splňují všechny následující podmínky, vypište Ano; jinak vypište Ne.

- P _ i\geq P _ j.
- J-tý součin má všechny funkce i-tého součinu.
- P _ i\gt P _ j, nebo j-tý součin má jednu nebo více funkcí, které i-tému součinu chybí.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N M
P _ 1 C _ 1 F _ {1,1} F _ {1,2} \ldots F _ {1,C _ 1}
P _ 2 C _ 2 F _ {2,1} F _ {2,2} \ldots F _ {2,C _ 2}
\vdots
P _ N C _ N F _ {N,1} F _ {N,2} \ldots F _ {N,C _ N}

Výstup

Vypište odpověď na jeden řádek.

Omezení

- 2\leq N\leq100
- 1\leq M\leq100
- 1\leq P _ i\leq10^5\ (1\leq i\leq N)
- 1\leq C _ i\leq M\ (1\leq i\leq N)
- 1\leq F _ {i,1}\lt F _ {i,2}\lt\cdots\lt F _ {i,C _ i}\leq M\ (1\leq i\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 6
10000 2 1 3
15000 3 1 2 4
30000 3 1 3 5
35000 2 1 5
100000 6 1 2 3 4 5 6

Ukázkový výstup 1

Yes

(i,j)=(4,3) splňuje všechny podmínky.
Žádná jiná dvojice je nesplňuje. Například pro (i,j)=(4,5) má j-tý součin všechny funkce i-tého, ale P _ i\lt P _ j, takže není striktně nadřazený.

Ukázkový vstup 2

4 4
3 1 1
3 1 2
3 1 2
4 2 2 3

Ukázkový výstup 2

No

Více produktů může mít stejnou cenu a funkce.

Ukázkový vstup 3

20 10
72036 3 3 4 9
7716 4 1 2 3 6
54093 5 1 6 7 8 10
25517 7 3 4 5 6 7 9 10
96930 8 2 3 4 6 7 8 9 10
47774 6 2 4 5 6 7 9
36959 5 1 3 4 5 8
46622 7 1 2 3 5 6 8 10
34315 9 1 3 4 5 6 7 8 9 10
54129 7 1 3 4 6 7 8 9
4274 5 2 4 7 9 10
16578 5 2 3 6 7 9
61809 4 1 2 4 5
1659 5 3 5 6 9 10
59183 5 1 2 3 4 9
22186 4 3 5 6 8
98282 4 1 4 7 10
72865 8 1 2 3 4 6 8 9 10
33796 6 1 3 5 7 9 10
74670 4 1 2 6 8

Ukázkový výstup 3

Yes

AtCoder Shop má N produktů.
Cena i-tého výrobku (1\leq i\leq N) je P _ i.
i-tý výrobek (1\leq i\leq N) má funkce C_i. J-tá funkce (1\leq j\leq C _ i) i-tého výrobku (1\leq i\leq N) je reprezentována jako celé číslo F _ {i,j} mezi 1 a M včetně.
Takahaši si klade otázku, zda existuje součin, který je striktně nadřazen jinému.
Pokud existují i a j (1\leq i,j\leq N) takové, že i-tý a j-tý součin splňují všechny následující podmínky, vypište Ano; jinak vypište Ne.

- P _ i\geq P _ j.
- J-tý součin má všechny funkce i-tého součinu.
- P _ i\gt P _ j, nebo j-tý součin má jednu nebo více funkcí, které i-tému součinu chybí.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
P _ 1 C _ 1 F _ {1,1} F _ {1,2} \ldots F _ {1,C _ 1}
P _ 2 C _ 2 F _ {2,1} F _ {2,2} \ldots F _ {2,C _ 2}
\vdots
P _ N C _ N F _ {N,1} F _ {N,2} \ldots F _ {N,C _ N}

Výstup

Vypište odpověď na jeden řádek.

Omezení

- 2\leq N\leq100
- 1\leq M\leq100
- 1\leq P _ i\leq10^5\ (1\leq i\leq N)
- 1\leq C _ i\leq M\ (1\leq i\leq N)
- 1\leq F _ {i,1}\lt F _ {i,2}\lt\cdots\lt F _ {i,C _ i}\leq M\ (1\leq i\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

5 6
10000 2 1 3
15000 3 1 2 4
30000 3 1 3 5
35000 2 1 5
100000 6 1 2 3 4 5 6

Vzorový výstup 1

Yes

(i,j)=(4,3) splňuje všechny podmínky.
Žádná jiná dvojice je nesplňuje. Například pro (i,j)=(4,5) má j-tý součin všechny funkce i-tého, ale P _ i\lt P _ j, takže není striktně nadřazený.

Vzorový vstup 2

4 4
3 1 1
3 1 2
3 1 2
4 2 2 3

Vzorový výstup 2

No

Více produktů může mít stejnou cenu a funkce.

Vzorový vstup 3

20 10
72036 3 3 4 9
7716 4 1 2 3 6
54093 5 1 6 7 8 10
25517 7 3 4 5 6 7 9 10
96930 8 2 3 4 6 7 8 9 10
47774 6 2 4 5 6 7 9
36959 5 1 3 4 5 8
46622 7 1 2 3 5 6 8 10
34315 9 1 3 4 5 6 7 8 9 10
54129 7 1 3 4 6 7 8 9
4274 5 2 4 7 9 10
16578 5 2 3 6 7 9
61809 4 1 2 4 5
1659 5 3 5 6 9 10
59183 5 1 2 3 4 9
22186 4 3 5 6 8
98282 4 1 4 7 10
72865 8 1 2 3 4 6 8 9 10
33796 6 1 3 5 7 9 10
74670 4 1 2 6 8

Vzorový výstup 3

Yes


Je N tyčí s několika míčky přilepenými na nich. Na každém míčku je napsáno malé písmeno anglické abecedy.
Pro každé i = 1, 2, \ldots, N, jsou písmena napsaná na míčcích přilepených na i-té tyči reprezentována řetězcem S_i.
Konkrétně počet míčků přilepených na i-té tyči je délka |S_i| řetězce S_i a S_i je posloupnost písmen na míčcích začínající od jednoho konce tyče.
Dvě tyče jsou považovány za stejné, pokud posloupnost písmen na míčcích začínající od jednoho konce jedné tyče je stejná jako posloupnost písmen začínající od jednoho konce druhé tyče.
Formálněji, pro celé čísla i a j mezi 1 a N, včetně, jsou i-tá a j-tá tyč považovány za stejné, pokud a jen pokud S_i se rovná S_j nebo jeho obrácení.
Vytiskněte počet různých tyčí mezi N tyčemi.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
S_1
S_2
\vdots
S_N

Výstup

Vytiskněte odpověď.

Omezení

- N je celé číslo.
- 2 \leq N \leq 2 \times 10^5
- S_i je řetězec sestávající z malých písmen anglické abecedy.
- |S_i| \geq 1
- \sum_{i = 1}^N |S_i| \leq 2 \times 10^5

Ukázkový vstup 1

6
a
abc
de
cba
de
abc

Ukázkový výstup 1

3

- S_2 = abc se rovná obrácení S_4 = cba, takže druhá a čtvrtá tyč jsou považovány za stejné.
- S_2 = abc se rovná S_6 = abc, takže druhá a šestá tyč jsou považovány za stejné.
- S_3 = de se rovná S_5 = de, takže třetí a pátá tyč jsou považovány za stejné.

Proto jsou mezi šesti tyčemi tři různé: první, druhá (stejná jako čtvrtá a šestá) a třetí (stejná jako pátá).

Existuje N tyčinek s několika nalepenými kuličkami. Na každém míčku je napsáno malé anglické písmeno.
Pro každé i = 1, 2, \ldots, N jsou písmena napsaná na kuličkách nalepených na i-té tyčce reprezentována řetězcem S_i.
Konkrétně počet kuliček nalepených na i-té tyčce je délka |S_i| řetězce S_i a S_i je posloupnost písmen na kuličkách začínající od jednoho konce tyče.
Dvě tyče jsou považovány za stejné, pokud se sekvence písmen na koulích začínající na jednom konci jedné tyče rovná pořadí písmen začínajících na jednom konci druhé tyče.
Formálněji, pro celá čísla i a j mezi 1 a N, včetně, jsou i-té a j-té tyče považovány za stejné právě tehdy, když S_i se rovná S_j nebo jeho obrácení.
Vytiskněte počet různých tyčinek mezi N tyčemi.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
S_1
S_2
\vdots
S_N

Výstup

Vytiskněte odpověď.

Omezení

- N je celé číslo.
- 2 \leq N \leq 2 \times  10^5
- S_i je řetězec skládající se z malých anglických písmen.
- |S_i| \geq 1
- \sum_{i = 1}^N |S_i| \leq 2 \times 10^5

Ukázkový vstup 1

6
A
abc
de
cba
de
abc

Ukázkový výstup 1

3

- S_2 = abc se rovná obrácení S_4 = cba, takže druhá a čtvrtá tyč se považují za stejné.
- S_2 = abc se rovná S_6 = abc, takže druhá a šestá tyč se považují za stejné.
- S_3 = de se rovná S_5 = de, takže třetí a pátá tyčinka jsou považovány za stejné.

Mezi šesti jsou tedy tři různé tyče: první, druhá (stejná jako čtvrtá a šestá) a třetí (stejná jako pátá).

Je N tyčí s několika míčky přilepenými na nich. Na každém míčku je napsáno malé písmeno anglické abecedy.
Pro každé i = 1, 2, \ldots, N, jsou písmena napsaná na míčcích přilepených na i-té tyči reprezentována řetězcem S_i.
Konkrétně počet míčků přilepených na i-té tyči je délka |S_i| řetězce S_i a S_i je posloupnost písmen na míčcích začínající od jednoho konce tyče.
Dvě tyče jsou považovány za stejné, pokud posloupnost písmen na míčcích začínající od jednoho konce jedné tyče je stejná jako posloupnost písmen začínající od jednoho konce druhé tyče.
Formálněji, pro celé čísla i a j mezi 1 a N, včetně, jsou i-tá a j-tá tyč považovány za stejné, pokud a jen pokud S_i se rovná S_j nebo jeho obrácení.
Vytiskněte počet různých tyčí mezi N tyčemi.

Vstup

Vstup je zadán prostřednictvím standardního vstupu v následujícím formátu:
N
S_1
S_2
\vdots
S_N

Výstup

Vytiskněte odpověď.

Omezení

- N je celé číslo.
- 2 \leq N \leq 2 \times 10^5
- S_i je řetězec sestávající z malých písmen anglické abecedy.
- |S_i| \geq 1
- \sum_{i = 1}^N |S_i| \leq 2 \times 10^5

Ukázkový vstup 1

6
a
abc
de
cba
de
abc

Ukázkový výstup 1

3

- S_2 = abc se rovná obrácení S_4 = cba, takže druhá a čtvrtá tyč jsou považovány za stejné.
- S_2 = abc se rovná S_6 = abc, takže druhá a šestá tyč jsou považovány za stejné.
- S_3 = de se rovná S_5 = de, takže třetí a pátá tyč jsou považovány za stejné.

Proto jsou mezi šesti tyčemi tři různé: první, druhá (stejná jako čtvrtá a šestá) a třetí (stejná jako pátá).


Je N sportovních hráčů.
Mezi nimi je M neslučitelných dvojic. i-tá neslučitelná dvojice (1\leq i\leq M) jsou hráči A_i-tý a B_i-tý.
Rozdělíte hráče do T týmů.
Každý hráč musí patřit přesně do jednoho týmu a každý tým musí mít jednoho nebo více hráčů.
Navíc, pro každé i=1,2,\ldots,M, hráči A_i-tý a B_i-tý nesmí patřit do stejného týmu.
Zjistěte, kolika způsoby lze tyto podmínky splnit.
Zde se dvě rozdělení považují za odlišná, pokud existují dva hráči, kteří patří do stejného týmu v jednom rozdělení a do různých týmů v druhém.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N T M
A _ 1 B _ 1
A _ 2 B _ 2
\vdots
A _ M B _ M

Výstup

Vytiskněte odpověď na jediný řádek.

Omezení

- 1\leq T\leq N\leq10
- 0\leq M\leq\dfrac{N(N-1)}2
- 1\leq A _ i\lt B _ i\leq N\ (1\leq i\leq M)
- (A _ i,B _ i)\neq (A _ j,B _ j)\ (1\leq i\lt j\leq M)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 2 2
1 3
3 4

Ukázkový výstup 1

4

Následující čtyři rozdělení splňují podmínky.

Žádné jiné rozdělení je nesplňuje, proto vytiskněte 4.

Ukázkový vstup 2

5 1 2
1 3
3 4

Ukázkový výstup 2

0

Nemusí existovat žádné rozdělení, které splňuje podmínky.

Ukázkový vstup 3

6 4 0

Ukázkový výstup 3

65

Nemusí existovat neslučitelná dvojice.

Ukázkový vstup 4

10 6 8
5 9
1 4
3 8
1 6
4 10
5 7
5 6
3 7

Ukázkový výstup 4

8001

Sportovců je N.
Mezi nimi je M nekompatibilních párů. I-tý nekompatibilní pár (1\leq i\leq M) je A_i-tý a B_i-tý hráč.
Rozdělíte hráče do T týmů.
Každý hráč musí patřit přesně do jednoho týmu a každý tým musí mít jednoho nebo více hráčů.
Navíc pro každé i=1,2,\ldots,M nesmí A_i-tý a B_i-tý hráči patřit do stejného týmu.
Najděte počet způsobů, jak tyto podmínky splnit.
Zde jsou dvě divize považovány za odlišné, když jsou dva hráči, kteří patří do stejného týmu v jedné divizi, a různé týmy ve druhé.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N T M
A_1B_1
A_2B_2
\vdots
A_M B_M

Výstup

Vytiskněte odpověď na jeden řádek.

Omezení

- 1\leq T\leq N\leq10
- 0\leq M\leq\dfrac{N(N-1)}2
- 1\leq A _ i\lt B _ i\leq N\ (1\leq i\leq M)
- (A _ i,B _ i)\neq (A _ j,B _ j)\ (1\leq i\lt j\leq M)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 2 2
1 3
3 4

Ukázkový výstup 1

4

Následující čtyři divize splňují podmínky.

Žádná jiná divize je nesplňuje, proto vytiskněte 4.

Ukázkový vstup 2

5 1 2
1 3
3 4

Ukázkový výstup 2

0

Nemusí existovat žádná divize, která by vyhovovala podmínkám.

Ukázkový vstup 3

6 4 0

Ukázkový výstup 3

65

Nemusí existovat žádný nekompatibilní pár.

Ukázkový vstup 4

10 6 8
5 9
14
38
16
4 10
5 7
5 6
3 7

Ukázkový výstup 4

8001


Je dán řetězec S délky N, který se skládá z 0 a 1.
Popisuje posloupnost délky N A=(A _ 1,A _ 2,\ldots,A _ N). Je-li i-tý znak S (1\leq i\leq N) roven 0, pak A _ i=0; je-li roven 1, pak A _ i=1.
Zjistěte následující:
\[\sum _ {1\leq i\leq j\leq N}(\cdots((A _ i\barwedge A _ {i+1})\barwedge A _ {i+2})\barwedge\cdots\barwedge A _ j)\].
Formálněji řečeno, najděte \displaystyle\sum _ {i=1} ^ {N}\sum _ {j=i} ^ Nf(i,j) pro f(i,j)\ (1\leq i\leq j\leq N) definované takto:
\[f(i,j)=\left\{\begin{matrix}
A _ i&(i=j)\\
f(i,j-1)\barwedge A _ j\quad&(i\lt j)
\end{matrix}\right.\]
Zde je \barwedge, NAND, binární operátor splňující následující podmínky:
\[0\barwedge0=1,0\barwedge1=1,1\barwedge0=1,1\barwedge1=0.\]

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N
S

Výstup

Vypište odpověď na jeden řádek.

Omezení

- 1\leq N\leq10^6
- S je řetězec délky N složený z 0 a 1.
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

5
00110

Vzorový výstup 1

9

Zde jsou hodnoty f(i,j) pro dvojice (i,j) takové, že 1\leq i\leq j\leq N:

- f(1,1)=0=0
- f(1,2)=0\barwedge0=1
- f(1,3)=(0\barwedge0)\barwedge1=0
- f(1,4)=((0\barwedge0)\barwedge1)\barwedge1=1
- f(1,5)=(((0\barwedge0)\barwedge1)\barwedge1)\barwedge0=1
- f(2,2)=0=0
- f(2,3)=0\barwedge1=1
- f(2,4)=(0\barwedge1)\barwedge1=0
- f(2,5)=((0\barwedge1)\barwedge1)\barwedge0=1
- f(3,3)=1=1
- f(3,4)=1\barwedge1=0
- f(3,5)=(1\barwedge1)\barwedge0=1
- f(4,4)=1=1
- f(4,5)=1\barwedge0=1
- f(5,5)=0=0

Jejich součet je 0+1+0+1+1+0+1+0+1+1+0+1+1+1+0=9, takže vypište 9.
Pamatujte, že \barwedge nesplňuje asociativní vlastnost.
Například (1\barwedge1)\barwedge0=0\barwedge0=1\neq0=1\barwedge1=1\barwedge(1\barwedge0).

Vzorový vstup 2

30
101010000100101011010011000010

Vzorový výstup 2

326

Je vám dán řetězec S délky N skládající se z 0 a 1.
Popisuje sekvenci délky-N A=(A _ 1,A _ 2,\ldots,A _ N). Jestliže i-tý znak S (1\leq i\leq N) je 0, pak A _ i=0; pokud je 1, pak A _ i=1.
Najděte následující:
\[\sum _ {1\leq i\leq j\leq N}(\cdots((A _ i\barwedge A _ {i+1})\barwedge A _ {i+2})\barwedge\cdots\ barwedge A _ j)\]
Formálněji najděte \displaystyle\sum _ {i=1} ^ {N}\sum _ {j=i} ^ Nf(i,j) pro f(i,j)\ (1\leq i\leq j\ leq N) definovaný takto:
\[f(i,j)=\left\{\begin{matice}
A _ i&(i=j)\\
f(i,j-1)\barwedge A _ j\quad&(i\lt j)
\end{matrix}\right.\]
Zde je \barwedge, NAND, binární operátor splňující následující:
\[0\barwedge0=1,0\barwedge1=1,1\barwedge0=1,1\barwedge1=0.\]

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
S

Výstup

Vytiskněte odpověď v jednom řádku.

Omezení

- 1\leq N\leq10^6
- S je řetězec délky N sestávající z 0 a 1.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
00110

Ukázkový výstup 1

9

Zde jsou hodnoty f(i,j) pro páry (i,j) takové, že 1\leq i\leq j\leq N:

- f(1,1)=0=0
- f(1,2)=0\barwedge0=1
- f(1,3)=(0\barwedge0)\barwedge1=0
- f(1,4)=((0\barwedge0)\barwedge1)\barwedge1=1
- f(1,5)=(((0\barwedge0)\barwedge1)\barwedge1)\barwedge0=1
- f(2,2)=0=0
- f(2,3)=0\barwedge1=1
- f(2,4)=(0\barwedge1)\barwedge1=0
- f(2,5)=((0\barwedge1)\barwedge1)\barwedge0=1
-f(3,3)=1=1
- f(3,4)=1\barwedge1=0
- f(3,5)=(1\barwedge1)\barwedge0=1
-f(4,4)=1=1
- f(4,5)=1\barwedge0=1
- f(5,5)=0=0

Jejich součet je 0+1+0+1+1+0+1+0+1+1+0+1+1+1+0=9, vytiskněte tedy 9.
Všimněte si, že \barwedge nesplňuje asociativní vlastnost.
Například (1\barwedge1)\barwedge0=0\barwedge0=1\neq0=1\barwedge1=1\barwedge(1\barwedge0).

Ukázkový vstup 2

30
101010000100101011010011000010

Ukázkový výstup 2

326

Je vám dán řetězec S délky N skládající se z 0 a 1.
Popisuje sekvenci délky-N A=(A _ 1,A _ 2,\ldots,A _ N). Jestliže i-tý znak S (1\leq i\leq N) je 0, pak A _ i=0; pokud je 1, pak A _ i=1.
Najděte následující:
\[\součet _ {1\leq i\leq j\leq N}(\cdots((A _ i\barwedge A _ {i+1})\barwedge A _ {i+2})\barwedge\cdots\ barwedge A _ j)\]
Formálněji najděte \displaystyle\sum _ {i=1} ^ {N}\sum _ {j=i} ^ Nf(i,j) pro f(i,j)\ (1\leq i\leq j\ leq N) definované takto:
\[f(i,j)=\left\{\begin{matice}
A _ i&(i=j)\\
f(i,j-1)\barwedge A _ j\quad&(i\lt j)
\end{matrix}\right.\]
Zde je \barwedge, NAND, binární operátor splňující následující:
\[0\barwedge0=1,0\barwedge1=1,1\barwedge0=1,1\barwedge1=0.\]

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
S

Výstup

Vytiskněte odpověď na jeden řádek.

Omezení

- 1\leq N\leq10^6
- S je řetězec délky N sestávající z 0 a 1.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
00110

Ukázkový výstup 1

9

Zde jsou hodnoty f(i,j) pro páry (i,j) takové, že 1\leq i\leq j\leq N:

- f(1,1)=0=0
- f(1,2)=0\barwedge0=1
- f(1,3)=(0\barwedge0)\barwedge1=0
- f(1,4)=((0\barwedge0)\barwedge1)\barwedge1=1
- f(1,5)=(((0\barwedge0)\barwedge1)\barwedge1)\barwedge0=1
- f(2,2)=0=0
- f(2,3)=0\barwedge1=1
- f(2,4)=(0\barwedge1)\barwedge1=0
- f(2,5)=((0\barwedge1)\barwedge1)\barwedge0=1
-f(3,3)=1=1
- f(3,4)=1\barwedge1=0
- f(3,5)=(1\barwedge1)\barwedge0=1
-f(4,4)=1=1
- f(4,5)=1\barwedge0=1
- f(5,5)=0=0

Jejich součet je 0+1+0+1+1+0+1+0+1+1+0+1+1+1+0=9, vytiskněte tedy 9.
Všimněte si, že \barwedge nesplňuje asociativní vlastnost.
Například (1\barwedge1)\barwedge0=0\barwedge0=1\neq0=1\barwedge1=1\barwedge(1\barwedge0).

Ukázkový vstup 2

30
101010000100101011010011000010

Ukázkový výstup 2

326


Máme N kostek.
Pro každé i = 1, 2, \ldots, N, když je i-tá kostka hozena, ukazuje náhodné celé číslo mezi 1 a A_i, včetně, se stejnou pravděpodobností.
Najděte pravděpodobnost, modulo 998244353, že následující podmínka je splněna, když jsou hozeny všechny N kostky současně.

Existuje způsob, jak vybrat některé (možná všechny) z N kostek tak, aby součet jejich výsledků byl 10.

Jak najít pravděpodobnost modulo 998244353
Lze dokázat, že hledaná pravděpodobnost je vždy racionální číslo. Navíc omezení tohoto problému zaručují, že pokud je hledaná pravděpodobnost reprezentována jako nesoudělný zlomek \frac{y}{x}, pak x není dělitelné 998244353. Existuje jednoznačné celé číslo z takové, že xz \equiv y \pmod{998244353}. Uveďte toto z.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 \ldots A_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_i \leq 10^6
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
1 7 2 9

Ukázkový výstup 1

942786334

Například, pokud první, druhá, třetí a čtvrtá kostka ukazuje 1, 3, 2 a 7, tyto výsledky splňují podmínku.
Ve skutečnosti, pokud jsou vybrány druhá a čtvrtá kostka, součet jejich výsledků je 3 + 7 = 10.
Alternativně, pokud jsou vybrány první, třetí a čtvrtá kostka, součet jejich výsledků je 1 + 2 + 7 = 10.
Na druhou stranu, pokud první, druhá, třetí a čtvrtá kostka ukazují 1, 6, 1 a 5, není možné vybrat některé z nich tak, aby součet jejich výsledků byl 10, takže podmínka není splněna.
V tomto ukázkovém vstupu je pravděpodobnost, že výsledky N kostek splňují podmínku \frac{11}{18}.
Proto vytiskněte tuto hodnotu modulo 998244353, tedy 942786334.

Ukázkový vstup 2

7
1 10 100 1000 10000 100000 1000000

Ukázkový výstup 2

996117877

Máme N kostek.
Pro každé i = 1, 2, \ldots, N, když je hozena i-tá kostka, zobrazí se náhodné celé číslo mezi 1 a A_i, včetně, se stejnou pravděpodobností.
Určete pravděpodobnost, modulo 998244353, že následující podmínka je splněna, když je současně hozeno N kostek.

Existuje způsob, jak vybrat některé (možná všechny) z N kostek tak, aby součet jejich výsledků byl 10.

Jak najít modulo pravděpodobnosti 998244353
Lze dokázat, že hledaná pravděpodobnost je vždy racionální číslo. Navíc omezení tohoto problému zaručují, že pokud je hledaná pravděpodobnost reprezentována jako neredukovatelný zlomek \frac{y}{x}, pak x není dělitelné 998244353. Zde je jednoznačné celé číslo z takové, že xz \equiv y \pmod{998244353}. Nahlásit toto z.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 \ldots A_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_i \leq 10^6
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

4
1 7 2 9

Ukázkový výstup 1

942786334

Pokud například první, druhá, třetí a čtvrtá kostka ukazují 1, 3, 2 a 7, tyto výsledky splňují podmínku.
Pokud jsou totiž vybrány druhá a čtvrtá kostka, součet jejich výsledků je 3 + 7 = 10.
Případně, pokud jsou vybrány první, třetí a čtvrté kostky, součet jejich výsledků je 1 + 2 + 7 = 10.
Na druhou stranu, pokud první, druhá, třetí a čtvrtá kostka ukazují 1, 6, 1 a 5, neexistuje způsob, jak některé z nich vybrat tak, aby součet jejich výsledků byl 10, takže podmínka není splněna.
V tomto vzorovém vstupu je pravděpodobnost, že výsledky N kostek splňují podmínku, \frac{11}{18}.
Vytiskněte tedy tuto hodnotu modulo 998244353, tedy 942786334.

Vzorkovací vstup 2

7
1 10 100 1000 10000 100000 1000000

Ukázkový výstup 2

996117877

Máme N kostek.
Pro každé i = 1, 2, \ldots, N, když je i-tá kostka vržena, ukazuje náhodné celé číslo mezi 1 a A_i, včetně, se stejnou pravděpodobností.
Najděte pravděpodobnost, modulo 998244353, že následující podmínka je splněna, když je N kostek vrženo současně.

Existuje způsob, jak vybrat některé (možná všechny) z N kostek tak, aby součet jejich výsledků byl 10.

 Jak najít modul pravděpodobnosti 998244353
Lze dokázat, že hledaná pravděpodobnost je vždy racionální číslo. Omezení tohoto problému navíc zaručují, že pokud je hledaná pravděpodobnost reprezentována jako neredukovatelný zlomek \frac{y}{x}, pak x není dělitelné 998244353. Zde existuje jedinečné celé číslo z takové, že xz \equiv y \pmod{998244353}. Nahlásit to z.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 \ldots A_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_i \leq 10^6
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
1 7 2 9

Ukázkový výstup 1

942786334

Pokud například první, druhá, třetí a čtvrtá kostka ukazuje 1, 3, 2 a 7, tyto výsledky splňují podmínku.
Ve skutečnosti, pokud je vybrána druhá a čtvrtá kostka, součet jejich výsledků je 3 + 7 = 10.
Alternativně, pokud je vybrána první, třetí a čtvrtá kostka, součet jejich výsledků je 1 + 2 + 7 = 10.
Na druhou stranu, pokud první, druhá, třetí a čtvrtá kostka ukazuje 1, 6, 1 a 5, neexistuje způsob, jak vybrat některé z nich tak, aby součet jejich výsledků byl 10, takže podmínka není spokojen.
V tomto vzorovém vstupu je pravděpodobnost, že N kostek splní podmínku \frac{11}{18}.
Vytiskněte tedy tuto hodnotu modulo 998244353, tedy 942786334.

Ukázkový vstup 2

7
1 10 100 1000 10000 100000 1000000

Ukázkový výstup 2

996117877


Je dán řetězec S, který se skládá z písmen A, B a C. Je zaručeno, že S obsahuje všechna písmena A, B a C.
Pokud jsou znaky řetězce S kontrolovány postupně zleva, kolik znaků bude zkontrolováno, když bude poprvé splněna následující podmínka?

- Všechny znaky A, B a C se objevily alespoň jednou.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
S

Výstup

Vypište odpověď.

Omezení

- 3 \leq N \leq 100
- S je řetězec délky N složený z písmen A, B a C.
- S obsahuje všechny A, B a C.

Vzorový vstup 1

5
ACABB

Ukázkový výstup 1

4

V prvních čtyřech znacích zleva se dvakrát objeví A, jednou B a jednou C, což splňuje podmínku.
Podmínka není splněna při kontrole tří nebo méně znaků, takže odpověď je 4.

Vzorový vstup 2

4
CABC

Ukázkový výstup 2

3

V prvních třech znacích zleva se každý z A, B a C objeví jednou, čímž je splněna podmínka.

Vzorový vstup 3

30
AABABBBABABBABABCABACAABCBACCA

Ukázka výstupu 3

17

Dostanete řetězec S skládající se z A, B a C. S je zaručeno, že bude obsahovat všechna A, B a C.
Pokud jsou znaky S kontrolovány jeden po druhém zleva, kolik znaků bude kontrolováno, když je poprvé splněna následující podmínka?

- Všechny A, B a C se objevily alespoň jednou.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
S

Výstup

Vytiskněte odpověď.

Omezení

- 3 \leq N \leq 100
- S je řetězec délky N sestávající z A, B a C.
- S obsahuje všechny A, B a C.

Ukázkový vstup 1

5
ACABB

Ukázkový výstup 1

4

V prvních čtyřech znacích zleva se A, B a C objeví dvakrát, jednou a jednou, v daném pořadí, splňující podmínku.
Podmínka není splněna zaškrtnutím tří nebo méně znaků, takže odpověď je 4.

Ukázkový vstup 2

4
CABC

Ukázkový výstup 2

3

V prvních třech znacích zleva se A, B a C objeví jednou, což splňuje podmínku.

Ukázkový vstup 3

30
AABABBBABABBABABCABACAABCBACCA

Ukázkový výstup 3

17


Je dáno N lidí očíslovaných 1 až N.
K dispozici máte jejich rozvrh na následujících D dní. Rozvrh osoby i je reprezentován řetězcem S_i délky D. Pokud je j-tý znak S_i 'o', osoba i je v j-tý den volná; pokud je to 'x', je ten den zaneprázdněná.
Z těchto D dní uvažujte o výběru některých po sobě jdoucích dní, kdy jsou všichni lidé volní.
Kolik dní lze vybrat nejvíce? Pokud nelze vybrat žádný den, uveďte 0.

Vstup

Vstup je zadán ve formátu standardního vstupu:
N D
S_1
S_2
\vdots
S_N

Výstup

Vytiskněte maximální počet dní, které lze vybrat, nebo 0, pokud nelze vybrat žádný den.

Omezení

- 1 \leq N \leq 100
- 1 \leq D \leq 100
- N a D jsou celá čísla.
- S_i je řetězec délky D skládající se z 'o' a 'x'.

Ukázkový vstup 1

3 5
xooox
oooxx
oooxo

Ukázkový výstup 1

2

Všichni lidé jsou volní druhý a třetí den, takže je můžeme vybrat.
Výběr těchto dvou dní maximalizuje počet dní mezi všemi možnými výběry.

Ukázkový vstup 2

3 3
oxo
oxo
oxo

Ukázkový výstup 2

1

Poznamenjte, že vybrané dny musí být po sobě jdoucí. (Všichni lidé jsou volní první a třetí den, takže můžeme vybrat buď jeden z nich, ale ne oba.)

Ukázkový vstup 3

3 3
oox
oxo
xoo

Ukázkový výstup 3

0

Vytiskněte 0, pokud nelze vybrat žádný den.

Ukázkový vstup 4

1 7
ooooooo

Ukázkový výstup 4

7

Ukázkový vstup 5

5 15
oxooooooooooooo
oxooxooooooooox
oxoooooooooooox
oxxxooooooxooox
oxooooooooxooox

Ukázkový výstup 5

5

Existuje N lidí očíslovaných od 1 do N.
Je vám uveden jejich rozvrh na následující dny D. Rozvrh pro osobu i je reprezentován řetězcem S_i délky D. Je-li j-tý znak S_i o, je osoba i volná j-tý den; pokud je x, jsou ten den volní.
Z těchto dnů D zvažte výběr několika po sobě jdoucích dnů, kdy jsou všichni lidé volní.
Kolik dní lze maximálně vybrat? Pokud nelze vybrat žádný den, uveďte 0.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N D
S_1
S_2
\vdots
S_N

Výstup

Vytiskněte maximální počet dnů, které lze vybrat, nebo 0, pokud nelze vybrat žádný den.

Omezení

- 1 \leq N \leq 100
- 1 \leq D \leq 100
- N a D jsou celá čísla.
- S_i je řetězec délky D skládající se z o a x.

Ukázkový vstup 1

3 5
xooox
oooxx
oooxo

Ukázkový výstup 1

2

Všichni lidé mají druhý a třetí den volno, takže si je můžeme vybrat.
Výběrem těchto dvou dnů maximalizujete počet dní ze všech možných možností.

Ukázkový vstup 2

3 3
oxo
oxo
oxo

Ukázkový výstup 2

1

Upozorňujeme, že vybrané dny musí být po sobě jdoucí. (Všichni lidé jsou první a třetí den zdarma, takže si můžeme vybrat kteréhokoli z nich, ale ne oba.)

Ukázkový vstup 3

3 3
oox
oxo
xoo

Ukázkový výstup 3

0

Pokud nelze vybrat žádný den, vytiskněte 0.

Ukázkový vstup 4

17
oooooo

Ukázkový výstup 4

7

Ukázkový vstup 5

5 15
oxooooooooooooo
oxooxooooooooox
oxoooooooooooox
oxxxooooooxooox
oxooooooooxooox

Ukázkový výstup 5

5


Máme daný orientovaný graf s N vrcholy a N hranami.
i-tá hrana jde z vrcholu i do vrcholu A_i. (Omezení zajišťují, že i \neq A_i.)
Najděte orientovaný cyklus bez opakovaného výskytu stejného vrcholu.
Můžeme ukázat, že řešení existuje za daných podmínek problému.
Poznámky
Posloupnost vrcholů B = (B_1, B_2, \dots, B_M) se nazývá orientovaný cyklus, pokud jsou splněny všechny následující podmínky:

- M \geq 2
- Hrana z vrcholu B_i do vrcholu B_{i+1} existuje. (1 \leq i \leq M-1)
- Hrana z vrcholu B_M do vrcholu B_1 existuje.
- Pokud i \neq j, potom B_i \neq B_j.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 \dots A_N

Výstup

Vypište řešení v následujícím formátu:
M
B_1 B_2 \dots B_M

M je počet vrcholů a B_i je i-tý vrchol v orientovaném cyklu.
Musí být splněny následující podmínky:

- 2 \le M
- B_{i+1} = A_{B_i} (1 \le i \le M-1)
- B_{1} = A_{B_M}
- B_i \neq B_j (i \neq j)

Pokud existuje více řešení, bude přijato kterékoliv z nich.

Omezení

- Všechny vstupní hodnoty jsou celá čísla.
- 2 \le N \le 2 \times 10^5
- 1 \le A_i \le N
- A_i \neq i

Příklad vstupu 1

7
6 7 2 1 3 4 5

Příklad výstupu 1

4
7 5 3 2

7 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 7 je skutečně orientovaný cyklus.
Zde je graf odpovídající tomuto vstupu:

Zde jsou další přijatelné výstupy:
4
2 7 5 3

3
4 1 6

Všimněte si, že graf nemusí být souvislý.

Příklad vstupu 2

2
2 1

Příklad výstupu 2

2
1 2

Tento případ obsahuje obě hrany 1 \rightarrow 2 a 2 \rightarrow 1.
V tomto případě je 1 \rightarrow 2 \rightarrow 1 skutečně orientovaný cyklus.
Zde je graf odpovídající tomuto vstupu, kde 1 \leftrightarrow 2 představuje existenci obou 1 \rightarrow 2 a 2 \rightarrow 1:

Příklad vstupu 3

8
3 7 4 7 3 3 8 2

Příklad výstupu 3

3
2 7 8

Zde je graf odpovídající tomuto vstupu:

Existuje orientovaný graf s N vrcholy a N hranami.
I-tá hrana jde z vrcholu i do vrcholu A_i. (Omezení zaručují, že i \neq A_i.)
Najděte směrovaný cyklus, aniž by se stejný vrchol objevil vícekrát.
Lze ukázat, že řešení existuje pod omezeními tohoto problému.
Poznámky
Posloupnost vrcholů B = (B_1, B_2, \dots, B_M) se nazývá řízený cyklus, pokud jsou splněny všechny následující podmínky:

- M \geq 2
- Hrana z vrcholu B_i do vrcholu B_{i+1} existuje. (1 \leq i \leq M-1)
- Hrana z vrcholu B_M do vrcholu B_1 existuje.
- Jestliže i \neq j, pak B_i \neq B_j.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 \dots A_N

Výstup

Vytiskněte řešení v následujícím formátu:
M
B_1 B_2 \dots B_M

M je počet vrcholů a B_i je i-tý vrchol v řízeném cyklu.
Musí být splněny následující podmínky:

- 2 \le M
- B_{i+1} = A_{B_i} ( 1 \le i \le M-1 )
- B_{1} = A_{B_M}
- B_i \neq B_j ( i \neq j )

Pokud existuje více řešení, bude přijato kterékoli z nich.

Omezení

- Všechny vstupní hodnoty jsou celá čísla.
- 2 \le N \le 2 \times 10^5
- 1 \le A_i \le N
- A_i \neq i

Ukázkový vstup 1

7
6 7 2 1 3 4 5

Ukázkový výstup 1

4
7 5 3 2

7 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 7 je skutečně řízený cyklus.
Zde je graf odpovídající tomuto vstupu:

Zde jsou další přijatelné výstupy:
4
2 7 5 3

3
4 1 6

Upozorňujeme, že graf nemusí být propojen.

Ukázkový vstup 2

2
2 1

Ukázkový výstup 2

2
1 2

Tento případ obsahuje obě hrany 1 \rightarrow 2 a 2 \rightarrow 1.
V tomto případě je 1 \rightarrow 2 \rightarrow 1 skutečně řízený cyklus.
Zde je graf odpovídající tomuto vstupu, kde 1 \leftrightarrow 2 představuje existenci obou 1 \rightarrow 2 a 2 \rightarrow 1:

Ukázkový vstup 3

8
3 7 4 7 3 3 8 2

Ukázkový výstup 3

3
2 7 8

Zde je graf odpovídající tomuto vstupu:


Na mřížce N \times M stojí hráč.
Nechť (i,j) označuje pole v i-tém řádku shora a j-tým sloupci zleva této mřížky.
Každé pole této mřížky je buď led, nebo kámen, což je reprezentováno N řetězci S_1,S_2,\dots,S_N délky M následujícím způsobem:

- pokud je j-tý znak S_i ., pole (i,j) je led;
- pokud je j-tý znak S_i #, pole (i,j) je kámen.

Vnější obvod této mřížky (všechna pole v 1. řádku, N. řádku, 1. sloupci, M. sloupci) je kámen.
Hráč se zpočátku nachází na poli (2,2), které je led.
Hráč může provést následující pohyb nulakrát nebo vícekrát.

- Nejprve urči směr pohybu: nahoru, dolů, vlevo nebo vpravo.
- Poté se pohybuj v daném směru, dokud hráč nenarazí na kámen. Formálně, pokračuj, dokud:
- pokud je další pole ve směru pohybu led, přejdi na toto pole a pokračuj;
- pokud je další pole ve směru pohybu kámen, zůstaň na aktuálním poli a zastav pohyb.

Zjisti počet ledových polí, kterých se hráč může dotknout (projít nebo na nich zastavit).

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
S_1
S_2
\vdots
S_N

Výstup

Vytiskni odpověď jako celé číslo.

Omezení

- 3 \le N,M \le 200
- S_i je řetězec délky M, který obsahuje # a ..
- Pole (i, j) je kámen, pokud i=1, i=N, j=1, nebo j=M.
- Pole (2,2) je led.

Ukázkový vstup 1

6 6
######
#....#
#.#..#
#..#.#
#....#
######

Ukázkový výstup 1

12

Například se může hráč zastavit na (5,5) pohybem takto:

- (2,2) \rightarrow (5,2) \rightarrow (5,5).

Hráč může projít (2,4) pohybem takto:

- (2,2) \rightarrow (2,5), přičemž projde (2,4).

Hráč nemůže projít ani se zastavit na (3,4).

Ukázkový vstup 2

21 25
#########################
#..............###...####
#..............#..#...###
#........###...#...#...##
#........#..#..#........#
#...##...#..#..#...#....#
#..#..#..###...#..#.....#
#..#..#..#..#..###......#
#..####..#..#...........#
#..#..#..###............#
#..#..#.................#
#........##.............#
#.......#..#............#
#..........#....#.......#
#........###...##....#..#
#..........#..#.#...##..#
#.......#..#....#..#.#..#
##.......##.....#....#..#
###.............#....#..#
####.................#..#
#########################

Ukázkový výstup 2

215

Máme mřížku N krát M a na ní stojícího hráče.
Nechť (i,j) označuje čtverec na i-tém řádku shora a j-tém sloupci zleva této mřížky.
Každý čtverec této mřížky je led nebo kámen, který je reprezentován N řetězci S_1,S_2,\dots,S_N o délce M takto:

- pokud j-tý znak S_i je ., čtverec (i,j) je led;
- je-li j-tý znak S_i #, je čtverec (i,j) skála.

Vnější obvod této mřížky (všechny čtverce v 1. řádku, N-tém řádku, 1. sloupci, M-tém sloupci) je skála.
Zpočátku hráč spočívá na čtverci (2,2), který je led.
Hráč může provést následující tah nulakrát nebo vícekrát.

- Nejprve určete směr pohybu: nahoru, dolů, doleva nebo doprava.
- Poté pokračujte v pohybu tímto směrem, dokud hráč nenarazí na kámen. Formálně pokračujte v následujícím postupu:
- Pokud je na dalším políčku ve směru pohybu led, přejděte na toto políčko a pokračujte v pohybu;
- pokud je dalším čtvercem ve směru pohybu skála, zůstaňte v tomto čtverci a přestaňte se pohybovat.

Zjistěte počet ledových čtverců, kterých se hráč může dotknout (projít nebo na nich spočinout).

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N M
S_1
S_2
\vdots
S_N

Výstup

Vypište odpověď jako celé číslo.

Omezení

- 3 \le N,M \le 200
- S_i je řetězec délky M složený z # a ..
- Čtverec (i, j) je rock, pokud i=1, i=N, j=1 nebo j=M.
- Čtverec (2,2) je led.

Vzorový vstup 1

6 6
######
#....#
#.#..#
#..#.#
#....#
######

Vzorový výstup 1

12

Hráč může například spočinout na bodě (5,5) následujícím pohybem:

- (2,2) \pravá šipka (5,2) \pravá šipka (5,5).

Hráč může přejít na (2,4) pohybem následujícím způsobem:

- (2,2) \pravá šipka (2,5) a přitom projde (2,4).

Hráč nemůže projít nebo odpočívat na (3,4).

Vzorový vstup 2

21 25
#########################
#..............###...####
#..............#..#...###
#........###...#...#...##
#........#..#..#........#
#...##...#..#..#...#....#
#..#..#..###...#..#.....#
#..#..#..#..#..###......#
#..####..#..#...........#
#..#..#..###............#
#..#..#.................#
#........##.............#
#.......#..#............#
#..........#....#.......#
#........###...##....#..#
#..........#..#.#...##..#
#.......#..#....#..#.#..#
##.......##.....#....#..#
###.............#....#..#
####.................#..#
#########################

Vzorový výstup 2

215


Existuje mřížka s H řadami a W sloupci. Nechť (i, j) označuje čtverec v i-té řadě odshora a j-tém sloupci zleva v mřížce.
Každý čtverec mřížky je buď děravý, nebo ne. Existuje přesně N děravých čtverců: (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Pokud trojice kladných čísel (i, j, n) splňuje následující podmínky, oblast čtverce, jejíž horní levý roh je (i, j) a dolní pravý roh je (i + n - 1, j + n - 1), se nazývá neděravý čtverec.

- i + n - 1 \leq H.
- j + n - 1 \leq W.
- Pro každou dvojici nezáporných celých čísel (k, l), takových že 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, čtverec (i + k, j + l) není děravý.

Kolik neděravých čtverců je v mřížce?

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
H W N
a_1 b_1
a_2 b_2
\vdots
a_N b_N

Výstup

Vytiskněte počet neděravých čtverců.

Omezení

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min(H \times W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Všechny (a_i, b_i) jsou navzájem různé.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový Vstup 1

2 3 1
2 3

Ukázkový Výstup 1

6

Existuje šest neděravých čtverců, uvedených níže. Pro prvních pět je n = 1 a levý horní a pravý dolní roh jsou stejné čtverce.

- Oblast čtverce, jež má levý horní a pravý dolní roh na (1, 1).
- Oblast čtverce, jež má levý horní a pravý dolní roh na (1, 2).
- Oblast čtverce, jež má levý horní a pravý dolní roh na (1, 3).
- Oblast čtverce, jež má levý horní a pravý dolní roh na (2, 1).
- Oblast čtverce, jež má levý horní a pravý dolní roh na (2, 2).
- Oblast čtverce, jež má levý horní roh na (1, 1) a pravý dolní roh na (2, 2).

Ukázkový Vstup 2

3 2 6
1 1
1 2
2 1
2 2
3 1
3 2

Ukázkový Výstup 2

0

Nemusí existovat žádný neděravý čtverec.

Ukázkový Vstup 3

1 1 0

Ukázkový Výstup 3

1

Celá mřížka může být neděravý čtverec.

Ukázkový Vstup 4

3000 3000 0

Ukázkový Výstup 4

9004500500

Je zde mřížka s H řádky a W sloupci. Označme (i, j) čtverec v i-té řadě od horního a j-tého sloupce zleva od mřížky.
Každý čtverec mřížky je nebo není děrovaný. Existuje přesně N děrovaných čtverců: (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Když trojice kladných celých čísel (i, j, n) splňuje následující podmínku, čtvercová oblast, jejíž levý horní roh je (i, j) a jejíž pravý dolní roh je (i + n - 1, j + n - 1) se nazývá bezděrový čtverec.

-i + n - 1 \leq H.
- j + n - 1 \leq W.
- Pro každou dvojici nezáporných celých čísel (k, l) taková, že 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, čtverec (i + k, j + l) není děrovaný.

Kolik bezděrových čtverců je v mřížce?

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
H W N
a_1 b_1
a_2 b_2
\vtečky
a_N b_N

Výstup

Vytiskněte počet bezděrových čtverců.

Omezení

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min (H \krát W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Všechny (a_i, b_i) jsou párově odlišné.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 3 1
2 3

Ukázkový výstup 1

6

Existuje šest bezděrových čtverců, které jsou uvedeny níže. Pro prvních pět je n = 1 a levý horní a pravý dolní roh jsou stejný čtverec.

- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (1, 1).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (1, 2).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (1, 3).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (2, 1).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (2, 2).
- Čtvercová oblast, jejíž levý horní roh je (1, 1) a pravý dolní roh je (2, 2).

Ukázkový vstup 2

3 2 6
1 1
1 2
2 1
2 2
3 1
3 2

Ukázkový výstup 2

0

Může neexistovat žádný bezděrový čtverec.

Ukázkový vstup 3

1 1 0

Ukázkový výstup 3

1

Celá mřížka může být čtverec bez otvorů.

Ukázkový vstup 4

3000 3000 0

Ukázkový výstup 4

9004500500

Je zde mřížka s řádky H a sloupci W. Nechť (i, j) označuje čtverec v i-tém řádku shora a j-tém sloupci zleva mřížky.
Každý čtverec mřížky je nebo není děravý. Existuje přesně N čtverců s dírami: (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Pokud trojice celých kladných čísel (i, j, n) splňuje následující podmínku, nazývá se čtvercová oblast, jejíž levý horní roh je (i, j) a pravý dolní roh je (i + n - 1, j + n - 1), bezděrový čtverec.

- i + n - 1 \leq H.
- j + n - 1 \leq W.
- Pro každou dvojici nezáporných celých čísel (k, l) takovou, že 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, je čtverec (i + k, j + l) bez děr.

Kolik je v mřížce čtverců bez děr?

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
H W N
a_1 b_1
a_2 b_2
\vdots
a_N b_N

Výstup

Vypíše počet čtverců bez děr.

Omezení

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min(H \times W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Všechny (a_i, b_i) jsou párově různé.
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

2 3 1
2 3

Vzorový výstup 1

6

Níže je uvedeno šest čtverců bez děr. U prvních pěti je n = 1 a levý horní a pravý dolní roh je stejný čtverec.

- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (1, 1).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (1, 2).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (1, 3).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (2, 1).
- Čtvercová oblast, jejíž levý horní a pravý dolní roh jsou (2, 2).
- Čtvercová oblast, jejíž levý horní roh je (1, 1) a jejíž pravý dolní roh je (2, 2).

Vzorkovací vstup 2

3 2 6
1 1
1 2
2 1
2 2
3 1
3 2

Ukázkový výstup 2

0

Nemusí tam být žádný čtverec bez otvoru.

Vzorkovací vstup 3

1 1 0

Ukázkový výstup 3

1

Celá mřížka může být čtverec bez otvorů.

Vzorkovací vstup 4

3000 3000 0

Ukázkový výstup 4

9004500500


Při zadání řetězce délky 3 S složeného z velkých anglických písmen vypište Ano, pokud se S rovná jednomu z ACE, BDF, CEG, DFA, EGB, FAC a GBD; v opačném případě vypište Ne.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
S

Výstup

Vypište Ano, pokud se S rovná jednomu z ACE, BDF, CEG, DFA, EGB, FAC a GBD; jinak vypište Ne.

Omezení

- S je řetězec délky 3 složený z velkých anglických písmen.

Vzorový vstup 1

ABC

Vzorový výstup 1

No

Když S = ABC, S se nerovná žádnému z písmen ACE, BDF, CEG, DFA, EGB, FAC a GBD, takže by se mělo vypsat Ne.

Vzorový vstup 2

FAC

Vzorový výstup 2

Yes

Vzorový vstup 3

XYX

Vzorový výstup 3

No

Vzhledem k délce 3 řetězce S, který se skládá z velkých písmen anglické abecedy, vytiskněte Yes, pokud se S rovná jednomu z ACE, BDF, CEG, DFA, EGB, FAC, a GBD; v opačném případě vytiskněte No.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
S

Výstup

Vytiskněte Yes, pokud se S rovná jednomu z ACE, BDF, CEG, DFA, EGB, FAC, a GBD; v opačném případě vytiskněte No.

Omezení

- S je řetězec délky 3 skládající se z velkých písmen anglické abecedy.

Ukázkový vstup 1

ABC

Ukázkový výstup 1

No

Když S = ABC, S se nerovná žádnému z ACE, BDF, CEG, DFA, EGB, FAC, a GBD, takže by mělo být vytištěno No.

Ukázkový vstup 2

FAC

Ukázkový výstup 2

Yes

Ukázkový vstup 3

XYX

Ukázkový výstup 3

No

Při zadání řetězce délky 3 S složeného z velkých anglických písmen vypište Ano, pokud se S rovná jednomu z ACE, BDF, CEG, DFA, EGB, FAC a GBD; v opačném případě vypišteNo.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
S

Výstup

Vypište Ano, pokud se S rovná jednomu z ACE, BDF, CEG, DFA, EGB, FAC a GBD; jinak vypišteNo.

Omezení

- S je řetězec délky 3 složený z velkých anglických písmen.

Ukázka Vstup 1

ABC

Ukázkový výstup 1

No

Když S = ABC, S se nerovná žádnému z písmen ACE, BDF, CEG, DFA, EGB, FAC a GBD, takže by se mělo vypsat No.

Ukázka Vstup 2

FAC

Vzorový výstup 2

Yes

Ukázka Vstup 3

XYX

Výstup vzorku 3

No


Takahaši vynalezl Tak Code, dvourozměrný kód.  Kód TaK splňuje všechny následující podmínky:

- Je to oblast skládající se z devíti vodorovných řádků a devíti svislých sloupců.
- Všech 18 políček v levé horní a pravé dolní oblasti tři krát tři je černých.
- Všech 14 buněk, které sousedí (vodorovně, svisle nebo diagonálně) s levou horní nebo pravou dolní oblastí tři krát tři, je bílých.

Kód TaK není dovoleno otáčet.
Je dána mřížka s N vodorovnými řádky a M svislými sloupci.
Stav mřížky je popsán N řetězci, S_1,\ldots a S_N, každý o délce M. Buňka v i-th řádku shora a j-th sloupci zleva je černá, pokud j-th znak S_i je #, a bílá, pokud je ....
Najděte všechny oblasti o rozměrech devět krát devět, které jsou zcela obsaženy v mřížce a které splňují podmínky kódu TaK.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N M
S_1
\vdots
S_N

Výstup

Pro všechny dvojice (i,j) takové, že oblast devět na devět, jejíž levá horní buňka je v i-th řádku shora a j-th sloupci zleva, splňuje podmínky kódu TaK, vypište řádek obsahující i, mezeru a j v tomto pořadí.
Dvojice musí být seřazeny lexikograficky vzestupně, to znamená, že i musí být vzestupně a v rámci téhož i musí být j vzestupně.

Omezení

- 9 \leq N,M \leq 100
- N a M jsou celá čísla.
- S_i je řetězec délky M složený z . a #.

Vzorový vstup 1

19 18
###......###......
###......###......
###..#...###..#...
..............#...
..................
..................
......###......###
......###......###
......###......###
.###..............
.###......##......
.###..............
............###...
...##.......###...
...##.......###...
.......###........
.......###........
.......###........
........#.........

Ukázka výstupu 1

1 1
1 10
7 7
10 2

Kód TaK vypadá následovně, kde # je černá buňka, . je bílá buňka a ? může být černá nebo bílá.
###.?????
###.?????
###.?????
....?????
?????????
?????....
?????.###
?????.###
?????.###

V mřížce dané zadáním splňuje podmínky TaK kódu oblast devět na devět, jejíž levá horní buňka se nachází v 10. řádku shora a 2. sloupci zleva, jak je uvedeno níže.
###......
###......
###......
.........
..##.....
..##.....
......###
......###
......###

Vzorový vstup 2

9 21
###.#...........#.###
###.#...........#.###
###.#...........#.###
....#...........#....
#########...#########
....#...........#....
....#.###...###.#....
....#.###...###.#....
....#.###...###.#....

Ukázka výstupu 2

1 1

Vzorový vstup 3

18 18
######............
######............
######............
######............
######............
######............
..................
..................
..................
..................
..................
..................
............######
............######
............######
............######
............######
............######

Ukázka výstupu 3

Nemusí existovat žádná oblast, která by splňovala podmínky kódu TaK.

Takahashi vynalezl Tak Code, dvourozměrný kód.  Kód TaK splňuje všechny následující podmínky:

- Je to oblast skládající se z devíti vodorovných řad a devíti svislých sloupců.
- Všech 18 buněk v levé horní a pravé dolní oblasti tři krát tři je černých.
- Všech 14 buněk, které sousedí (horizontálně, vertikálně nebo diagonálně) s oblastí tři krát tři vlevo nahoře nebo vpravo dole, jsou bílé.

Není povoleno otáčet TaK kódem.
Dostanete mřížku s N vodorovnými řádky a M svislými sloupci.
Stav mřížky je popsán N řetězců, S_1,\ldots a S_N, každý o délce M. Buňka v i-tém řádku od horního a j-tém sloupci zleva je černá, pokud j-tý znak S_i je # a bílý, pokud je ..
Najděte všechny oblasti devět krát devět, zcela obsažené v mřížce, které splňují podmínky kódu TaK.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
S_1
\vtečky
S_N

Výstup

Pro všechny dvojice (i,j) tak, že oblast devět krát devět, jejíž levá horní buňka je v i-té řadě od horního a j-tém sloupci zleva, splňuje podmínky TaK Code, vytiskne řádek obsahující i, mezeru a j v tomto pořadí.
Dvojice musí být seřazeny v lexikografickém vzestupném pořadí; to znamená, že i musí být ve vzestupném pořadí a v rámci stejného i musí být j ve vzestupném pořadí.

Omezení

- 9 \leq N,M \leq 100
- N a M jsou celá čísla.
- S_i je řetězec délky M sestávající z . a #.

Ukázkový vstup 1

19 18
###......###......
###......###......
###..#...###...#...
..............#...
...................
...................
......###......###
......###......###
......###......###
.###..............
.###......##......
.###..............
............###...
...##.......###...
...##.......###...
........###...........
........###...........
........###...........
...........#.........

Ukázkový výstup 1

1 1
110
7 7
10 2

Kód TaK vypadá následovně, kde # je černá buňka, . je bílá krvinka a ? může být černá nebo bílá.
###.????
###.????
###.????
....????
????????
????....
????.###
????.###
????.###

V mřížce dané zadáním splňuje oblast devět krát devět, jejíž levá horní buňka je v 10. řádku od horního a 2. sloupci zleva, podmínky kódu TaK, jak je znázorněno níže.
###......
###......
###......
.........
..##.....
..##.....
......###
......###
......###

Ukázkový vstup 2

9 21
###.#...........#.###
###.#...........#.###
###.#...........#.###
.....#..............#....
#########...#########
.....#..............#....
....#.###...###.#....
....#.###...###.#....
....#.###...###.#....

Ukázkový výstup 2

1 1

Ukázkový vstup 3

18 18
######............
######............
######............
######............
######............
######............
...................
...................
...................
...................
...................
...................
............######
............######
............######
............######
............######
............######

Ukázkový výstup 3

Nemusí existovat žádný region, který splňuje podmínky TaK Code.

Takahashi vynalezl Tak Code, dvourozměrný kód.  Kód TaK splňuje všechny následující podmínky:

- Je to oblast skládající se z devíti vodorovných řad a devíti svislých sloupců.
- Všech 18 buněk v levé horní a pravé dolní oblasti tři krát tři je černých.
- Všech 14 buněk, které sousedí (horizontálně, vertikálně nebo diagonálně) s oblastí tři krát tři vlevo nahoře nebo vpravo dole, jsou bílé.

Není povoleno otáčet TaK kódem.
Dostanete mřížku s N vodorovnými řádky a M svislými sloupci.
Stav mřížky je popsán N řetězců, S_1,\ldots a S_N, každý o délce M. Buňka v i-tém řádku od horního a j-tém sloupci zleva je černá, pokud j-tý znak S_i je # a bílý, pokud je ..
Najděte všechny oblasti devět krát devět, zcela obsažené v mřížce, které splňují podmínky kódu TaK.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
S_1
\vdots
S_N

Výstup

Pro všechny dvojice (i,j) tak, že oblast devět krát devět, jejíž levá horní buňka je v i-té řadě od horního a j-tém sloupci zleva, splňuje podmínky TaK Code, vytiskne řádek obsahující i, mezeru a j v tomto pořadí.
Dvojice musí být seřazeny v lexikografickém vzestupném pořadí; to znamená, že i musí být ve vzestupném pořadí a v rámci stejného i musí být j ve vzestupném pořadí.

Omezení

- 9 \leq N,M \leq 100
- N a M jsou celá čísla.
- S_i je řetězec délky M sestávající z . a #.

Ukázkový vstup 1

19 18
###......###......
###......###......
###..#...###...#...
..............#...
...................
...................
......###......###
......###......###
......###......###
.###..............
.###......##......
.###..............
............###...
...##.......###...
...##.......###...
........###...........
........###...........
........###...........
...........#.........

Ukázkový výstup 1

1 1
1 10
7 7
10 2

Kód TaK vypadá následovně, kde # je černá buňka, . je bílá buňka a ? může být černá nebo bílá.
###.????
###.????
###.????
....????
????????
????....
????.###
????.###
????.###

V mřížce dané zadáním splňuje oblast devět krát devět, jejíž levá horní buňka je v 10. řádku od horního a 2. sloupci zleva, podmínky kódu TaK, jak je znázorněno níže.
###......
###......
###......
.........
..##.....
..##.....
......###
......###
......###

Ukázkový vstup 2

9 21
###.#...........#.###
###.#...........#.###
###.#...........#.###
.....#..............#....
#########...#########
.....#..............#....
....#.###...###.#....
....#.###...###.#....
....#.###...###.#....

Ukázkový výstup 2

1 1

Ukázkový vstup 3

18 18
######............
######............
######............
######............
######............
######............
...................
...................
...................
...................
...................
...................
............######
............######
............######
............######
............######
............######

Ukázkový výstup 3

Nemusí existovat žádný region, který splňuje podmínky TaK Code.


Na trhu s jablky je N prodejců a M kupujících.
i-tý prodejce může prodat jablko za A_i jenů nebo více (jen je měna v Japonsku).
i-tý kupující může koupit jablko za B_i jenů nebo méně.
Najděte nejmenší celé číslo X, které splňuje následující podmínku:

Podmínka: Počet lidí, kteří mohou prodat jablko za X jenů, je větší nebo roven počtu lidí, kteří mohou koupit jablko za X jenů.

Vstup

Vstup je zadáván ze standardního vstupu v následujícím formátu:
N M
A_1 \ldots A_N
B_1 \ldots B_M

Výstup

Vytiskněte odpověď.

Podmínky

- 1 \leq N,M \leq 2\times 10^5
- 1\leq A_i,B_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 4
110 90 120
100 80 120 10000

Ukázkový výstup 1

110

Dva prodejci, 1. a 2., mohou prodat jablko za 110 jenů; dva kupující, 3. a 4., mohou koupit jablko za 110 jenů. Tedy 110 splňuje podmínku.
Protože celé číslo menší než 110 podmínku nesplňuje, toto je odpověď.

Ukázkový vstup 2

5 2
100000 100000 100000 100000 100000
100 200

Ukázkový výstup 2

201

Ukázkový vstup 3

3 2
100 100 100
80 120

Ukázkový výstup 3

100

Na trhu s jablky je N prodejců a M kupujících.
i-tý prodejce může prodat jablko za A_i jenů nebo více (jen je měna v Japonsku).
i-tý kupující může koupit jablko za B_i jenů nebo méně.
Najděte nejmenší celé číslo X, které splňuje následující podmínku.
Podmínka: Počet osob, které mohou prodat jablko za X jenů, je větší nebo roven počtu osob, které mohou koupit jablko za X jenů.

Vstup

Vstup je zadáván ze standardního vstupu v následujícím formátu:
N M
A_1 \ldots A_N
B_1 \ldots B_M

Výstup

Vytiskněte odpověď.

Podmínky

- 1 \leq N,M \leq 2\times 10^5
- 1\leq A_i,B_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 4
110 90 120
100 80 120 10000

Ukázkový výstup 1

110

Dva prodejci, 1. a 2., mohou prodat jablko za 110 jenů; dva kupující, 3. a 4., mohou koupit jablko za 110 jenů. Tedy 110 splňuje podmínku.
Protože celé číslo menší než 110 podmínku nesplňuje, toto je odpověď.

Ukázkový vstup 2

5 2
100000 100000 100000 100000 100000
100 200

Ukázkový výstup 2

201

Ukázkový vstup 3

3 2
100 100 100
80 120

Ukázkový výstup 3

100

Na trhu s jablky je N prodávajících a M kupujících.
Prodejce i může prodat jablko za A_i jenů nebo více (jen je měna v Japonsku).
I-tý kupující může koupit jablko za B_i jenů nebo méně.
Najděte minimální celé číslo X, které splňuje následující podmínku.
Podmínka: Počet lidí, kteří mohou prodat jablko za X jenů, je větší nebo roven počtu lidí, kteří mohou koupit jablko za X jenů.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
A_1 \ldots A_N
B_1 \ldots B_M

Výstup

Vypište odpověď.

Omezení

- 1 \leq N,M \leq 2\times 10^5
- 1\leq A_i,B_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

3 4
110 90 120
100 80 120 10000

Vzorový výstup 1

110

Dva prodávající, 1. a 2., mohou prodat jablko za 110 jenů; dva kupující, 3. a 4., mohou koupit jablko za 110 jenů.  Hodnota 110 tedy splňuje podmínku.
Protože celé číslo menší než 110 podmínce nevyhovuje, je tato odpověď správná.

Vzorový vstup 2

5 2
100000 100000 100000 100000 100000
100 200

Vzorový výstup 2

201

Vzorový vstup 3

3 2
100 100 100
80 120

Vzorový výstup 3

100


Máte neprázdný řetězec S složený z (, ), a ?.
Existují 2^x způsoby, jak získat nový řetězec nahrazením každého ? v S znakem ( a ), kde x je počet výskytů ? v S. Mezi nimi najděte počet způsobů, které dávají závorkový řetězec modulo 998244353.
Řetězec se nazývá závorkový řetězec, pokud jedna z následujících podmínek je splněna.

- Je to prázdný řetězec.
- Je to zřetězení (, A, a ), pro nějaký závorkový řetězec A.
- Je to zřetězení A a B, pro nějaké neprázdné závorkové řetězce A a B.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
S

Výstup

Vytiskněte odpověď.

Omezení

- S je neprázdný řetězec o délce nejvýše 3000 složený z (, ) a ?.

Příklad vstupu 1

(???(?

Příklad výstupu 1

2

Nahrazení S řetězci ()()() nebo (())() dává závorkový řetězec.
Ostatní nahrazení nedávají závorkový řetězec, takže je třeba vytisknout 2.

Příklad vstupu 2

)))))

Příklad výstupu 2

0

Příklad vstupu 3

??????????????(????????(??????)?????????(?(??)

Příklad výstupu 3

603032273

Vytiskněte počet modulo 998244353.

Dostanete neprázdný řetězec S skládající se z (, ) a ?.
Existují 2^x způsoby, jak získat nový řetězec nahrazením každého ? v S s ( a ), kde x je počet výskytů ? v S. Mezi nimi najděte číslo, modulo 998244353, způsobů, které poskytují řetězec závorek.
Řetězec je považován za řetězec závorek, pokud je splněna jedna z následujících podmínek.

- Je to prázdný řetězec.
- Je to zřetězení (, A a ), pro nějaký řetězec závorek A.
- Je to zřetězení A a B, pro některé neprázdné řetězce závorek A a B.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
S

Výstup

Vytiskněte odpověď.

Omezení

- S je neprázdný řetězec o délce nejvýše 3000 sestávající z (, ) a ?.

Ukázkový vstup 1

(???(?

Ukázkový výstup 1

2

Nahrazení S za ()()() nebo (())() získá řetězec závorek.
Ostatní nahrazení neposkytují řetězec závorek, takže by měla být vytištěna 2.

Ukázkový vstup 2

)))))

Ukázkový výstup 2

0

Ukázkový vstup 3

???????????????(????????(??????)????????????(?(??)

Ukázkový výstup 3

603032273

Vytiskněte počet modulo 998244353.

Je dán neprázdný řetězec S složený z (, ) a ?.
Existuje 2^x způsobů, jak získat nový řetězec nahrazením každého ? v S za ( a ), kde x je počet výskytů ? v S. Najděte mezi nimi počet, modulo 998244353, způsobů, které dávají řetězec se závorkami.
O řetězci se říká, že je to řetězec závorek, pokud je splněna jedna z následujících podmínek.

- Je to prázdný řetězec.
- Je to spojnice (, A a ) pro nějaký řetězec závorek A.
- Je to konkatenace řetězců A a B pro některé neprázdné řetězce závorek A a B.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
S

Výstup

Vypíše odpověď.

Omezení

- S je neprázdný řetězec o délce nejvýše 3000, který se skládá z (, ) a ?.

Ukázka Vstup 1

(???(?

Ukázkový výstup 1

2

Nahrazením S pomocí ()()() nebo (())() získáme řetězec se závorkami.
Ostatní záměny řetězec závorek nevytvoří, takže by se mělo vypsat 2.

Vzorový vstup 2

)))))

Ukázkový výstup 2

0

Vzorový vstup 3

??????????????(????????(??????)?????????(?(??)

Ukázka výstupu 3

603032273

Vypište počet modulů 998244353.


V trojrozměrném prostoru je N obdélníkových kvádrů.
Tyto kvádry se nepřekrývají. Formálně platí, že pro libovolné dva různé kvádry mezi nimi má jejich průsečík objem 0.
Úhlopříčka i-tého kvádru je úsečka, která spojuje dva body (X_{i,1},Y_{i,1},Z_{i,1}) a (X_{i,2},Y_{i,2},Z_{i,2}) a její hrany jsou rovnoběžné s jednou ze souřadnicových os.
Pro každý kvádr najděte počet dalších kvádrů, které s ním mají společnou stěnu.
Formálně pro každé i najděte počet j s 1\leq j \leq N a j\neq i takových, že průsečík ploch i-tého a j-tého kvádru má kladnou plochu.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
X_{1,1} Y_{1,1} Z_{1,1} X_{1,2} Y_{1,2} Z_{1,2}
\vdots
X_{N,1} Y_{N,1} Z_{N,1} X_{N,2} Y_{N,2} Z_{N,2}

Výstup

Vypište odpověď.

Omezení

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Kvádry nemají průsečík s kladným objemem.
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

4
0 0 0 1 1 1
0 0 1 1 1 2
1 1 1 2 2 2
3 3 3 4 4 4

Vzorový výstup 1

1
1
0
0

1. a 2. kvádr mají společný obdélník, jehož úhlopříčkou je úsečka spojující dva body (0,0,1) a (1,1,1).
1. a 3. kvádr mají společný bod (1,1,1), ale nemají společnou plochu.

Vzorový vstup 2

3
0 0 10 10 10 20
3 4 1 15 6 10
0 9 6 1 20 10

Vzorový výstup 2

2
1
1

Vzorový vstup 3

8
0 0 0 1 1 1
0 0 1 1 1 2
0 1 0 1 2 1
0 1 1 1 2 2
1 0 0 2 1 1
1 0 1 2 1 2
1 1 0 2 2 1
1 1 1 2 2 2

Vzorový výstup 3

3
3
3
3
3
3
3
3

V trojrozměrném prostoru je N obdélníkových krychlí.
Tyto krychle se nepřekrývají.  Formálně platí, že pro libovolné dva různé krychle mezi nimi má jejich průnik objem 0.
Úhlopříčka i-tého krychle je úsečka, která spojuje dva body (X_{i,1},Y_{i,1},Z_{i,1}) a (X_{i,2},Y_{i,2},Z_{i,2}) a všechny její hrany jsou rovnoběžné s jednou ze souřadnicových os.
Pro každý krychle najděte počet dalších krychlí, které s ním mají společnou stěnu.
Formálně pro každé i najděte počet j s 1\leq j \leq N a j\neq i takových, že průsečík ploch i-tého a j-tého kuboidu má kladnou plochu.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N
X_{1,1} Y_{1,1} Z_{1,1} X_{1,2} Y_{1,2} Z_{1,2}
\vdots
X_{N,1} Y_{N,1} Z_{N,1} X_{N,2} Y_{N,2} Z_{N,2}

Výstup

Vypište odpověď.

Omezení

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Kuboidy nemají průsečík s kladným objemem.
- Všechny vstupní hodnoty jsou celá čísla.

Příklad Vstup 1

4
0 0 0 1 1 1
0 0 1 1 1 2
1 1 1 2 2 2
3 3 3 4 4 4

Vzorový výstup 1

1
1
0
0

1. a 2. krychle mají společný obdélník, jehož úhlopříčkou je úsečka spojující dva body (0,0,1) a (1,1,1).
1. a 3. krychle mají společný bod (1,1,1), ale nemají společnou plochu.

Vzorový vstup 2

3
0 0 10 10 10 20
3 4 1 15 6 10
0 9 6 1 20 10

Vzorek výstupu 2

2
1
1

Vzorový vstup 3

8
0 0 0 1 1 1
0 0 1 1 1 2
0 1 0 1 2 1
0 1 1 1 2 2
1 0 0 2 1 1
1 0 1 2 1 2
1 1 0 2 2 1
1 1 1 2 2 2

Vzorový výstup 3

3
3
3
3
3
3
3
3

V trojrozměrném prostoru je N obdélníkových kvádrů.
Tyto kvádry se nepřekrývají. Formálně pro jakékoli dva různé kvádry mezi nimi má jejich průsečík objem 0.
Úhlopříčka i-tého kvádru je úsečka, která spojuje dva body (X_{i,1},Y_{i,1},Z_{i,1}) a (X_{i,2},Y_{i, 2},Z_{i,2}) a všechny jeho hrany jsou rovnoběžné s jednou ze souřadnicových os.
U každého kvádru najděte počet dalších kvádrů, které s ním sdílejí tvář.
Formálně pro každé i najděte počet j s 1\leq j \leq N a j\neq i takové, že průsečík ploch i-tého a j-tého kvádru má kladnou plochu.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
X_{1,1} Y_{1,1} Z_{1,1} X_{1,2} Y_{1,2} Z_{1,2}
\vdots
X_{N,1} Y_{N,1} Z_{N,1} X_{N,2} Y_{N,2} Z_{N,2}

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Kvádry nemají průsečík s kladným objemem.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
0 0 0 1 1 1
0 0 1 1 1 2
1 1 1 2 2 2
3 3 3 4 4 4

Ukázkový výstup 1

1
1
0
0

1. a 2. kvádr sdílí obdélník, jehož úhlopříčkou je úsečka spojující dva body (0,0,1) a (1,1,1).
1. a 3. kvádr sdílí bod (1,1,1), ale nesdílejí plochu.

Ukázkový vstup 2

3
0 0 10 10 10 20
3 4 1 15 6 10
0 9 6 1 20 10

Ukázkový výstup 2

2
1
1

Ukázkový vstup 3

8
0 0 0 1 1 1
0 0 1 1 1 2
0 1 0 1 2 1
0 1 1 1 2 2
1 0 0 2 1 1
1 0 1 2 1 2
1 1 0 2 2 1
1 1 1 2 2 2

Ukázkový výstup 3

3
3
3
3
3
3
3
3


Existuje N položek.
Každý z nich je jedna z plechovek se stahovacím páskem, obyčejná plechovka nebo otvírák na konzervy.
I-tý předmět je popsán dvojicí celých čísel (T_i, X_i) takto:

- Pokud je T_i = 0, i-tý předmět je plechovka s táhlem; pokud ji získáte, získáte štěstí X_i.
- Je-li T_i = 1, i-tý předmět je obyčejná plechovka; pokud ji získáte a použijete na ni otvírák, získáte štěstí X_i.
- Je-li T_i = 2, i-tý předmět je otvírák na konzervy; lze jej použít nejvýše proti X_i plechovkám.

Najděte maximální celkové štěstí, které získáte získáním M předmětů z N.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
T_1 X_1
T_2 X_2
\vdots
T_N X_N

Výstup

Vypište odpověď jako celé číslo.

Omezení

- 1 \leq M \leq N \leq 2 \times 10^5
- T_i je 0, 1 nebo 2.
- 1 \leq X_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

8 4
0 6
0 6
1 3
1 5
1 15
2 1
2 10
2 100

Ukázka výstupu 1

27

Pokud získáte 1., 2., 5. a 7. položku a použijete 7. položku (otvírák na konzervy) proti 5. položce, získáte štěstí 6 + 6 + 15 = 27.
Neexistují žádné způsoby, jak získat předměty, abyste získali štěstí 28 nebo vyšší, ale stále můžete získat štěstí 27 získáním 6. nebo 8. předmětu místo 7. předmětu ve výše uvedené kombinaci.

Vzorový vstup 2

5 5
1 5
1 5
1 5
1 5
1 5

Ukázka výstupu 2

0

Vzorový vstup 3

12 6
2 2
0 1
0 9
1 3
1 5
1 3
0 4
2 1
1 8
2 1
0 1
0 4

Ukázka výstupu 3

30

Je tam N položek.
Každý z nich je jedním z vytahovacích plechovek, běžných plechovek nebo otvíráků na konzervy.
I-tá položka je popsána dvojicí celých čísel (T_i, X_i) takto:

- Pokud T_i = 0, i-tá položka je plechovka s vytahovací páčkou; pokud to získáte, získáte štěstí X_i.
- Pokud T_i = 1, i-tá položka je běžná plechovka; pokud jej získáte a použijete proti němu otvírák na konzervy, získáte štěstí X_i.
- Pokud T_i = 2, i-tá položka je otvírák na konzervy; můžete jej použít na maximálně X_i plechovek.

Najděte maximální celkové štěstí, které získáte získáním M položek z N.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
T_1 X_1
T_2 X_2
\vtečky
T_N X_N

Výstup

Vytiskněte odpověď jako celé číslo.

Omezení

- 1 \leq M \leq N \leq 2 \krát 10^5
- T_i je 0, 1 nebo 2.
- 1 \leq X_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

8 4
0 6
0 6
1 3
1 5
1 15
2 1
2 10
2 100

Ukázkový výstup 1

27

Pokud získáte 1., 2., 5. a 7. předmět a použijete 7. předmět (otvírák na konzervy) proti 5. předmětu, získáte štěstí 6 + 6 + 15 = 27.
Neexistují žádné způsoby, jak získat předměty ke štěstí 28 nebo vyšší, ale stále můžete získat štěstí 27 získáním 6. nebo 8. předmětu namísto 7. ve výše uvedené kombinaci.

Ukázkový vstup 2

5 5
1 5
1 5
1 5
1 5
1 5

Ukázkový výstup 2

0

Ukázkový vstup 3

12 6
2 2
0 1
0 9
1 3
15
1 3
0 4
2 1
1 8
2 1
0 1
0 4

Ukázkový výstup 3

30

Je tam N položek.
Každý z nich je jedním z vytahovacích plechovek, běžných plechovek nebo otvíráků na konzervy.
I-tá položka je popsána dvojicí celých čísel (T_i, X_i) takto:

- Pokud T_i = 0, i-tá položka je plechovka s vytahovací páčkou; pokud to získáte, získáte štěstí X_i.
- Pokud T_i = 1, i-tá položka je běžná plechovka; pokud jej získáte a použijete proti němu otvírák na konzervy, získáte štěstí X_i.
- Pokud T_i = 2, i-tá položka je otvírák na konzervy; můžete jej použít na maximálně X_i plechovek.

Najděte maximální celkové štěstí, které získáte získáním M položek z N.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
T_1 X_1
T_2 X_2
\vtečky
T_N X_N

Výstup

Vytiskněte odpověď jako celé číslo.

Omezení

- 1 \leq M \leq N \leq 2 \krát 10^5
- T_i je 0, 1 nebo 2.
- 1 \leq X_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

8 4
0 6
0 6
1 3
1 5
1 15
2 1
2 10
2 100

Ukázkový výstup 1

27

Pokud získáte 1., 2., 5. a 7. předmět a použijete 7. předmět (otvírák) na 5. předmět, získáte štěstí 6 + 6 + 15 = 27.
Neexistují žádné způsoby, jak získat předměty ke štěstí 28 nebo vyšší, ale stále můžete získat štěstí 27 získáním 6. nebo 8. předmětu namísto 7. ve výše uvedené kombinaci.

Ukázkový vstup 2

5 5
1 5
1 5
1 5
1 5
1 5

Ukázkový výstup 2

0

Ukázkový vstup 3

12 6
2 2
0 1
0 9
1 3
1 5
1 3
0 4
2 1
1 8
2 1
0 1
0 4

Ukázkový výstup 3

30


Existuje N lidí očíslovaných od 1 do N.
Každá osoba má celočíselné skóre nazývané programovací schopnost; programovací schopnost osoby i je P_i bodů.
Kolik bodů ještě potřebuje osoba 1, aby se osoba 1 stala nejsilnější?
Jinými slovy, jaké je minimální nezáporné celé číslo x takové, že P_1 + x > P_i pro všechna i \neq 1?

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
P_1 P_2 \dots P_N

Výstup

Vytiskněte odpověď jako celé číslo.

Omezení

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
5 15 2 10

Ukázkový výstup 1

11

Osoba 1 se stane nejsilnější, když její dovednost programování dosáhne 16 bodů nebo více,
takže odpověď je 16-5=11.

Ukázkový vstup 2

4
15 5 2 10

Ukázkový výstup 2

0

Osoba 1 je již nejsilnější, takže není potřeba žádná další programátorská dovednost.

Ukázkový vstup 3

3
100 100 100

Ukázkový výstup 3

1

Existuje N lidí očíslovaných od 1 do N.
Každá osoba má celočíselné skóre nazývané programovací schopnost; programovací schopnost osoby i je P_i bodů.
Kolik bodů ještě potřebuje osoba 1, aby se osoba 1 stala nejsilnější?
Jinými slovy, jaké je minimální nezáporné celé číslo x takové, že P_1 + x > P_i pro všechna i \neq 1?

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
P_1 P_2 \tečky P_N

Výstup

Vytiskněte odpověď jako celé číslo.

Omezení

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
5 15 2 10

Ukázkový výstup 1

11

Osoba 1 se stane nejsilnější, když její dovednost programování dosáhne 16 bodů nebo více,
takže odpověď je 16-5=11.

Ukázkový vstup 2

4
15 5 2 10

Ukázkový výstup 2

0

Osoba 1 je již nejsilnější, takže není potřeba žádná další programátorská dovednost.

Ukázkový vstup 3

3
100 100 100

Ukázkový výstup 3

1

Je N lidí číslovaných od 1 do N.
Každá osoba má celočíselné skóre nazývané programovací schopnost; schopnost osoby i je P_i bodů.
Kolik bodů potřebuje osoba 1, aby se stala nejsilnější?
Jinými slovy, jaké je minimální nezáporné celé číslo x takové, že P_1 + x > P_i pro všechna i \neq 1?

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
P_1 P_2 \dots P_N

Výstup

Vytiskněte odpověď jako celé číslo.

Omezení

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
5 15 2 10

Ukázkový výstup 1

11

Osoba 1 se stane nejsilnější, když její programovací schopnost bude 16 bodů nebo více,
takže odpověď je 16-5=11.

Ukázkový vstup 2

4
15 5 2 10

Ukázkový výstup 2

0

Osoba 1 je již nejsilnější, takže žádné další programovací schopnosti nejsou potřeba.

Ukázkový vstup 3

3
100 100 100

Ukázkový výstup 3

1


Existuje N soutěžních programátorů očíslovaných jako osoba 1, osoba 2, \ldots, a osoba N.
Mezi programátory existuje vztah zvaný nadřazenost. Pro všechny dvojice různých programátorů (osoba X, osoba Y) platí přesně jeden z následujících dvou vztahů: "osoba X je silnější než osoba Y" nebo "osoba Y je silnější než osoba X."
Nadřazenost je tranzitivní. Jinými slovy, pro všechny trojice různých programátorů (osoba X, osoba Y, osoba Z) platí, že:

- pokud osoba X je silnější než osoba Y a osoba Y je silnější než osoba Z, pak osoba X je silnější než osoba Z.

Osoba X je nazývána nejsilnějším programátorem, pokud osoba X je silnější než osoba Y pro všechny osoby Y jiné než osoba X. (Za výše uvedených podmínek lze dokázat, že vždy existuje právě jedna taková osoba.)
Máte M informací o jejich nadřazenosti. i-th z nich je, že "osoba A_i je silnější než osoba B_i."
Můžete určit nejsilnějšího programátora mezi N na základě těchto informací?
Pokud ano, vytiskněte číslo osoby. V opačném případě, to znamená, pokud je více možných nejsilnějších programátorů, vytiskněte -1.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
A_1 B_1
A_2 B_2
\vdots
A_M B_M

Výstup

Pokud můžete jednoznačně určit nejsilnějšího programátora, vytiskněte číslo této osoby; jinak vytiskněte -1.

Omezení

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- Pokud i \neq j, pak (A_i, B_i) \neq (A_j, B_j).
- Existuje alespoň jeden způsob, jak určit nadřazenosti pro všechny dvojice různých programátorů, který je konzistentní s danými informacemi.

Ukázkový vstup 1

3 2
1 2
2 3

Ukázkový výstup 1

1

Máte dvě informace: "osoba 1 je silnější než osoba 2" a "osoba 2 je silnější než osoba 3."
Díky tranzitivitě můžete také usoudit, že "osoba 1 je silnější než osoba 3," takže osoba 1 je nejsilnější programátor.

Ukázkový vstup 2

3 2
1 3
2 3

Ukázkový výstup 2

-1

Jak osoba 1, tak osoba 2 mohou být nejsilnějšími programátory. Protože nemůžete jednoznačně určit, kdo je nejsilnější, měli byste vytisknout -1.

Ukázkový vstup 3

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

Ukázkový výstup 3

-1

Existuje N konkurenčních programátorů s číslem osoba 1, osoba 2, \ldots a osoba N.
Mezi programátory existuje vztah zvaný nadřazenost. Pro všechny dvojice odlišných programátorů (osoba X, osoba Y) platí přesně jeden z následujících dvou vztahů: „osoba X je silnější než osoba Y“ nebo „osoba Y je silnější než osoba X“.
Převaha je přechodná. Jinými slovy, pro všechny trojice odlišných programátorů (osoba X, osoba Y, osoba Z) platí, že:

- pokud je osoba X silnější než osoba Y a osoba Y je silnější než osoba Z, pak je osoba X silnější než osoba Z.

O osobě X se říká, že je nejsilnějším programátorem, pokud je osoba X silnější než osoba Y pro všechny lidi Y kromě osoby X. (Za výše uvedených omezení můžeme dokázat, že vždy existuje přesně jedna taková osoba.)
Máte M informací o jejich nadřazenosti. I-tou z nich je, že "osoba A_i je silnější než osoba B_i."
Dokážete na základě informací určit nejsilnějšího programátora mezi N?
Pokud můžete, vytiskněte si číslo osoby. Jinak, to znamená, že pokud existuje více možných nejsilnějších programátorů, vytiskněte -1.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
A_1 B_1
A_2 B_2
\vdots
A_M B_M

Výstup

Pokud můžete jednoznačně určit nejsilnějšího programátora, vytiskněte číslo osoby; v opačném případě vytiskněte -1.

Omezení

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- Jestliže i \neq j, pak (A_i, B_i) \neq (A_j, B_j).
- Existuje alespoň jeden způsob, jak určit nadřazenost pro všechny dvojice odlišných programátorů, který je v souladu s danou informací.

Ukázkový vstup 1

3 2
1 2
2 3

Ukázkový výstup 1

1

Máte dvě informace: „osoba 1 je silnější než osoba 2“ a „osoba 2 je silnější než osoba 3“.
Podle tranzitivity můžete také odvodit, že „osoba 1 je silnější než osoba 3“, takže osoba 1 je nejsilnější programátor.

Ukázkový vstup 2

3 2
1 3
2 3

Ukázkový výstup 2

-1

Osoba 1 i osoba 2 mohou být nejsilnějším programátorem. Protože nemůžete jednoznačně určit, která je nejsilnější, měli byste vytisknout -1.

Ukázkový vstup 3

6 6
16
6 5
6 2
2 3
4 3
4 2

Ukázkový výstup 3

-1

Existuje N soutěžících programátorů s čísly 1, 2, \ldots a N.
Mezi programátory existuje vztah zvaný nadřazenost.  Pro všechny dvojice různých programátorů (osoba X, osoba Y) platí právě jeden z následujících dvou vztahů: „osoba X je silnější než osoba Y“ nebo ‚osoba Y je silnější než osoba X‘.
Nadřazenost je tranzitivní.  Jinými slovy, pro všechny trojice různých programátorů (osoba X, osoba Y, osoba Z) platí, že:

- pokud je osoba X silnější než osoba Y a osoba Y je silnější než osoba Z, pak je osoba X silnější než osoba Z.

O osobě X se říká, že je nejsilnějším programátorem, jestliže osoba X je silnější než osoba Y pro všechny osoby Y jiné než osoba X. (Za výše uvedených omezení můžeme dokázat, že vždy existuje přesně jedna taková osoba.)
O jejich nadřazenosti máte M informací.  I-tá z nich je, že „osoba A_i je silnější než osoba B_i“.
Dokážete na základě této informace určit nejsilnějšího programátora z N?
Pokud to dokážete, vypište číslo této osoby.  V opačném případě, tedy pokud existuje více možných nejsilnějších programátorů, vypište -1.

Vstupní údaje

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
A_1 B_1
A_2 B_2
\vdots
A_M B_M

Výstup

Pokud lze jednoznačně určit nejsilnějšího programátora, vypište jeho číslo; v opačném případě vypište -1.

Omezení

 - 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- Jestliže i \neq j, pak (A_i, B_i) \neq (A_j, B_j).
- Existuje alespoň jeden způsob, jak určit nadřazenost pro všechny dvojice různých programátorů, který je v souladu s danými informacemi.

Příklad Vstupní data 1

3 2
1 2
2 3

Vzorový výstup 1

1

Máte dvě informace: „osoba 1 je silnější než osoba 2“ a ‚osoba 2 je silnější než osoba 3‘.
Podle tranzitivity můžete také odvodit, že „osoba 1 je silnější než osoba 3“, takže osoba 1 je nejsilnější programátor.

Ukázka vstupu 2

3 2
1 3
2 3

Ukázkový výstup 2

-1

Osoba 1 i osoba 2 mohou být nejsilnějšími programátory.  Protože nelze jednoznačně určit, který z nich je nejsilnější, měli byste vypsat -1.

Vzorový vstup 3

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

Ukázka výstupu 3

-1


Je vám dána celočíselná posloupnost A=(A_1,A_2,\tečky,A_N).
Následující operaci můžete provést libovolný počet opakování (možná nula).

- Vyberte celá čísla i a j s 1\leq i,j \leq N. Snižte A_i o jednu a zvyšte A_j o jednu.

Najděte minimální počet operací potřebných k dosažení rozdílu mezi minimální a maximální hodnotou A nejvýše jedna.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 \tečky A_N

Výstup

Vytiskněte odpověď jako celé číslo.

Omezení

- 1\leq N \leq 2\krát 10^5
- 1\leq A_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
4 7 3 7

Ukázkový výstup 1

3

Následujícími třemi operacemi se rozdíl mezi minimální a maximální hodnotou A stane nejvýše jednou.

- Zvolte i=2 a j=3, aby bylo A=(4,6,4,7).
- Zvolte i=4 a j=1, aby bylo A=(5,6,4,6).
- Zvolte i=4 a j=3, aby bylo A=(5,6,5,5).

Nemůžete rozlišovat mezi maximální a minimální hodnotou A maximálně jednou za méně než tři operace, takže odpověď je 3.

Ukázkový vstup 2

1
313

Ukázkový výstup 2

0

Ukázkový vstup 3

10
999999997 999999999 4 3 2 4 999999990 8 999999991 999999993

Ukázkový výstup 3

2499999974

Je vám dána celočíselná posloupnost A=(A_1,A_2,\tečky,A_N).
Následující operaci můžete provést libovolný počet opakování (možná nula).

- Zvolte celá čísla i a j s 1\leq i,j \leq N. Snižte A_i o jednu a zvyšte A_j o jednu.

Najděte minimální počet operací potřebných k tomu, aby rozdíl mezi minimální a maximální hodnotou A byl maximálně jedna.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 \dots A_N

Výstup

Vytiskněte odpověď jako celé číslo.

Omezení

- 1\leq N \leq 2\times  10^5
- 1\leq A_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
4 7 3 7

Ukázkový výstup 1

3

Následujícími třemi operacemi se rozdíl mezi minimální a maximální hodnotou A stane nejvýše jednou.

- Zvolte i=2 a j=3 k vytvoření A=(4,6,4,7).
- Zvolte i=4 a j=1 k vytvoření A=(5,6,4,6).
- Zvolte i=4 a j=3 k vytvoření A=(5,6,5,5).

Nemůžete rozlišovat mezi maximální a minimální hodnotou A maximálně jednou za méně než tři operace, takže odpověď je 3.

Ukázkový vstup 2

1
313

Ukázkový výstup 2

0

Ukázkový vstup 3

10
999999997 999999999 4 3 2 4 999999990 8 999999991 999999993

Ukázkový výstup 3

2499999974


Číslo pí s přesností na 100 desetinných míst je
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
Je dáno celé číslo N v rozsahu 1 až 100 včetně.
Vypište hodnotu čísla pí na N-té desetinné místo.
Přesněji řečeno, zkraťte hodnotu čísla pí na N desetinných míst a výsledek vypište bez odstranění koncové nuly.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N

Výstup

Vypište hodnotu pí na N-té desetinné místo na jednom řádku.

Omezení

- 1\leq N\leq 100
- N je celé číslo.

Vzorový vstup 1

2

Vzorový výstup 1

3.14

Zkrácením hodnoty pí na 2 desetinná místa získáme hodnotu 3,14. Měli byste tedy vypsat hodnotu 3,14.

Vzorový vstup 2

32

Vzorový výstup 2

3.14159265358979323846264338327950

Neodstraňujte koncové nuly.

Vzorový vstup 3

100

Vzorový výstup 3

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Číslo pí na 100. desetinné místo je
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421.
Dostanete celé číslo N mezi 1 a 100 včetně.
Vytiskněte hodnotu pí na N-té desetinné místo.
Přesněji zkraťte hodnotu pí na N desetinných míst a vytiskněte výsledek bez odstranění koncových nul.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N

Výstup

Vytiskněte hodnotu pí na N-té desetinné místo na jeden řádek.

Omezení

- 1\leq N\leq 100
- N je celé číslo.

Ukázkový vstup 1

2

Ukázkový výstup 1

3.14

Zkrácení hodnoty pí na 2 desetinná místa má za následek 3.14. Měli byste tedy vytisknout 3.14.

Ukázkový vstup 2

32

Ukázkový výstup 2

3,14159265358979323846264338327950

Neodstraňujte koncové 0s.

Ukázkový vstup 3

100

Ukázkový výstup 3

3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Číslo pí na 100. desetinné místo je
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
Je dáno celé číslo N mezi 1 a 100 včetně.
Vytiskněte hodnotu pí na N-té desetinné místo.
Přesněji, zkraťte hodnotu pí na N desetinných míst a vytiskněte výsledek bez odstranění koncových nul.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N

Výstup

Vytiskněte hodnotu pí na N-té desetinné místo na jednom řádku.

Omezení

- 1\leq N\leq 100
- N je celé číslo.

Ukázkový vstup 1

2

Ukázkový výstup 1

3.14

Zkrácením hodnoty pí na 2 desetinná místa vznikne 3.14. Proto byste měli vytisknout 3.14.

Ukázkový vstup 2

32

Ukázkový výstup 2

3.14159265358979323846264338327950

Neodstraňujte koncové nuly.

Ukázkový vstup 3

100

Ukázkový výstup 3

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679


N lidí, osoba 1, osoba 2, \ldots, osoba N, hraje ruletu.
Výsledkem rotace je jedno z 37 celých čísel od 0 do 36.
Pro každé i = 1, 2, \ldots, N, osoba i vsadila na C_i z 37 možných výsledků: A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
Kolo se roztočilo a výsledkem je X.
Vytiskněte čísla všech lidí, kteří vsadili na X s nejmenším počtem sázek, ve vzestupném pořadí.
Formálněji vytiskněte všechna celá čísla i mezi 1 a N včetně, která splňují obě následující podmínky, ve vzestupném pořadí:

- Osoba i vsadila na X.
- Pro každé j = 1, 2, \ldots, N, pokud osoba j vsadila na X, pak C_i \leq C_j.

Všimněte si, že nemusí být k dispozici žádné číslo k vytištění (viz Ukázkový vstup 2).

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
C_1
A_{1, 1} A_{1, 2} \ldots A_{1, C_1}
C_2
A_{2, 1} A_{2, 2} \ldots A_{2, C_2}
\vtečky
C_N
A_{N, 1} A_{N, 2} \ldots A_{N, C_N}
X

Výstup

Nechť B_1, B_2, \ldots, B_K je posloupnost čísel, která se mají vytisknout ve vzestupném pořadí.
Pomocí následujícího formátu vytiskněte počet čísel k vytištění, K, na první řádek,
a B_1, B_2, \ldots, B_K oddělené mezerami na druhém řádku:
K
B_1 B_2 \ldots B_K

Omezení

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} jsou různé pro každé i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
3
7 19 20
4
4 19 24 0
2
26 10
3
19 31 24
19

Ukázkový výstup 1

2
1 4

Kolo se roztočilo a výsledek je 19.
Lidé, kteří vsadili na 19, jsou osoba 1, osoba 2 a osoba 4, a počet jejich sázek je 3, 4 a 3, respektive.
Proto mezi lidmi, kteří vsadili na 19, jsou lidé s nejmenšími sázkami osoba 1 a osoba 4.

Ukázkový vstup 2

3
1
1
1
2
1
3
0

Ukázkový výstup 2

0

Kolo se roztočilo a výsledek je 0, ale nikdo nevsadil na 0, takže není žádné číslo k vytištění.

N lidí, osoba 1, osoba 2, \ldots, osoba N, hraje ruletu.
Výsledkem rotace je jedno z 37 celých čísel od 0 do 36.
Pro každé i = 1, 2, \ldots, N, osoba i vsadila na C_i z 37 možných výsledků: A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
Kolo se roztočilo a výsledkem je X.
Vytiskněte čísla všech lidí, kteří vsadili na X s nejmenším počtem sázek, ve vzestupném pořadí.
Formálněji vytiskněte všechna celá čísla i mezi 1 a N včetně, která splňují obě následující podmínky, ve vzestupném pořadí:

- Osoba i, která vsadila na X.
- Pro každé j = 1, 2, \ldots, N, pokud osoba j vsadila na X, pak C_i \leq C_j.

Všimněte si, že nemusí být k dispozici žádné číslo k vytištění (viz Ukázkový vstup 2).

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
C_1
A_{1, 1} A_{1, 2} \ldots A_{1, C_1}
C_2
A_{2, 1} A_{2, 2} \ldots A_{2, C_2}
\vtečky
C_N
A_{N, 1} A_{N, 2} \ldots A_{N, C_N}
X

Výstup

Nechť B_1, B_2, \ldots, B_K je posloupnost čísel, která se mají vytisknout ve vzestupném pořadí.
Pomocí následujícího formátu vytiskněte počet čísel k vytištění, K, na první řádek,
a B_1, B_2, \ldots, B_K oddělené mezerami na druhém řádku:
K
B_1 B_2 \ldots B_K

Omezení

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} jsou různé pro každé i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
3
7 19 20
4
4 19 24 0
2
26 10
3
19 31 24
19

Ukázkový výstup 1

2
1 4

Kolo se roztočilo a výsledek je 19.
Lidé, kteří vsadili na 19, jsou osoba 1, osoba 2 a osoba 4, a počet jejich sázek je 3, 4 a 3, respektive.
Proto mezi lidmi, kteří vsadili na 19, jsou lidé s nejmenšími sázkami osoba 1 a osoba 4.

Ukázkový vstup 2

3
1
1
1
2
1
3
0

Ukázkový výstup 2

0

Kolo se roztočilo a výsledek je 0, ale nikdo nevsadil na 0, takže není žádné číslo k vytištění.

N lidí, osoba 1, osoba 2, \ldots, osoba N, hraje ruletu.
Výsledek otočení je jedno z 37 čísel od 0 do 36.
Pro každé i = 1, 2, \ldots, N, osoba i vsadila na C_i z 37 možných výsledků: A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
Kolo bylo roztočeno a výsledek je X.
Vytiskněte čísla všech osob, které vsadily na X s nejmenším počtem sázek, vzestupně.
Přesněji řečeno, vytiskněte všechny celé počty i mezi 1 a N, které splňují obě následující podmínky, vzestupně:

- Osoba i vsadila na X.
- Pro každé j = 1, 2, \ldots, N, pokud osoba j vsadila na X, pak C_i \leq C_j.

Všimněte si, že nemusí být žádné číslo k vytisknutí (viz Ukázkový vstup 2).

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
C_1
A_{1, 1} A_{1, 2} \ldots A_{1, C_1}
C_2
A_{2, 1} A_{2, 2} \ldots A_{2, C_2}
\vdots
C_N
A_{N, 1} A_{N, 2} \ldots A_{N, C_N}
X

Výstup

Nechť B_1, B_2, \ldots, B_K je sekvence čísel, která mají být vytištěna ve vzestupném pořadí.
Pomocí následujícího formátu vytiskněte počet čísel, která mají být vytištěna, K, na prvním řádku,
a B_1, B_2, \ldots, B_K oddělené mezerami na druhém řádku:
K
B_1 B_2 \ldots B_K

Omezení

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} jsou pro každé i = 1, 2, \ldots, N všechny různé.
- 0 \leq X \leq 36
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
3
7 19 20
4
4 19 24 0
2
26 10
3
19 31 24
19

Ukázkový výstup 1

2
1 4

Kolo bylo roztočeno a výsledek je 19.
Lidé, kteří vsadili na 19, jsou osoba 1, osoba 2 a osoba 4, a počet jejich sázek je 3, 4 a 3.
Proto mezi lidmi, kteří vsadili na 19, jsou ti s nejmenším počtem sázek osoba 1 a osoba 4.

Ukázkový vstup 2

3
1
1
1
2
1
3
0

Ukázkový výstup 2

0

Kolo bylo roztočeno a výsledek je 0, ale nikdo na 0 nevsadil, takže není žádné číslo k vytisknutí.


Je vám dán řetězec S o délce N, který se skládá z malých anglických písmen.
Každý znak S je namalován v jedné z M barev: barva 1, barva 2, ..., barva M; pro každé i = 1, 2,  \ldots, N, je i-tý znak S namalován barevně C_i.
Pro každé i = 1, 2,  \ldots, M v tomto pořadí provedeme následující operaci.

- Proveďte kruhový posun doprava o 1 na části S natřené barvou i.
  To znamená, že pokud jsou p_1-té, p_2-té, p_3-té,  \ldots, p_k-té znaky namalovány barvou i zleva doprava, pak současně nahraďte p_1-tého, p_2-tého, p_3-tého,  \ldots, p_k-tého znaku S p_k-tým, p_1-tého, p_2-tého,  \ldots,  p_{k-1}-tý znak S, resp.

Po výše uvedených operacích vytiskněte poslední S.
Omezení zaručují, že alespoň jeden znak znaku S bude vybarven v každé z M barev.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
S
C_1 C_2  \ldots C_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq C_i \leq M
- N, M a C_i jsou celá čísla.
- S je řetězec o délce N skládající se z malých anglických písmen.
- Pro každé celé číslo 1  \leq i  \leq M existuje celé číslo 1  \leq j  \leq N takové, že C_j = i.

Vzorový vstup 1

8 3
apzbqrcs
1 2 3 1 2 2 1 2

Ukázkový výstup 1

cszapqbr

Zpočátku S = apzbqrcs.

- Pro i = 1 proveďte kruhový posun doprava o 1 na části S tvořené 1., 4-tým, 7. znakem, což má za následek S = cpzaqrbs.
- Pro i = 2 proveďte kruhový posun doprava o 1 na části S tvořené 2. , 5. , 6. a 8. znakem, což má za následek S = cszapqbr.
- Pro i = 3 proveďte kruhový posun doprava o 1 na části S tvořené 3. znakem, což má za následek S = cszapqbr (zde se S nezmění).

Takže, měli byste vytisknout cszapqbr, konečné S.

Vzorkovací vstup 2

2 1
aa
1 1

Ukázkový výstup 2

aa

Dostanete řetězec S délky N složený z malých anglických písmen.
Každý znak S je namalován v jedné z M barev: barva 1, barva 2, ..., barva M; pro každé i = 1, 2, \ldots, N je i-tý znak S vybarven barvou C_i.
Pro každé i = 1, 2, \ldots, M v tomto pořadí proveďte následující operaci.

- Proveďte pravý kruhový posun o 1 na části S natřené barvou i.
  To znamená, že pokud jsou p_1-tý, p_2-tý, p_3-tý, \ldots, p_k-tý znak namalován barvou i zleva doprava, pak současně nahraďte p_1-tý, p_2-tý, p_3-tý, \ldots, p_k-tých znaků S s p_k-tým, p_1-tým, p_2-tým, \ldots, p_{k-1}-tým znakem S, respektive.

Po výše uvedených operacích vytiskněte konečné S.
Omezení zaručují, že alespoň jeden znak S je namalován v každé z M barev.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M
S
C_1 C_2 \ldots C_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq M \leq N \leq 2 \krát 10^5
- 1 \leq C_i \leq M
- N, M a C_i jsou všechna celá čísla.
- S je řetězec délky N sestávající z malých anglických písmen.
- Pro každé celé číslo 1 \leq i \leq M existuje celé číslo 1 \leq j \leq N takové, že C_j = i.

Ukázkový vstup 1

8 3
apzbqrcs
1 2 3 1 2 2 1 2

Ukázkový výstup 1

cszapqbr

Zpočátku S = apzbqrcs.

- Pro i = 1 proveďte kruhový posun doprava o 1 na části S tvořené 1., 4., 7. znakem, výsledkem je S = cpzaqrbs.
- Pro i = 2 proveďte kruhový posun doprava o 1 na části S tvořené 2., 5., 6., 8. znakem, výsledkem je S = cszapqbr.
- Pro i = 3 proveďte kruhový posun doprava o 1 na části S tvořené 3. znakem, výsledkem je S = cszapqbr (zde se S nemění).

Měli byste tedy vytisknout cszapqbr, konečné S.

Ukázkový vstup 2

2 1
aa
11

Ukázkový výstup 2

aa

Máte řetězec S délky N, který se skládá z malých písmen anglické abecedy. Každý znak S je natřen jednou z M barev: barva 1, barva 2, ..., barva M; pro každé i = 1, 2, \ldots, N je i-tý znak S natřen barvou C_i. Pro každé i = 1, 2, \ldots, M v tomto pořadí, proveďme následující operaci.

- Proveďte pravotočivý kruhový posun o 1 na části S natřené barvou i. To znamená, že pokud jsou p_1-tý, p_2-tý, p_3-tý, \ldots, p_k-tý znaky natřené barvou i zleva doprava, pak současně nahraďte p_1-tý, p_2-tý, p_3-tý, \ldots, p_k-tý znak S p_k-tým, p_1-tým, p_2-tým, \ldots, p_{k-1}-tým znakem S.

Vytiskněte finální S po výše uvedených operacích. Omezení zaručují, že alespoň jeden znak S je natřen každou z M barev.

Vstup

Vstup je dán ze Standardního vstupu v následujícím formátu:
N M
S
C_1 C_2 \ldots C_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq C_i \leq M
- N, M a C_i jsou všechno celá čísla.
- S je řetězec délky N složený z malých písmen anglické abecedy.
- Pro každé celé číslo 1 \leq i \leq M, existuje celé číslo 1 \leq j \leq N takové, že C_j = i.

Ukázkový vstup 1

8 3
apzbqrcs
1 2 3 1 2 2 1 2

Ukázkový výstup 1

cszapqbr

Původně, S = apzbqrcs.

- Pro i = 1, proveďte pravotočivý kruhový posun o 1 na části S tvořené 1., 4., 7. znakem, výsledkem je S = cpzaqrbs.
- Pro i = 2, proveďte pravotočivý kruhový posun o 1 na části S tvořené 2., 5., 6., 8. znakem, výsledkem je S = cszapqbr.
- Pro i = 3, proveďte pravotočivý kruhový posun o 1 na části S tvořené 3. znakem, výsledkem je S = cszapqbr (zde se S nezmění).

Proto byste měli vytisknout cszapqbr, finální S.

Ukázkový vstup 2

2 1
aa
1 1

Ukázkový výstup 2

aa


Je dán řetězec S délky N, který se skládá z velkých a malých anglických písmen.
Proveďme nad řetězcem S operace Q.
I-tá operace (1\leq i\leq Q) je reprezentována tuplem (t _ i,x _ i,c _ i) dvou celých čísel a jednoho znaku takto.

- Pokud t _ i=1, změní se x _ i-tý znak S na c _ i.
- Je-li t _ i=2, převeďte všechna velká písmena v S na malá (pro tuto operaci nepoužívejte x _ i,c _ i).
- Je-li t _ i=3, převeďte všechna malá písmena v S na velká (pro tuto operaci nepoužívejte x _ i,c _ i).

Po operacích Q vypište S.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Výstup

Vypište odpověď na jeden řádek.

Omezení

- 1\leq N\leq5\times10^5
- S je řetězec délky N složený z velkých a malých anglických písmen.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Pokud t _ i=1, pak 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i je velké nebo malé anglické písmeno.
- Pokud t _ i\neq 1, pak x _ i=0 a c _ i= 'a'.
- N,Q,t _ i,x _ i jsou celá čísla.

Ukázka vstupu 1

7
AtCoder
5
1 4 i
3 0 a
1 5 b
2 0 a
1 4 Y

Ukázka výstupu 1

atcYber

Na začátku je řetězec S AtCoder.

- První operace změní 4. znak na i a změní S na AtCider.
- Druhá operace převede všechna malá písmena na velká a změní S na ATCIDER.
- Třetí operace změní 5. znak na b, čímž se změní S na ATCIbER.
- Čtvrtá operace převede všechna velká písmena na malá a změní S na atciber.
- Pátá operace změní 4. znak na Y a změní S na atcYber.

Po operacích je řetězec S atcYber, takže vytiskněte atcYber.

Vzorkovací vstup 2

35
TheQuickBrownFoxJumpsOverTheLazyDog
10
2 0 a
1 19 G
1 13 m
1 2 E
1 21 F
2 0 a
1 27 b
3 0 a
3 0 a
1 15 i

Ukázkový výstup 2

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG

Je vám dána řetězec S o délce N, který se skládá z velkých a malých písmen anglické abecedy. Proveďme Q operací na řetězci S. i-tá operace (1 ≤ i ≤ Q) je reprezentována dvojicí (t_i, x_i, c_i) dvou celých čísel a jednoho znaku, jak následuje.

- Pokud t _ i=1, změň x _ i-tý znak S na c _ i.
- Pokud t _ i=2, převeď všechna velká písmena v S na malá (pro tuto operaci nepoužívej x _ i,c _ i).
- Pokud t _ i=3, převeď všechna malá písmena v S na velká (pro tuto operaci nepoužívej x _ i,c _ i).

Vypiš S po Q operacích.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Výstup

Vypiš odpověď na jediném řádku.

Omezení

- 1\leq N\leq5\times10^5
- S je řetězec délky N složený z velkých a malých anglických písmen.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Pokud t _ i=1, pak 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i je velké nebo malé anglické písmeno.
- Pokud t _ i\neq 1, pak x _ i=0 a c _ i= 'a'.
- N,Q,t _ i,x _ i jsou všechno celá čísla.

Ukázkový vstup 1

7
AtCoder
5
1 4 i
3 0 a
1 5 b
2 0 a
1 4 Y

Ukázkový výstup 1

atcYber

Původně je řetězec S AtCoder.

- První operace změní 4-tý znak na i, změní S na AtCider.
- Druhá operace převede všechna malá písmena na velká, změní S na ATCIDER.
- Třetí operace změní 5-tý znak na b, změní S na ATCIbER.
- Čtvrtá operace převede všechna velká písmena na malá, změní S na atciber.
- Pátá operace změní 4-tý znak na Y, změní S na atcYber.

Po operacích je řetězec S atcYber, takže vypiš atcYber.

Ukázkový vstup 2

35
TheQuickBrownFoxJumpsOverTheLazyDog
10
2 0 a
1 19 G
1 13 m
1 2 E
1 21 F
2 0 a
1 27 b
3 0 a
3 0 a
1 15 i

Ukázkový výstup 2

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG

Dostanete řetězec S délky N sestávající z velkých a malých anglických písmen.
Proveďme Q operace s řetězcem S.
I-tá operace (1\leq i\leq Q) je reprezentována n-ticí (t _ i,x _ i,c _ i) dvou celých čísel a jednoho znaku následovně.

- Pokud t _ i=1, změňte x _ i-tý znak S na c _ i.
- Pokud t _ i=2, převeďte všechna velká písmena v S na malá (pro tuto operaci nepoužívejte x _ i,c _ i).
- Pokud t _ i=3, převeďte všechna malá písmena v S na velká (pro tuto operaci nepoužívejte x _ i,c _ i).

Vytiskněte S po operacích Q.

Operace

Operace je dán ze standardního vstupu v následujícím formátu:
N
S
Q
t _ 1 x _ 1 c _ 1
t_ 2 x _ 2 c _ 2
\...
t _ Q x _ Q c _ Q

Výstup

Vytiskněte odpověď na jeden řádek.

Omezení

- 1\leq N\leq5\times10^5
- S je řetězec délky N sestávající z velkých a malých anglických písmen.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Jestliže t _ i=1, pak 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i je velké nebo malé anglické písmeno.
- Jestliže t _ i\neq 1, pak x _ i=0 a c _ i= 'a'.
- N,Q,t _ i,x _ i jsou všechna celá čísla.

Operace 1

7
AtCoder
5
1 4 i
3 0 a
1 5 b
20 a
14 Y

Ukázkový výstup 1

atcYber

Zpočátku je řetězec S AtCoder.

- První operace změní 4. znak na i a S na AtCider.
- Druhá operace převede všechna malá písmena na velká a změní S na ATCIDER.
- Třetí operace změní 5. znak na b a S na ATCIbER.
- Čtvrtá operace převede všechna velká písmena na malá a změní S na atciber.
- Pátá operace změní 4. znak na Y a S na atcYber.

Po operacích je řetězec S atcYber, takže vytiskněte atcYber.

Operace 2

35
TheQuickBrownFoxJumpsOverTheLazyDog
10
20 a
119 G
113 m
1 2 E
1 21 F
20 a
1 27 b
3 0 a
3 0 a
115 i

Ukázkový výstup 2

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG