Máte daný strom s N vrcholy očíslovanými od 1 do N. i-tá hrana spojuje vrcholy A_i a B_i.
Zvažte strom, který lze získat odstraněním některých (možná žádných) hran a vrcholů z tohoto grafu. Najděte minimální počet vrcholů v takovém stromu, který obsahuje všechny K určené vrcholy V_1,\ldots,V_K.

Vstup

Vstup je poskytnut ve standardním vstupním formátu:
N K
A_1 B_1
\vdots
A_{N-1} B_{N-1}
V_1 \ldots V_K

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq K \leq N \leq 2\times 10^5
- 1 \leq A_i,B_i \leq N
- 1 \leq V_1 < V_2 < \ldots < V_K \leq N
- Daný graf je strom.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

4

Daný strom je zobrazen vlevo na obrázku níže. Strom s minimálním počtem vrcholů, který zahrnuje všechny vrcholy 1,3,5, je zobrazen vpravo.

Ukázkový vstup 2

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

Ukázkový výstup 2

4

Ukázkový vstup 3

5 1
1 4
2 3
5 2
1 2
1

Ukázkový výstup 3

1

Je dán strom s N vrcholy očíslovanými 1 až N. I-tá hrana spojuje vrcholy A_i a B_i.
Uvažujte strom, který lze získat odstraněním některých (případně nulových) hran a vrcholů z tohoto grafu. Najděte minimální počet vrcholů takového stromu, který obsahuje všech K zadaných vrcholů V_1,\ldots,V_K.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N K
A_1 B_1
\vdots
A_{N-1} B_{N-1}
V_1 \ldots V_K

Výstup

Vypište odpověď.

Omezení

- 1 \leq K \leq N \leq 2\times 10^5
- 1 \leq A_i,B_i \leq N
- 1 \leq V_1 < V_2 < \ldots < V_K \leq N
- Daný graf je strom.
- Všechny vstupní hodnoty jsou celá čísla.

Příklad Vstup 1

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

Ukázka výstupu 1

4

Daný strom je na obrázku níže zobrazen vlevo. Strom s minimálním počtem vrcholů, který obsahuje všechny vrcholy 1,3,5, je zobrazen vpravo.

Vzorový vstup 2

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

Ukázka výstupu 2

4

Vzorový vstup 3

5 1
1 4
2 3
5 2
1 2
1

Ukázka výstupu 3

1

Dostanete strom s N vrcholy očíslovanými od 1 do N. I-tá hrana spojuje vrcholy A_i a B_i.
Uvažujme strom, který lze získat odstraněním některých (možná nulových) hran a vrcholů z tohoto grafu. Najděte minimální počet vrcholů v takovém stromě, který zahrnuje všech K zadaných vrcholů V_1,\ldots,V_K.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N K
A_1 B_1
\vdots
A_{N-1} B_{N-1}
V_1 \ldots V_K

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq K \leq N \leq 2\times 10^5
- 1 \leq A_i,B_i \leq N
- 1 \leq V_1 < V_2 < \ldots < V_K \leq N
- Daný graf je strom.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

4

Daný strom je zobrazen vlevo na obrázku níže. Vpravo je zobrazen strom s minimálním počtem vrcholů, který zahrnuje všechny vrcholy 1,3,5.

Ukázkový vstup 2

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

Ukázkový výstup 2

4

Ukázkový vstup 3

5 1
1 4
2 3
5 2
1 2
1

Ukázkový výstup 3

1


V zemi Atcoder je N měst očíslovaných 1 až N a M vlaků očíslovaných 1 až M.
Vlak i odjíždí z města A_i v čase S_i a přijíždí do města B_i v čase T_i.
Vzhledem k kladnému celému číslu X_1 najděte způsob, jak nastavit nezáporná celá čísla X_2,\ldots,X_M, která splňuje následující podmínku s minimální možnou hodnotou X_2+\ldots+X_M.

- Podmínka: Pro všechny dvojice (i,j) splňující 1 \leq i,j \leq M, pokud B_i=A_j a T_i \leq S_j, pak T_i+X_i \leq S_j+X_j.
- Jinými slovy, u každého páru vlaků, mezi kterými je původně možné přestupovat, je stále možné přestupovat i po zpoždění odjezdů a příjezdů každého vlaku i o X_i.

Lze dokázat, že takový způsob nastavení X_2,\ldots,X_M s minimální možnou hodnotou X_2+\ldots+X_M je jedinečný.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M X_1
A_1 B_1 S_1 T_1
\vtečky
A_M B_M S_M T_M

Výstup

Vytiskněte X_2,\ldots,X_M, které splňují podmínku s minimálním možným součtem, v tomto pořadí, oddělené mezerami.

Omezení

- 2 \leq N \leq 2\krát 10^5
- 2 \leq M \leq 2\krát 10^5
- 1 \leq A_i,B_i \leq N
- A_i \neq B_i
- 0 \leq S_i < T_i \leq 10^9
- 1 \leq X_1 \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 6 15
1 2 10 20
1 2 20 30
2 3 25 40
2 3 35 50
3 1 15 30
3 1 45 60

Ukázkový výstup 1

0 10 0 0 5

Příjezd vlaku 1 z města 1 do 2 je zpožděn o 15 a stává se časem 35.
Aby byl možný přestup z vlaku 1 na 3 ve městě 2, odjezd vlaku 3 je opožděn o 10, takže odjíždí v čase 35 a přijíždí v čase 50.
Dále, aby byl umožněn přestup z vlaku 3 na 6 ve městě 3, je odjezd vlaku 6 zpožděn o 5, takže odjíždí v čase 50.
Ostatní vlaky mohou jezdit bez zpoždění a přitom stále umožňují přestupy mezi původně přestupními vlaky, takže (X_2,X_3,X_4,X_5,X_6)=(0,10,0,0,5) podmínku splňuje.
Navíc neexistuje řešení s menším součtem, které by podmínku splnilo, takže toto je odpověď.

Ukázkový vstup 2

10 9 100
1 10 0 1
10 2 1 100
10 3 1 100
10 4 1 100
10 5 1 100
10 6 1 100
10 7 1 100
10 8 1 100
10 9 1 100

Ukázkový výstup 2

100 100 100 100 100 100 100 100

Ukázkový vstup 3

4 4 10
1 2 0 1
1 2 0 10
2 3 100 200
2 4 100 200

Ukázkový výstup 3

0 0 0

V Atcoderu je N měst očíslovaných od 1 do N a M vlaků očíslovaných od 1 do M.
Vlak i odjíždí z města A_i v čase S_i a přijíždí do města B_i v čase T_i.
Je dáno kladné celé číslo X_1, najděte způsob, jak nastavit nezáporná celá čísla X_2,\ldots,X_M, která splňují následující podmínku s minimální možnou hodnotou X_2+\ldots+X_M.

- Podmínka: Pro všechny dvojice (i,j), které splňují 1 \leq i,j \leq M, pokud B_i=A_j a T_i \leq S_j, pak T_i+X_i \leq S_j+X_j.
- Jinými slovy, pro jakoukoliv dvojici vlaků, mezi kterými je původně možný přestup, je přestup stále možný, i po zpoždění odjezdu a příjezdu jednotlivých vlaků o X_i.

Lze dokázat, že takový způsob nastavení X_2,\ldots,X_M s minimální možnou hodnotou X_2+\ldots+X_M je jedinečný.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M X_1
A_1 B_1 S_1 T_1
\vdots
A_M B_M S_M T_M

Výstup

Vytiskněte X_2,\ldots,X_M, které splňují podmínku s minimálním možným součtem, v tomto pořadí, oddělené mezerami.

Omezení

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

Příklad vstupu 1

3 6 15
1 2 10 20
1 2 20 30
2 3 25 40
2 3 35 50
3 1 15 30
3 1 45 60

Příklad výstupu 1

0 10 0 0 5

Příjezd vlaku 1 z města 1 do 2 je zpožděn o 15 a stává se časem 35.
Aby byl možný přestup z vlaku 1 na 3 ve městě 2, je odjezd vlaku 3 zpožděn o 10, což znamená, že odjíždí v čase 35 a přijíždí v čase 50.
Dále, aby byl možný přestup z vlaku 3 na 6 ve městě 3, je odjezd vlaku 6 zpožděn o 5, což znamená, že odjíždí v čase 50.
Ostatní vlaky mohou fungovat bez zpoždění a stále povolit přestupy mezi původně propojitelnými vlaky, takže (X_2,X_3,X_4,X_5,X_6)=(0,10,0,0,5) splňuje podmínku.
Navíc neexistuje řešení s menším součtem, které splňuje podmínku, takže toto je odpověď.

Příklad vstupu 2

10 9 100
1 10 0 1
10 2 1 100
10 3 1 100
10 4 1 100
10 5 1 100
10 6 1 100
10 7 1 100
10 8 1 100
10 9 1 100

Příklad výstupu 2

100 100 100 100 100 100 100 100

Příklad vstupu 3

4 4 10
1 2 0 1
1 2 0 10
2 3 100 200
2 4 100 200

Příklad výstupu 3

0 0 0

V zemi Atcoder je N měst s čísly 1 až N a M vlaků s čísly 1 až M.
Vlak i vyjíždí z města A_i v čase S_i a přijíždí do města B_i v čase T_i.
Je dáno kladné celé číslo X_1, najděte způsob nastavení nezáporných celých čísel X_2,\ldots,X_M, který splňuje následující podmínku s minimální možnou hodnotou X_2+\ldots+X_M.

- Podmínka: Pro všechny dvojice (i,j) splňující 1 \leq i,j \leq M, jestliže B_i=A_j a T_i \leq S_j, pak T_i+X_i \leq S_j+X_j.
- Jinými slovy, pro každou dvojici vlaků, mezi kterými je původně možné přestoupit, je přestup stále možný i po zpoždění časů odjezdu a příjezdu každého vlaku i o X_i.

Lze dokázat, že takový způsob nastavení X_2,\ldots,X_M s minimální možnou hodnotou X_2+\ldots+X_M je jedinečný.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N M X_1
A_1 B_1 S_1 T_1
\vdots
A_M B_M S_M T_M

Výstup

Vypište X_2,\ldots,X_M, které splňují podmínku s minimálním možným součtem, v tomto pořadí, oddělené mezerami.

Omezení

- 2 \leq N \leq 2\krát  10^5
- 2 \leq M \leq 2\krát  10^5
- 1 \leq A_i,B_i \leq N
- A_i \neq B_i
- 0 \leq S_i < T_i \leq 10^9
- 1 \leq X_1 \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 6 15
1 2 10 20
1 2 20 30
2 3 25 40
2 3 35 50
3 1 15 30
3 1 45 60

Ukázka výstupu 1

0 10 0 0 5

 Příjezd vlaku 1 z města 1 do města 2 je zpožděn o 15 a nabývá času 35.
Aby byl umožněn přestup z vlaku 1 do vlaku 3 ve městě 2, je odjezd vlaku 3 zpožděn o 10, takže odjíždí v čase 35 a přijíždí v čase 50.
Dále, aby byl umožněn přestup z vlaku 3 na vlak 6 ve městě 3, je odjezd vlaku 6 zpožděn o 5, takže odjíždí v čase 50.
Ostatní vlaky mohou jezdit bez zpoždění a zároveň umožňují přestupy mezi původně přestupními vlaky, takže (X_2,X_3,X_4,X_5,X_6)=(0,10,0,0,5) splňuje podmínku.
Navíc neexistuje řešení s menším součtem, které by splňovalo podmínku, takže toto je odpověď.

Vzorový vstup 2

10 9 100
1 10 0 1
10 2 1 100
10 3 1 100
10 4 1 100
10 5 1 100
10 6 1 100
10 7 1 100
10 8 1 100
10 9 1 100

Výstupní vzorek 2

100 100 100 100 100 100 100 100

Vzorek vstupu 3

4 4 10
1 2 0 1
1 2 0 10
2 3 100 200
2 4 100 200

Výstupní vzorek 3

0 0 0


Takahashi bude čelit N monstrům v pořadí. i-té monstrum (1\leq i\leq N) má sílu A_i.
Pro každé monstrum si může vybrat, zda ho nechá jít, nebo ho porazí.
Každá akce mu udělí zkušenostní body následovně:

- Pokud monstrum nechá jít, získá 0 zkušenostních bodů.
- Pokud porazí monstrum se silou X, získá X zkušenostních bodů. Pokud je to sudé poražené monstrum (2., 4., ...), získá dodatečně X zkušenostních bodů.

Najděte maximální celkový počet zkušenostních bodů, které může získat z N monster.

Vstup

Vstup je uveden ve Standardním Vstupu v následujícím formátu:
N
A_1 A_2 \ldots A_N

Výstup

Vytiskněte maximální celkový počet zkušenostních bodů, které může získat z N monster 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

5
1 5 3 2 7

Ukázkový výstup 1

28

Pokud Takahashi porazí 1., 2., 3. a 5. monstrum a nechá 4. monstrum jít, získá následující zkušenostní body:

- Porazí monstrum se silou A_1=1. Získá 1 zkušenostní bod.
- Porazí monstrum se silou A_2=5. Získá 5 zkušenostních bodů. Jelikož je to 2. poražené monstrum, získá dodatečných 5 bodů.
- Porazí monstrum se silou A_3=3. Získá 3 zkušenostní body.
- Nechá 4. monstrum jít. Takahashi nezíská žádné zkušenostní body.
- Porazí monstrum se silou A_5=7. Získá 7 zkušenostních bodů. Jelikož je to 4. poražené monstrum, získá dodatečných 7 bodů.

Proto v tomto případě získá 1+(5+5)+3+0+(7+7)=28 zkušenostních bodů.
Všimněte si, že i když monstrum potká, pokud ho nechá jít, nepočítá se to jako poražené.
Může získat nejvýše 28 zkušenostních bodů bez ohledu na to, jak jedná, proto vytiskněte 28.
Pro zajímavost, pokud by porazil všechna monstra v tomto případě, získal by 1+(5+5)+3+(2+2)+7=25 zkušenostních bodů.

Ukázkový vstup 2

2
1000000000 1000000000

Ukázkový výstup 2

3000000000

Všimněte si, že odpověď se nemusí vejít do 32bitového celého čísla.

Takahashi narazí na N příšer v pořadí. I-té monstrum (1\leq i\leq N) má sílu A_i.
Pro každou příšeru si může vybrat, zda ji nechá jít, nebo ji porazí.
Každá akce mu uděluje zkušenostní body takto:

- Pokud nechá monstrum jít, získá 0 zkušenostních bodů.
- Pokud porazí monstrum se silou X, získá X zkušenostních bodů.
  Pokud se jedná o sudé poražené monstrum (2., 4., ...), získává dalších X zkušenostních bodů.

Najděte maximální celkový počet zkušenostních bodů, které může získat z N monster.

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 maximální celkový počet zkušenostních bodů, které může získat z N monster, 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

5
1 5 3 2 7

Ukázkový výstup 1

28

Pokud Takahashi porazí 1., 2., 3. a 5. monstrum a nechá 4. monstrum jít, získá zkušenostní body následovně:

- Porazí monstrum se silou A_1=1. Získává 1 zkušenostní bod.
- Porazí monstrum se silou A_2=5. Získává 5 zkušenostních bodů. Jelikož je to 2. poražené monstrum, získává dalších 5 bodů.
- Porazí monstrum se silou A_3=3. Získává 3 zkušenostní body.
- Pusťte čtvrté monstrum. Takahashi nezíská žádné zkušenostní body.
- Porazí monstrum se silou A_5=7. Získává 7 zkušenostních bodů. Jelikož je to 4. poražené monstrum, získává dalších 7 bodů.

Proto v tomto případě získává 1+(5+5)+3+0+(7+7)=28 zkušenostních bodů.
Všimněte si, že i když narazí na příšeru, pokud ji nechá jít, nepočítá se jako poražená.
Může získat maximálně 28 zkušenostních bodů bez ohledu na to, jak se chová, takže vytiskněte 28.
Jako vedlejší poznámka, pokud v tomto případě porazí všechny příšery, získal by 1+(5+5)+3+(2+2)+7=25 zkušenostních bodů.

Ukázkový vstup 2

2
1000000000 1000000000

Ukázkový výstup 2

3000000000

Pozor, odpověď se nemusí vejít do 32bitového celého čísla.

Takahaši se setká s N příšerami v pořadí. I-tá příšera (1\leq i\leq N) má sílu A_i.
U každé nestvůry si může vybrat, zda ji nechá jít, nebo ji porazí.
Za každou akci získá body zkušeností následujícím způsobem:

- Pokud nestvůru nechá jít, získá 0 bodů zkušenosti.
- Pokud porazí nestvůru o síle X, získá X zkušenostních bodů.
  Pokud se jedná o poraženou nestvůru se sudým číslem (2., 4., ...), získá dalších X zkušenostních bodů.

Zjistěte maximální celkový počet zkušenostních bodů, které může získat z N nestvůr.

Zadání

Zadání se provádí ze standardního zadání v následujícím formátu:
N
A_1 A_2 \ldots A_N

Výstup

Vypíše maximální celkový počet zkušenostních bodů, které může získat z N příšer, 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

5
1 5 3 2 7

Ukázkový výstup 1

28

Pokud Takahaši porazí 1., 2., 3. a 5. nestvůru a 4. nestvůru nechá jít, získá zkušenostní body takto:

- Porazí nestvůru o síle A_1=1. Získá 1 bod zkušenosti.
- Porazí nestvůru o síle A_2=5. Získá 5 bodů zkušenosti. Protože se jedná o druhou poraženou nestvůru, získá dalších 5 bodů.
- Porazí nestvůru o síle A_3=3. Získává 3 body zkušenosti.
- Nechá 4. nestvůru jít. Takahaši nezískává žádné body zkušenosti.
- Porazí nestvůru se silou A_5=7. Získává 7 bodů zkušenosti. Protože se jedná o 4. poraženou nestvůru, získává dalších 7 bodů.

V tomto případě tedy získá 1+(5+5)+3+0+(7+7)=28 zkušenostních bodů.
Všimněte si, že i když se setká s příšerou, pokud ji nechá jít, nepočítá se to jako poražený.
Může získat maximálně 28 zkušenostních bodů bez ohledu na to, jak si počíná, takže vytiskněte 28.
Mimochodem, pokud v tomto případě porazí všechny příšery, získá 1+(5+5)+3+(2+2)+7=25 zkušenostních bodů.

Vzorkovací vstup 2

2
1000000000 1000000000

Ukázkový výstup 2

3000000000

Dejte si pozor na to, že odpověď se nemusí vejít do 32bitového celého čísla.


Máte strom s N vrcholy.
Vrcholy jsou očíslovány 1, 2, \ldots, N.
i-tá hrana (1 \leq i \leq N-1) spojuje vrcholy U_i a V_i s délkou L_i.
Pro každé K=1,2,\ldots, N řešte následující úlohu.

Takahashi a Aoki hrají hru. Hra probíhá takto.

- Nejprve Aoki specifikuje K různých vrcholů na stromě.
- Poté Takahashi sestaví procházku, která začíná a končí ve vrcholu 1 a prochází všemi vrcholy určenými Aokim.

Skóre je definováno jako délka procházky, kterou sestavil Takahashi. Takahashi chce minimalizovat skóre, zatímco Aoki ho chce maximalizovat.
Najděte skóre, když oba hráči hrají optimálně.

Definice procházky
Procházka na neorientovaném grafu (možná strom) je posloupnost k vrcholů a k-1 hran v_1,e_1,v_2,\ldots,v_{k-1},e_{k-1},v_k (kde k je kladné celé číslo)
taková, že hrana e_i spojuje vrcholy v_i a v_{i+1}. Stejný vrchol nebo hrana se v posloupnosti může objevit vícekrát.
Procházka prochází vrcholem x, pokud existuje alespoň jedno i (1 \leq i \leq k) takové, že v_i=x. (Takových i může být více.)
Procházka začíná a končí ve v_1 a v_k, respektive, a délka procházky je součet délek e_1, e_2, \ldots, e_{k-1}.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
U_1 V_1 L_1
U_2 V_2 L_2
\vdots
U_{N-1} V_{N-1} L_{N-1}

Výstup

Vytiskněte N řádků.
i-tý řádek (1 \leq i \leq N) by měl obsahovat odpověď na problém pro K=i.

Omezení

- 2 \leq N \leq 2 \times 10^5
- 1 \leq U_i<V_i \leq N
- 1 \leq L_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.
- Daný graf je strom.

Ukázkový vstup 1

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

Ukázkový výstup 1

16
22
26
26
26

Pro K=1, optimální tah Aokiho je specifikovat vrchol 3, a optimální tah Takahashiho je sestavit cestu vrchol 1 \to vrchol 2 \to vrchol 3 \to vrchol 2 \to vrchol 1, což vede ke skóre 16.
Pro K=2, optimální tah Aokiho je specifikovat vrcholy 3 a 5, a optimální tah Takahashiho je sestavit cestu jako vrchol 1 \to vrchol 5 \to vrchol 1 \to vrchol 2 \to vrchol 3 \to vrchol 2 \to vrchol 1, což vede ke skóre 22.
Pro K\geq 3 je skóre, když oba hráči hrají optimálně, 26.

Ukázkový vstup 2

3
1 2 1000000000
2 3 1000000000

Ukázkový výstup 2

4000000000
4000000000
4000000000

Pozor na to, že odpověď se nemusí vejít do 32bitového celého čísla.

Dostanete strom s N vrcholy.
Vrcholy jsou očíslovány 1, 2, \ldots, N.
I-tá hrana (1\leq i\leq N-1) spojuje vrcholy U_i a V_i o délce L_i.
Pro každé K=1,2,\ldots, N vyřešte následující problém.

Takahashi a Aoki hrají hru. Hra probíhá následovně.

- Nejprve Aoki specifikuje K odlišných vrcholů na stromě.
- Potom Takahashi zkonstruuje procházku, která začíná a končí ve vrcholu 1 a prochází všemi vrcholy určenými Aoki.

Skóre je definováno jako délka chůze, kterou vytvořil Takahashi. Takahashi chce minimalizovat skóre, zatímco Aoki ho chce maximalizovat.
Najděte skóre, když oba hráči hrají optimálně.

Definice procházky
 Procházka po neorientovaném grafu (případně stromu) je posloupnost k vrcholů a k-1 hran v_1,e_1,v_2,\ldots,v_{k-1},e_{k-1},v_k (kde k je kladné celé číslo)
 taková, že hrana e_i spojuje vrcholy v_i a v_{i+1}. Stejný vrchol nebo hrana se může v sekvenci objevit vícekrát.
 Říká se, že procházka prochází vrcholem x, pokud existuje alespoň jedno i (1\leq i\leq k) takové, že v_i=x. (Takových i. může být více.)
 Říká se, že procházka začíná a končí na v_1, respektive v_k, a délka chůze je součtem délek e_1, e_2, \ldots, e_{k-1}.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
U_1 V_1 L_1
U_2 V_2 L_2
\vdots
U_{N-1} V_{N-1} L_{N-1}

Výstup

Vytiskněte N řádků.
I-tý řádek (1\leq i\leq N) by měl obsahovat odpověď na úlohu pro K=i.

Omezení

- 2\leq N\leq 2\times 10^5
- 1\leq U_i<V_i\leq N
- 1\leq L_i\leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.
- Daný graf je strom.

Ukázkový vstup 1

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

Ukázkový výstup 1

16
22
26
26
26

Pro K=1 je Aokiho optimální tah specifikovat vrchol 3 a Takahashiho optimální tah je sestrojit vrchol cesty 1 \do vrcholu 2 \do vrcholu 3 \do vrcholu 2 \do vrcholu 1, což má za následek skóre 16.
Pro K=2 je Aokiho optimální tah specifikovat vrcholy 3 a 5 a Takahashiho optimální tah je sestrojit cestu, jako je vrchol 1 \do vrcholu 5 \do vrcholu 1 \do vrcholu 2 \do vrcholu 3 \do vrcholu 2 \ do vrcholu 1, výsledkem je skóre 22.
Pro K\geq 3 je skóre, když oba hráči hrají optimálně, 26.

Ukázkový vstup 2

3
1 2 1000000000
2 3 1000000000

Ukázkový výstup 2

4000000000
4000000000
4000000000

Pozor, odpověď se nemusí vejít do 32bitového celého čísla.

Dostanete strom s N vrcholy.
Vrcholy jsou očíslovány 1, 2, \ldots, N.
I-tá hrana (1\leq i\leq N-1) spojuje vrcholy U_i a V_i o délce L_i.
Pro každé K=1,2,\ldots, N vyřešte následující problém.

Takahashi a Aoki hrají hru. Hra probíhá následovně.

- Nejprve Aoki specifikuje K odlišných vrcholů na stromě.
- Potom Takahashi zkonstruuje procházku, která začíná a končí ve vrcholu 1 a prochází všemi vrcholy určenými Aoki.

Skóre je definováno jako délka chůze, kterou vytvořil Takahashi. Takahashi chce minimalizovat skóre, zatímco Aoki ho chce maximalizovat.
Najděte skóre, když oba hráči hrají optimálně.

Definice procházky
    Procházka po neorientovaném grafu (případně stromu) je posloupnost k vrcholů a k-1 hran v_1,e_1,v_2,\ldots,v_{k-1},e_{k-1},v_k (kde k je kladné celé číslo)
    taková, že hrana e_i spojuje vrcholy v_i a v_{i+1}. Stejný vrchol nebo hrana se může v sekvenci objevit vícekrát.
    Říká se, že procházka prochází vrcholem x, pokud existuje alespoň jedno i (1\leq i\leq k) takové, že v_i=x. (Takových i. může být více.)
    Říká se, že procházka začíná a končí na v_1, respektive v_k, a délka chůze je součtem délek e_1, e_2, \ldots, e_{k-1}.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
U_1 V_1 L_1
U_2 V_2 L_2
\vtečky
U_{N-1} V_{N-1} L_{N-1}

Výstup

Vytiskněte N řádků.
I-tý řádek (1\leq i\leq N) by měl obsahovat odpověď na úlohu pro K=i.

Omezení

- 2\leq N\leq 2\krát 10^5
- 1\leq U_i<V_i\leq N
- 1\leq L_i\leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.
- Daný graf je strom.

Ukázkový vstup 1

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

Ukázkový výstup 1

16
22
26
26
26

Pro K=1 je Aokiho optimální tah specifikovat vrchol 3 a Takahashiho optimální tah je postavit vrchol cesty 1 \do vrcholu 2 \do vrcholu 3 \do vrcholu 2 \do vrcholu 1, což má za následek skóre 16.
Pro K=2 je Aokiho optimální tah specifikovat vrcholy 3 a 5 a Takahashiho optimální tah je sestrojit cestu, jako je vrchol 1 \do vrcholu 5 \do vrcholu 1 \do vrcholu 2 \do vrcholu 3 \do vrcholu 2 \ do vrcholu 1, výsledkem je skóre 22.
Pro K\geq 3 je skóre, když oba hráči hrají optimálně, 26.

Ukázkový vstup 2

3
1 2 1000000000
2 3 1000000000

Ukázkový výstup 2

4000000000
4000000000
4000000000

Pozor, odpověď se nemusí vejít do 32bitového celého čísla.


Je dána posloupnost N celých kladných čísel A=(A_1,A_2,\dots,A_N).
Najděte počet dvojic celých čísel (l,r) splňujících podmínku 1\leq l\leq r\leq N tak, že posloupnost (A_l,A_{l+1},\dots,A_r) tvoří aritmetickou posloupnost.
Posloupnost (x_1,x_2,\dots,x_{|x|}) je aritmetickou progresí tehdy a jen tehdy, když existuje d takové, že x_{i+1}-x_i=d\ (1\leq i < |x|).
Zejména posloupnost délky 1 je vždy aritmetickou progresí.

Vstup

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

Výstup

Vypíše odpověď.

Omezení

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

Příklad Vstup 1

4
3 6 9 3

Ukázkový výstup 1

8

Existuje osm dvojic celých čísel (l,r) splňujících podmínku: (1,1),(2,2),(3,3),(4,4),(1,2),(2,3),(3,4),(1,3).
Skutečně, když (l,r)=(1,3), (A_l,\dots,A_r)=(3,6,9) je aritmetická progrese, takže splňuje podmínku.
Když však (l,r)=(2,4), (A_l,\dots,A_r)=(6,9,3) není aritmetickou progresí, takže podmínku nesplňuje.

Vzorový vstup 2

5
1 1 1 1 1

Vzorový výstup 2

15

Všechny dvojice celých čísel (l,r)\ (1\leq l\leq r\leq 5) splňují podmínku.

Vzorový vstup 3

8
87 42 64 86 72 58 44 30

Ukázkový výstup 3

22

Je vám dána posloupnost N kladných celých čísel A=(A_1,A_2,\dots,A_N).
Najděte počet dvojic celých čísel (l,r) splňujících 1\leq l\leq r\leq N tak, že podposloupnost (A_l,A_{l+1},\dots,A_r) tvoří aritmetickou posloupnost.
Posloupnost (x_1,x_2,\dots,x_{|x|}) je aritmetická posloupnost, pokud a jen pokud existuje d takové, že x_{i+1}-x_i=d\ (1\leq i < |x|).
Zvláště posloupnost délky 1 je vždy aritmetická posloupnost.

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

Vytiskněte odpověď.

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
3 6 9 3

Ukázkový výstup 1

8

Existuje osm dvojic celých čísel (l,r) splňujících podmínku: (1,1),(2,2),(3,3),(4,4),(1,2),(2,3),(3,4),(1,3).
Skutečně, když (l,r)=(1,3), (A_l,\dots,A_r)=(3,6,9) je aritmetická posloupnost, takže splňuje podmínku.
Avšak, když (l,r)=(2,4), (A_l,\dots,A_r)=(6,9,3) není aritmetická posloupnost, takže nesplňuje podmínku.

Ukázkový vstup 2

5
1 1 1 1 1

Ukázkový výstup 2

15

Všechny dvojice celých čísel (l,r)\ (1\leq l\leq r\leq 5) splňují podmínku.

Ukázkový vstup 3

8
87 42 64 86 72 58 44 30

Ukázkový výstup 3

22

Je vám dána posloupnost N kladných celých čísel A=(A_1,A_2,\tečky,A_N).
Najděte počet dvojic celých čísel (l,r) splňujících 1\leq l\leq r\leq N tak, že podposloupnost (A_l,A_{l+1},\tečky,A_r) tvoří aritmetickou posloupnost.
Posloupnost (x_1,x_2,\tečky,x_{|x|}) je aritmetickou progresí právě tehdy, když existuje d takové, že x_{i+1}-x_i=d\ (1\leq i < |x| ).
Zejména posloupnost délky 1 je vždy aritmetickou progresí.

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ěď.

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
3 6 9 3

Ukázkový výstup 1

8

Existuje osm párů celých čísel (l,r), které splňují podmínku: (1,1), (2,2), (3,3), (4,4), (1,2), (2,3) ,(3,4),(1,3).
Skutečně, když (l,r)=(1,3), (A_l,\tečky,A_r)=(3,6,9) je aritmetický postup, takže podmínku splňuje.
Když však (l,r)=(2,4), (A_l,\tečky,A_r)=(6,9,3) není aritmetický postup, takže podmínku nesplňuje.

Ukázkový vstup 2

5
1 1 1 1 1

Ukázkový výstup 2

15

Všechny dvojice celých čísel (l,r)\ (1\leq l\leq r\leq 5) splňují podmínku.

Ukázkový vstup 3

8
87 42 64 86 72 58 44 30

Ukázkový výstup 3

22


Jsou vám dána dvě celá čísla A a B.
Kolik celých čísel x splňuje následující podmínku?

- Podmínka: Je možné uspořádat tři celá čísla A, B a x v nějakém pořadí a vytvořit aritmetickou posloupnost.

Posloupnost tří celých čísel p, q a r v tomto pořadí je aritmetickou posloupností právě tehdy, když q-p je rovno r-q.

Vstup

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

Výstup

Vytiskněte počet celých čísel x, která splňují podmínku v příkazu problému.
Dá se dokázat, že odpověď je konečná.

Omezení

- 1 \leq A,B \leq 100
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 7

Ukázkový výstup 1

3

Všechna celá čísla x=3,6,9 splňují podmínku takto:

- Když x=3, například uspořádání x,A,B tvoří aritmetickou posloupnost 3,5,7.
- Když x=6, například uspořádání B,x,A tvoří aritmetickou posloupnost 7,6,5.
- Když x=9, například uspořádání A,B,x tvoří aritmetickou posloupnost 5,7,9.

Naopak neexistují žádné další hodnoty x, které by podmínku splňovaly.
Proto je odpověď 3.

Ukázkový vstup 2

6 1

Ukázkový výstup 2

2

Podmínku splňují pouze x=-4 a 11.

Ukázkový vstup 3

3 3

Ukázkový výstup 3

1

Podmínku splňuje pouze x=3.

Jsou vám dána dvě celá čísla A a B.
Kolik celých čísel x splňuje následující podmínku?

- Podmínka: Je možné uspořádat tři celá čísla A, B a x v nějakém pořadí a vytvořit aritmetickou posloupnost.

Posloupnost tří celých čísel p, q a r v tomto pořadí je aritmetickou posloupností právě tehdy, když q-p je rovno r-q.

Vstup

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

Výstup

Vytiskněte počet celých čísel x, která splňují podmínku v příkazu problému.
Dá se dokázat, že odpověď je konečná.

Omezení

- 1 \leq A,B \leq 100
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 7

Ukázkový výstup 1

3

Všechna celá čísla x=3,6,9 splňují podmínku takto:

- Když x=3, například uspořádání x,A,B tvoří aritmetickou posloupnost 3,5,7.
- Když x=6, například uspořádání B,x,A tvoří aritmetickou posloupnost 7,6,5.
- Když x=9, například uspořádání A,B,x tvoří aritmetickou posloupnost 5,7,9.

Naopak neexistují žádné další hodnoty x, které by podmínku splňovaly.
Proto je odpověď 3.

Ukázkový vstup 2

6 1

Ukázkový výstup 2

2

Podmínku splňují pouze x=-4 a 11.

Ukázkový vstup 3

3 3

Ukázkový výstup 3

1

Pouze x=3 splňuje podmínku.


Takahashi má klavír se 100 klávesami uspořádanými v řadě.
Klávesa i-tá zleva se nazývá klávesa i.
Bude hrát hudbu stisknutím N kláves jednu po druhé.
Při i-tém stisku stiskne klávesu A_i, levou rukou, pokud S_i = L, a pravou rukou, pokud S_i = R.
Před začátkem hraní může umístit obě ruce na libovolné klávesy, které chce, a jeho úroveň únavy je v tomto okamžiku 0.
Během vystoupení, pokud přesune jednu ruku z klávesy x na klávesu y, úroveň únavy se zvýší o |y-x| (naopak, úroveň únavy se nezvýší z žádného jiného důvodu než přesunutím rukou).
K stisknutí určité klávesy rukou musí být tato ruka na dané klávese umístěna.
Najděte minimální možnou úroveň únavy na konci vystoupení.

Vstup

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

Výstup

Vytiskněte minimální úroveň únavy na konci vystoupení.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_i \leq 100
- N a A_i jsou celá čísla.
- S_i je L nebo R.

Ukázkový vstup 1

4
3 L
6 R
9 L
1 R

Ukázkový výstup 1

11

Například, vystoupení může proběhnout následujícím způsobem:

- Nejprve umístěte levou ruku na klávesu 3 a pravou ruku na klávesu 6.
- Stiskněte klávesu 3 levou rukou.
- Stiskněte klávesu 6 pravou rukou.
- Přesuňte levou ruku z klávesy 3 na klávesu 9. Úroveň únavy se zvýší o |9-3| = 6.
- Přesuňte pravou ruku z klávesy 6 na klávesu 1. Úroveň únavy se zvýší o |1-6| = 5.
- Stiskněte klávesu 9 levou rukou.
- Stiskněte klávesu 1 pravou rukou.

V tomto případě je úroveň únavy na konci vystoupení 6+5 = 11, což je minimální možné.

Ukázkový vstup 2

3
2 L
2 L
100 L

Ukázkový výstup 2

98

Ukázkový vstup 3

8
22 L
75 L
26 R
45 R
72 R
81 R
47 L
29 R

Ukázkový výstup 3

188

Takahaši má klavír se 100 klávesami uspořádanými v řadě za sebou.
i-th klávesa zleva se nazývá klávesa i.
Hudbu zahraje postupným stisknutím N kláves.
Pro i-th stisk stiskne klávesu A_i, přičemž použije levou ruku, pokud S_i= L, a pravou ruku, pokud S_i= R.
Než začne hrát, může položit obě ruce na libovolné klávesy a jeho úroveň únavy je v tomto okamžiku rovna nule.
Pokud během hraní přesune jednu ruku z klávesy x na klávesu y, zvýší se jeho úroveň únavy o |y-x| (naopak, úroveň únavy se nezvýší z žádného jiného důvodu, než je přesun rukou).
Aby bylo možné stisknout určitou klávesu rukou, musí být tato ruka na dané klávese položena.
Zjistěte minimální možnou úroveň únavy na konci představení.

Vstup

Zadání se provádí ze standardního zadání v následujícím formátu:
N
A_1 S_1
A_2 S_2
\vdots
A_N S_N

Výstup

Vypište minimální úroveň únavy na konci výkonu.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_i \leq 100
- N a A_i jsou celá čísla.
- S_i je L nebo R.

Vzorový vstup 1

4
3 L
6 R
9 L
1 R

Vzorový výstup 1

11

Provedení lze provést například takto:

- Zpočátku položte levou ruku na klávesu 3 a pravou ruku na klávesu 6.
- Levou rukou stiskněte klávesu 3.
- Pravou rukou stiskněte klávesu 6.
- Přesuňte levou ruku z klávesy 3 na klávesu 9. Úroveň únavy se zvýší o |9-3| = 6.
- Přesuňte pravou ruku z klávesy 6 na klávesu 1. Úroveň únavy se zvýší o |1-6| = 5.
- Stiskněte levou rukou klávesu 9.
- Pravou rukou stiskněte klávesu 1.

 V tomto případě je úroveň únavy na konci výkonu 6+5 = 11, což je minimální možná hodnota.

Vzorový vstup 2

3
2 L
2 L
100 L

Výstup vzorku 2

98

Vstupní vzorek 3

8
22 L
75 L
26 R
45 R
72 R
81 R
47 L
29 R

Vzorový výstup 3

188

Takahashi má klavír se 100 klávesami uspořádanými v řadě.
I-tá klávesa zleva se nazývá klávesa i.
Bude přehrávat hudbu stisknutím N kláves jednu po druhé.
Pro i-té stisknutí stiskne klávesu A_i levou rukou, pokud S_i= L, a pravou rukou, pokud S_i= R.
Než začne hrát, může položit obě ruce na libovolnou klávesu a úroveň jeho únavy je v tomto okamžiku 0.
Pokud během výkonu přesune jednu ruku z klávesy x na klávesu y, úroveň únavy se zvýší o |y-x| (naopak míra únavy se nezvyšuje z jiného důvodu, než je pohyb rukou).
Chcete-li stisknout určitou klávesu rukou, musí být tato ruka položena na tuto klávesu.
Najděte minimální možnou úroveň únavy na konci výkonu.

Vstup

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

Výstup

Vytiskněte minimální úroveň únavy na konci výkonu.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_i \leq 100
- N a A_i jsou celá čísla.
- S_i je L nebo R.

Ukázkový vstup 1

4
3 l
6 R
9 l
1 R

Ukázkový výstup 1

11

Výkon lze provést například takto:

- Nejprve položte levou ruku na klíč 3 a pravou ruku na klíč 6.
- Levou rukou stiskněte tlačítko 3.
- Stiskněte klávesu 6 pravou rukou.
- Přesuňte levou ruku z tlačítka 3 do tlačítka 9. Úroveň únavy se zvýší o |9-3| = 6.
- Přesuňte pravou ruku z tlačítka 6 do tlačítka 1. Úroveň únavy se zvýší o |1-6| = 5.
- Levou rukou stiskněte tlačítko 9.
- Stiskněte tlačítko 1 pravou rukou.

V tomto případě je úroveň únavy na konci výkonu 6+5 = 11, což je minimum možné.

Ukázkový vstup 2

3
2 l
2 l
100 l

Ukázkový výstup 2

98

Ukázkový vstup 3

8
22 l
75 l
26 R
45 R
72 R
81 R
47 l
29 R

Ukázkový výstup 3

188


Existuje N ostrovů a M obousměrných mostů spojujících dva ostrovy. Ostrovy a mosty jsou očíslovány 1, 2, \ldots, N a 1, 2, \ldots, M.
Most i spojuje ostrovy U_i a V_i a čas potřebný k jeho překonání v obou směrech je T_i.
Žádný most nespojuje ostrov sám se sebou, ale je možné, aby dva ostrovy byly přímo spojeny více než jedním mostem.
Mezi libovolnými dvěma ostrovy lze cestovat pomocí některých mostů.
Dostali jste Q dotazů, odpovězte tedy na každý z nich. I-tý dotaz je následující:

Je dáno K_i různých mostů: mosty B_{i,1}, B_{i,2}, \ldots, B_{i,K_i}.
Najděte minimální čas potřebný k cestě z ostrova 1 na ostrov N s použitím každého z těchto mostů alespoň jednou.
Uvažujte pouze čas strávený přejezdem mostů.
Dané mosty můžete přejít v libovolném pořadí a v libovolném směru.

Vstupní údaje

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
U_1 V_1 T_1
U_2 V_2 T_2
\vdots
U_M V_M T_M
Q
K_1
B_{1,1} B_{1,2} \cdots B_{1,{K_1}}
K_2
B_{2,1} B_{2,2} \cdots B_{2,{K_2}}
\vdots
K_Q
B_{Q,1} B_{Q,2} \cdots B_{Q,{K_Q}}

Výstup

Vytiskněte Q řádků. I-tý řádek (1 \leq i \leq Q) by měl obsahovat odpověď na i-tý dotaz jako celé číslo.

Omezení

- 2 \leq N \leq 400
- N-1 \leq M \leq 2 \times 10^5
- 1 \leq U_i < V_i \leq N
- 1 \leq T_i \leq 10^9
- 1 \leq Q \leq 3000
- 1 \leq K_i \leq 5
- 1 \leq B_{i,1} < B_{i,2} < \cdots < B_{i,K_i} \leq M
- Všechny vstupní hodnoty jsou celá čísla.
- Je možné cestovat mezi libovolnými dvěma ostrovy pomocí některých mostů.

Vzorový vstup 1

3 5
1 2 10
1 3 20
1 3 30
2 3 15
2 3 25
2
1
1
2
3 5

Ukázkový výstup 1

25
70

Pro první dotaz potřebujeme zjistit minimální dobu cesty z ostrova 1 na ostrov 3 při použití mostu 1.
Minimálního času je dosaženo použitím mostu 1 pro přesun z ostrova 1 na ostrov 2 a poté použitím mostu 4 pro přesun z ostrova 2 na ostrov 3. Čas je 10 + 15 = 25.
Proto vytiskněte číslo 25 na první řádek.
Pro druhý dotaz potřebujeme najít minimální dobu cesty z ostrova 1 na ostrov 3 při použití obou mostů 3 a 5.
Minimálního času je dosaženo použitím mostu 3 pro přesun z ostrova 1 na ostrov 3, poté pomocí mostu 5 pro přesun na ostrov 2 a nakonec použitím mostu 4 pro návrat na ostrov 3. Čas je 30 + 25 + 15 = 70.
Vytiskněte tedy 70 na druhý řádek.

Vzorkovací vstup 2

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

Ukázkový výstup 2

5
3

U každého dotazu můžete přejít přes určené mosty v obou směrech.

Vzorkovací vstup 3

5 5
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
1 5 1000000000
1
1
3

Ukázkový výstup 3

4000000000

Dejte si pozor na to, že odpověď se nemusí vejít do 32bitového celého čísla.

Existuje N ostrovů a M obousměrných mostů spojujících dva ostrovy. Ostrovy a mosty jsou očíslovány 1, 2, \ldots, N a 1, 2, \ldots, M, respektive.
Most i spojuje ostrovy U_i a V_i a čas potřebný k jeho překročení v obou směrech je T_i.
Žádný most nespojuje ostrov sám se sebou, ale je možné, že dva ostrovy jsou přímo spojeny více než jedním mostem.
Je možné cestovat mezi libovolnými dvěma ostrovy pomocí některých mostů.
Jsou vám dány Q dotazy, odpovězte na každý z nich. i-tý dotaz je následující:

Jsou vám dány K_i různé mosty: mosty B_{i,1}, B_{i,2}, \ldots, B_{i,K_i}.
Najděte minimální čas potřebný na cestu z ostrova 1 na ostrov N při použití každého z těchto mostů alespoň jednou.
Započítává se pouze čas strávený na přechodech mostů.
Můžete překročit dané mosty v libovolném pořadí a v libovolném směru.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
U_1 V_1 T_1
U_2 V_2 T_2
\vdots
U_M V_M T_M
Q
K_1
B_{1,1} B_{1,2} \cdots B_{1,{K_1}}
K_2
B_{2,1} B_{2,2} \cdots B_{2,{K_2}}
\vdots
K_Q
B_{Q,1} B_{Q,2} \cdots B_{Q,{K_Q}}

Výstup

Vytiskněte Q řádků. i-tý řádek (1 \leq i \leq Q) by měl obsahovat odpověď na i-tý dotaz jako celé číslo.

Omezení

- 2 \leq N \leq 400
- N-1 \leq M \leq 2 \times 10^5
- 1 \leq U_i < V_i \leq N
- 1 \leq T_i \leq 10^9
- 1 \leq Q \leq 3000
- 1 \leq K_i \leq 5
- 1 \leq B_{i,1} < B_{i,2} < \cdots < B_{i,K_i} \leq M
- Všechny vstupní hodnoty jsou celá čísla.
- Je možné cestovat mezi libovolnými dvěma ostrovy pomocí některých mostů.

Ukázkový vstup 1

3 5
1 2 10
1 3 20
1 3 30
2 3 15
2 3 25
2
1
1
2
3 5

Ukázkový výstup 1

25
70

Pro první dotaz musíme najít minimální čas na cestu z ostrova 1 na ostrov 3 při použití mostu 1.
Minimální čas je dosažen použitím mostu 1 pro přepravu z ostrova 1 na ostrov 2, poté použitím mostu 4 pro přepravu z ostrova 2 na ostrov 3. Doba trvání je 10 + 15 = 25.
Proto vytiskněte 25 na prvním řádku.
Pro druhý dotaz musíme najít minimální čas na cestu z ostrova 1 na ostrov 3 při použití obou mostů 3 a 5.
Minimální čas je dosažen použitím mostu 3 pro přepravu z ostrova 1 na ostrov 3, poté použitím mostu 5 pro přepravu na ostrov 2 a nakonec použitím mostu 4 pro návrat na ostrov 3. Doba trvání je 30 + 25 + 15 = 70.
Proto vytiskněte 70 na druhém řádku.

Ukázkový vstup 2

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

Ukázkový výstup 2

5
3

Pro každý dotaz můžete překračovat dané mosty v libovolném směru.

Ukázkový vstup 3

5 5
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
1 5 1000000000
1
1
3

Ukázkový výstup 3

4000000000

Dbejte na to, že odpověď se nemusí vejít do 32bitového celého čísla.

Existuje N ostrovů a M obousměrných mostů spojujících dva ostrovy. Ostrovy a mosty jsou očíslovány 1, 2, \ldots, N a 1, 2, \ldots, M.
Most i spojuje ostrovy U_i a V_i a čas potřebný k jeho překonání v obou směrech je T_i.
Žádný most nespojuje ostrov sám se sebou, ale je možné, aby dva ostrovy byly přímo spojeny více než jedním mostem.
Mezi libovolnými dvěma ostrovy lze cestovat pomocí některých mostů.
Dostali jste Q dotazů, odpovězte tedy na každý z nich. I-tý dotaz je následující:

Je dáno K_i různých mostů: mosty B_{i,1}, B_{i,2}, \ldots, B_{i,K_i}.
Najděte minimální čas potřebný k cestě z ostrova 1 na ostrov N s použitím každého z těchto mostů alespoň jednou.
Uvažujte pouze čas strávený přejezdem mostů.
Dané mosty můžete přejít v libovolném pořadí a v libovolném směru.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N M
U_1 V_1 T_1
U_2 V_2 T_2
\vdots
U_M V_M T_M
Q
K_1
B_{1,1} B_{1,2} \cdots B_{1,{K_1}}
K_2
B_{2,1} B_{2,2} \cdots B_{2,{K_2}}
\vdots
K_Q
B_{Q,1} B_{Q,2} \cdots B_{Q,{K_Q}}

Výstup

Vytiskněte Q řádků. I-tý řádek (1 \leq i \leq Q) by měl obsahovat odpověď na i-tý dotaz jako celé číslo.

Omezení

- 2 \leq N \leq 400
- N-1 \leq M \leq 2 \times 10^5
- 1 \leq U_i < V_i \leq N
- 1 \leq T_i \leq 10^9
- 1 \leq Q \leq 3000
- 1 \leq K_i \leq 5
- 1 \leq B_{i,1} < B_{i,2} < \cdots < B_{i,K_i} \leq M
- Všechny vstupní hodnoty jsou celá čísla.
- Mezi libovolnými dvěma ostrovy je možné cestovat pomocí některých mostů.

Ukázkový vstup 1

3 5
1 2 10
1 3 20
1 3 30
2 3 15
2 3 25
2
1
1
2
3 5

Ukázkový výstup 1

25
70

Pro první dotaz potřebujeme zjistit minimální dobu cesty z ostrova 1 na ostrov 3 při použití mostu 1.
Minimálního času dosáhneme tak, že k přesunu z ostrova 1 na ostrov 2 použijeme most 1 a poté k přesunu z ostrova 2 na ostrov 3 použijeme most 4. Čas potřebný k dosažení tohoto výsledku je 10 + 15 = 25.
Proto na první řádek vypište 25.
U druhého dotazu potřebujeme zjistit minimální čas na cestu z ostrova 1 na ostrov 3 při použití obou mostů 3 a 5.
Minimálního času dosáhneme tak, že k přesunu z ostrova 1 na ostrov 3 použijeme most 3, poté k přesunu na ostrov 2 použijeme most 5 a nakonec se pomocí mostu 4 vrátíme na ostrov 3. Čas potřebný k dosažení tohoto výsledku je 30 + 25 + 15 = 70.
Proto na druhém řádku vypište 70.

Ukázkový vstup 2

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

Ukázkový výstup 2

5
3

U každého dotazu můžete zadané mosty překročit v obou směrech.

Ukázkový vstup 3

5 5
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
1 5 1000000000
1
1
3

Ukázkový výstup 3

4000000000

Pozor, odpověď se nemusí vejít do 32bitového celého čísla.


Takahashi se rozhodl udělat takoyaki (chobotnicové koule) a naservírovat je Snukeovi. Takahashi nařídil Snukeovi, aby zvedl pouze levou ruku, pokud chce jíst takoyaki, a jinak pouze pravou.
Informace o tom, kterou ruku Snuke zvedá, dostanete jako dvě celá čísla L a R.
Zvedá levou ruku tehdy a jen tehdy, když L = 1, a pravou ruku právě tehdy, když R = 1. Nemusí postupovat podle pokynů a může zvednout obě ruce nebo nezvedat vůbec žádnou.
Pokud Snuke zvedá pouze jednu ruku, vytiskněte Yes, pokud chce jíst takoyaki, a No, pokud nechce. Pokud zvedá obě ruce nebo nezvedá žádnou, vytiskněte Invalid.
Předpokládejme, že pokud Snuke zvedá pouze jednu ruku, vždy se řídí pokyny.

Vstup

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

Výstup

Vytiskněte Yes, No nebo Invalid podle pokynů v prohlášení o problému.

Omezení

- Každé z L a R je 0 nebo 1.

Ukázkový vstup 1

1 0

Ukázkový výstup 1

Yes

Snuke chce sníst takoyaki, tak zvedá pouze levou ruku.

Ukázkový vstup 2

1 1

Ukázkový výstup 2

Invalid

Snuke zvedá obě ruce.

Takahashi se rozhodl udělat takoyaki (chobotnicové kuličky) a naservírovat je Snukovi. Takahashi nařídil Snukovi, aby zvedl pouze levou ruku, pokud chce jíst takoyaki, a jinak pouze pravou ruku.
Dostanete informaci o tom, kterou kombinaci Snuke navýšil jako dvě celá čísla L a R.
Zvedá levou ruku právě tehdy, když L = 1, a pravou ruku zvedá právě tehdy, když R = 1. Nemusí se řídit pokyny a může zvednout obě ruce nebo nezvednout vůbec žádnou ruku.
Pokud Snuke zvedá pouze jednu ruku, vytiskněte Yes, pokud chce jíst takoyaki, a No, pokud nechce. Pokud zvedá obě ruce nebo nezvedá žádnou ruku, vytiskněte Invalid.
Předpokládejte, že pokud Snuke zvedá pouze jednu ruku, vždy se řídí pokyny.

Vstup

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

Výstup

Vytiskněte Yes, No nebo Invalid podle pokynů v popisu problému.

Omezení

- Každý z L a R je 0 nebo 1.

Vzorový vstup 1

1 0

Ukázkový výstup 1

Yes

Snuke chce takoyaki sníst, a tak zvedá pouze levou ruku.

Vzorkovací vstup 2

1 1

Ukázkový výstup 2

Invalid

Snuke zvedá obě ruce.


Kladné celé číslo n nazýváme dobrým celým číslem právě tehdy, když je součet jeho kladných dělitelů dělitelný 3.
Jsou vám dána dvě kladná celá čísla N a M. Najděte počet, modulo 998244353, posloupností A délky-M kladných celých čísel tak, že součin prvků v A je dobré celé číslo nepřesahující N.

Vstup

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

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq N \leq 10^{10}
- 1 \leq M \leq 10^5
- N a M jsou celá čísla.

Ukázkový vstup 1

10 1

Ukázkový výstup 1

5

Existuje pět sekvencí, které splňují podmínky:

- (2)
- (5)
- (6)
- (8)
- (10)

Ukázkový vstup 2

4 2

Ukázkový výstup 2

2

Existují dvě sekvence, které splňují podmínky:

- (1, 2)
- (2, 1)

Ukázkový vstup 3

370 907

Ukázkový výstup 3

221764640

Ukázkový vstup 4

10000000000 100000

Ukázkový výstup 4

447456146

Nazveme kladné celé číslo n dobrým číslem, pokud a jen pokud je součet jeho kladných dělitelů dělitelný 3. Jsou vám dána dvě kladná celá čísla N a M. Najděte počet, modulo 998244353, posloupností délky M z kladných celých čísel takových, že součin prvků v posloupnosti je dobré číslo nepřesahující N.

Vstup

Vstup je zadán ze standardního vstupu ve formátu:
N M

Výstup

Vypište odpověď.

Omezení

- 1 \leq N \leq 10^{10}
- 1 \leq M \leq 10^5
- N a M jsou celá čísla.

Ukázkový vstup 1

10 1

Ukázkový výstup 1

5

Existuje pět posloupností, které splňují podmínky:

- (2)
- (5)
- (6)
- (8)
- (10)

Ukázkový vstup 2

4 2

Ukázkový výstup 2

2

Existují dvě posloupnosti, které splňují podmínky:

- (1, 2)
- (2, 1)

Ukázkový vstup 3

370 907

Ukázkový výstup 3

221764640

Ukázkový vstup 4

10000000000 100000

Ukázkový výstup 4

447456146

Kladné celé číslo n nazýváme dobrým celým číslem tehdy a jen tehdy, je-li součet jeho kladných dělitelů dělitelný třemi.
Jsou dána dvě kladná celá čísla N a M. Najděte modulo 998244353 počet posloupností délky M A kladných celých čísel takových, že součin prvků v A je dobré celé číslo nepřevyšující N.

Vstupní údaje

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

Výstup

Vypište odpověď.

Omezení

- 1 \leq N \leq 10^{10}
- 1 \leq M \leq 10^5
- N a M jsou celá čísla.

Ukázka Vstupní údaje 1

10 1

Ukázkový výstup 1

5

Existuje pět posloupností, které splňují podmínky:

- (2)
- (5)
- (6)
- (8)
- (10)

Vzorový vstup 2

4 2

Vzorový výstup 2

2

Existují dvě posloupnosti, které splňují podmínky:

- (1, 2)
- (2, 1)

Vzorový vstup 3

370 907

Vzorový výstup 3

221764640

Vzorový vstup 4

10000000000 100000

Ukázka výstupu 4

447456146


Máte k dispozici dva řetězce S a T složené z malých anglických písmen. Zde mají řetězce S a T stejnou délku.
Nechť X je prázdné pole a opakujte následující operaci, dokud se S nerovná T:

- Změňte jeden znak v S a připojte S na konec X.

Najděte pole řetězců X s minimálním počtem prvků získaných tímto způsobem. Pokud existuje více takových polí s minimálním počtem prvků, najděte mezi nimi lexikograficky nejmenší.
 Co je to lexikografické uspořádání na polích řetězců?
Řetězec S = S_1 S_2 \ldots S_N délky N je lexikograficky menší než řetězec T = T_1 T_2 \ldots T_N délky N, jestliže existuje celé číslo 1 \leq i \leq N takové, že jsou splněny obě následující podmínky:

- S_1 S_2 \ldots S_{i-1} = T_1 T_2 \ldots T_{i-1}
- S_i je v abecedním pořadí dříve než T_i.

Pole řetězců X = (X_1,X_2,\ldots,X_M) s M prvky je lexikograficky menší než pole řetězců Y = (Y_1,Y_2,\ldots,Y_M) s M prvky, jestliže existuje celé číslo 1 \leq j \leq M takové, že jsou splněny obě následující podmínky:

- (X_1,X_2,\ldots,X_{j-1}) = (Y_1,Y_2,\ldots,Y_{j-1})
- X_j je lexikograficky menší než Y_j.

Vstup

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

Výstup

Nechť M je počet prvků v požadovaném poli. Vypište M + 1 řádků.
První řádek by měl obsahovat hodnotu M.
Řádek i + 1 (1 \leq i \leq M) by měl obsahovat i-tý prvek pole.

Omezení

- S a T jsou řetězce složené z malých anglických písmen o délce mezi 1 a 100 včetně.
- Délky S a T jsou stejné.

Vzorový vstup 1

adbe
bcbc

Vzorový výstup 1

3
acbe
acbc
bcbc

Na začátku je S = adbe.
X = ( acbe , acbc , bcbc ) získáme provedením následujících operací:

-
Změníme S na acbe a na konec X připojíme acbe.

-
Změníme S na acbc a na konec X připojíme acbc.

-
Změňte S na bcbc a připojte bcbc na konec X.

Vzorový vstup 2

abcde
abcde

Vzorový výstup 2

0

Vzorový vstup 3

afwgebrw
oarbrenq

Vzorový výstup 3

8
aawgebrw
aargebrw
aarbebrw
aarbebnw
aarbebnq
aarbeenq
aarbrenq
oarbrenq

Máte dány dva řetězce S a T složené z malých písmen anglické abecedy. Zde mají S a T stejnou délku.
Nechť X je prázdné pole a opakujte následující operaci, dokud se S nerovná T:

- Změňte jeden znak v S a přidejte S na konec X.

Najděte pole řetězců X s minimálním počtem prvků získaných tímto způsobem. Pokud existuje více takových polí s minimálním počtem prvků, najděte mezi nimi to lexikograficky nejmenší.
Co je lexikografické pořadí na polích řetězců?
Řetězec S = S_1 S_2 \ldots S_N délky N je lexikograficky menší než řetězec T = T_1 T_2 \ldots T_N délky N, pokud existuje celé číslo 1 \leq i \leq N takové, že obě následující podmínky jsou splněny:

-  S_1 S_2 \ldots S_{i-1} = T_1 T_2 \ldots T_{i-1}
-  S_i přichází dříve než T_i v abecedním pořadí.

Pole řetězců X = (X_1,X_2,\ldots,X_M) s M prvky je lexikograficky menší než pole řetězců Y = (Y_1,Y_2,\ldots,Y_M) s M prvky, pokud existuje celé číslo 1 \leq j \leq M, takové, že obě následující podmínky jsou splněny:

-  (X_1,X_2,\ldots,X_{j-1}) = (Y_1,Y_2,\ldots,Y_{j-1})
-  X_j je lexikograficky menší než Y_j.

Vstup

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

Výstup

Nechť M je počet prvků v požadovaném poli. Vytiskněte M + 1 řádek.
První řádek by měl obsahovat hodnotu M.
i + 1-tý řádek (1 \leq i \leq M) by měl obsahovat i-tý prvek pole.

Omezení

- S a T jsou řetězce složené z malých písmen anglické abecedy s délkou mezi 1 a 100 včetně.
- Délky S a T jsou stejné.

Ukázkový vstup 1

adbe
bcbc

Ukázkový výstup 1

3
acbe
acbc
bcbc

Na začátku je S = adbe.
Můžeme získat X = ( acbe , acbc , bcbc ) provedením následujících operací:

-
Změnit S na acbe a připojit acbe na konec X.

-
Změnit S na acbc a připojit acbc na konec X.

-
Změnit S na bcbc a připojit bcbc na konec X.

Ukázkový vstup 2

abcde
abcde

Ukázkový výstup 2

0

Ukázkový vstup 3

afwgebrw
oarbrenq

Ukázkový výstup 3

8
aawgebrw
aargebrw
aarbebrw
aarbebnw
aarbebnq
aarbeenq
aarbrenq
oarbrenq

Dostanete dva řetězce S a T skládající se z malých anglických písmen. Zde mají S a T stejnou délku.
Nechť X je prázdné pole a opakujte následující operaci, dokud se S nerovná T:

- Změňte jeden znak v S a přidejte S na konec X.

Najděte pole řetězců X s minimálním počtem takto získaných prvků. Pokud existuje více takových polí s minimálním počtem prvků, najděte z nich lexikograficky nejmenší.
 Co je lexikografický řád na polích řetězců?
Řetězec S = S_1 S_2 \ldots S_N délky N je lexikograficky menší než řetězec T = T_1 T_2 \ldots T_N délky N, pokud existuje celé číslo 1 \leq i \leq N takové, že jsou splněny obě následující podmínky:

- S_1 S_2 \ldots S_{i-1} = T_1 T_2 \ldots T_{i-1}
- S_i přichází dříve než T_i v abecedním pořadí.

Pole řetězců X = (X_1,X_2,\ldots,X_M) s M prvky je lexikograficky menší než pole řetězců Y = (Y_1,Y_2,\ldots,Y_M) s M prvky, pokud existuje celé číslo 1 \leq j \leq M tak, že jsou splněny obě následující podmínky:

- (X_1,X_2,\ldots,X_{j-1}) = (Y_1,Y_2,\ldots,Y_{j-1})
- X_j je lexikograficky menší než Y_j.

Vstup

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

Výstup

Nechť M je počet prvků v požadovaném poli. Tisk M + 1 řádků.
První řádek by měl obsahovat hodnotu M.
i + 1-tý řádek (1 \leq i \leq M) by měl obsahovat i-tý prvek pole.

Omezení

- S a T jsou řetězce skládající se z malých anglických písmen o délce mezi 1 a 100 včetně.
- Délky S a T jsou stejné.

Ukázkový vstup 1

adbe
bcbc

Ukázkový výstup 1

3
acbe
acbc
bcbc

Zpočátku S = adbe.
X = ( acbe , acbc , bcbc ) můžeme získat provedením následujících operací:

-
Změňte S na acbe a připojte acbe na konec X.

-
Změňte S na acbc a připojte acbc na konec X.

-
Změňte S na bcbc a přidejte bcbc na konec X.

Ukázkový vstup 2

abcde
abcde

Ukázkový výstup 2

0

Ukázkový vstup 3

afwgebrw
oarbrenq

Ukázkový výstup 3

8
aawgebrw
aargebrw
aarbebrw
aarbebnw
aarbebnq
aarbeenq
Aarbrenq
oarbrenq


K dispozici je mřížka s řádky H a sloupci W. Nechť (i, j) označíme buňku v i-tém řádku shora a j-tého sloupce zleva.
Zpočátku je v každé buňce jedna stěna.
Po zpracování Q dotazů vysvětlených níže v pořadí, v jakém jsou uvedeny, zjistěte počet zbývajících zdí.
V q-tém dotazu jsou vám zadána dvě celá čísla R_q a C_q.
Umístíte bombu na (R_q, C_q), abyste zničili zdi. V důsledku toho dojde k následujícímu procesu.

- Pokud je zeď na (R_q, C_q), zničte tuto zeď a ukončete proces.
- Pokud v (R_q, C_q) není žádná zeď, zničte první zdi, které se objeví při pohledu nahoru, dolů, doleva a doprava od (R_q, C_q). Přesněji řečeno, následující čtyři procesy probíhají současně:
- Pokud existuje i \lt R_q takové, že zeď existuje v (i, C_q) a žádná zeď neexistuje v (k, C_q) pro všechna i \lt k \lt R_q, zničte zeď v (i, C_q).
- Pokud existuje i \gt R_q taková, že zeď existuje v (i, C_q) a žádná zeď neexistuje v (k, C_q) pro všechny R_q \lt k \lt i, zničte zeď v (i, C_q).
- Pokud existuje j \lt C_q taková, že zeď existuje v (R_q, j) a žádná zeď neexistuje v (R_q, k) pro všechna j \lt k \lt C_q, zničte zeď v (R_q, j).
- Pokud existuje j \gt C_q taková, že zeď existuje v (R_q, j) a žádná zeď neexistuje v (R_q, k) pro všechny C_q \lt k \lt j, zničte zeď v (R_q, j).

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
H W Q
R_1 C_1
R_2 C_2
\vdots
R_Q C_Q

Výstup

Po zpracování všech dotazů se vytiskne počet zbývajících zdí.

Omezení

- 1 \leq H, W
- H \times W \leq 4 \times 10^5
- 1 \leq Q \leq 2 \times 10^5
- 1 \leq R_q \leq H
- 1 \leq C_q \leq W
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

2 4 3
1 2
1 2
1 3

Ukázkový výstup 1

2

Proces zpracování dotazů lze vysvětlit následovně:

- V 1. dotazu: (R_1, C_1) = (1, 2). Na (1, 2) je zeď, takže zeď na (1, 2) je zničena.
- Ve 2. dotazu: (R_2, C_2) = (1, 2). V (1, 2) není žádná zeď, takže stěny v (2,2),(1,1),(1,3), což jsou první stěny, které se objeví při pohledu nahoru, dolů, doleva a doprava od (1, 2), jsou zničeny.
- Ve 3. dotazu, (R_3, C_3) = (1, 3). V (1, 3) není žádná zeď, takže zdi v (2,3),(1,4), což jsou první zdi, které se objeví při pohledu nahoru, dolů, doleva a doprava od (1, 3), jsou zničeny.

Po zpracování všech dotazů zbývají dvě zdi, a to (2, 1) a (2, 4).

Vzorkovací vstup 2

5 5 5
3 3
3 3
3 2
2 2
1 2

Ukázkový výstup 2

10

Vzorkovací vstup 3

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

Ukázkový výstup 3

2

Je mřížka s H řádky a W sloupci. Nechť (i, j) označuje buňku v i-tém řádku shora a j-tém sloupci zleva.
Původně je v každé buňce jedna zeď.
Po zpracování Q dotazů, vysvětlených níže v pořadí, jak jsou zadány, zjistěte počet zbývajících zdí.
V q-tém dotazu jsou vám dána dvě celá čísla R_q a C_q.
Umístíte bombu na (R_q, C_q) k ničení zdí. V důsledku toho probíhá následující proces.

- Pokud je na (R_q, C_q) zeď, zničte tuto zeď a ukončete proces.
- Pokud na (R_q, C_q) není zeď, zničte první zdi, které se objeví při pohledu nahoru, dolů, doleva a doprava od (R_q, C_q). Přesněji řečeno, následující čtyři procesy probíhají současně:
- Pokud existuje i \lt R_q takové, že na (i, C_q) existuje zeď a na (k, C_q) pro všechna i \lt k \lt R_q neexistuje zeď, zničte zeď na (i, C_q).
- Pokud existuje i \gt R_q takové, že na (i, C_q) existuje zeď a na (k, C_q) pro všechna R_q \lt k \lt i neexistuje zeď, zničte zeď na (i, C_q).
- Pokud existuje j \lt C_q takové, že na (R_q, j) existuje zeď a na (R_q, k) pro všechna j \lt k \lt C_q neexistuje zeď, zničte zeď na (R_q, j).
- Pokud existuje j \gt C_q takové, že na (R_q, j) existuje zeď a na (R_q, k) pro všechna C_q \lt k \lt j neexistuje zeď, zničte zeď na (R_q, j).

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
H W Q
R_1 C_1
R_2 C_2
\vdots
R_Q C_Q

Výstup

Vytiskněte počet zbývajících zdí po zpracování všech dotazů.

Omezení

- 1 \leq H, W
- H \times W \leq 4 \times 10^5
- 1 \leq Q \leq 2 \times 10^5
- 1 \leq R_q \leq H
- 1 \leq C_q \leq W
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 4 3
1 2
1 2
1 3

Ukázkový výstup 1

2

Proces zpracování dotazů lze vysvětlit následovně:

- V 1. dotazu, (R_1, C_1) = (1, 2). Na (1, 2) je zeď, takže zničte zeď na (1, 2).
- Ve 2. dotazu, (R_2, C_2) = (1, 2). Na (1, 2) není zeď, takže zničte zdi na (2,2),(1,1),(1,3), které jsou prvními zdmi, které se objeví při pohledu nahoru, dolů, doleva a doprava od (1, 2).
- Ve 3. dotazu, (R_3, C_3) = (1, 3). Na (1, 3) není zeď, takže zničte zdi na (2,3),(1,4), které jsou prvními zdmi, které se objeví při pohledu nahoru, dolů, doleva a doprava od (1, 3).

Po zpracování všech dotazů zbývají dvě zdi na (2, 1) a (2, 4).

Ukázkový vstup 2

5 5 5
3 3
3 3
3 2
2 2
1 2

Ukázkový výstup 2

10

Ukázkový vstup 3

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

Ukázkový výstup 3

2

Je zde mřížka s H řádky a W sloupci. Označme (i, j) buňku na i-tém řádku shora a j-tý sloupec zleva.
Zpočátku je v každé buňce jedna stěna.
Po zpracování Q dotazů vysvětlených níže v pořadí, v jakém jsou uvedeny, zjistěte počet zbývajících stěn.
V q-tém dotazu dostanete dvě celá čísla R_q a C_q.
Umístěte bombu na (R_q, C_q), abyste zničili zdi. V důsledku toho dojde k následujícímu procesu.

- Pokud je u (R_q, C_q zeď), zničte tuto zeď a ukončete proces.
- Pokud u (R_q, C_q) není žádná zeď, zničte první zdi, které se objeví při pohledu nahoru, dolů, doleva a doprava z (R_q, C_q). Přesněji řečeno, následující čtyři procesy probíhají současně:
- Pokud existuje i \lt R_q takové, že existuje zeď v (i, C_q) a žádná zeď neexistuje v (k, C_q) pro všechna i \lt k \lt R_q, zničte zeď v (i, C_q).
- Pokud existuje i \gt R_q takové, že existuje zeď v (i, C_q) a žádná zeď neexistuje v (k, C_q) pro všechna R_q \lt k \lt i, zničte zeď v (i, C_q).
- Pokud existuje j \lt C_q takové, že existuje zeď v (R_q, j) a žádná zeď neexistuje v (R_q, k) pro všechna j \lt k \lt C_q, zničte zeď v (R_q, j).
- Pokud existuje j \gt C_q takové, že existuje zeď v (R_q, j) a žádná zeď neexistuje v (R_q, k) pro všechny C_q \lt k \lt j, zničte zeď v (R_q, j).

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
H W Q
R_1 C_1
R_2 C_2
\vdots
R_Q C_Q

Výstup

Po zpracování všech dotazů vytiskněte počet zbývajících stěn.

Omezení

- 1 \ leq H, W
- H \krát W \leq 4 \times10^5
- 1 \leq Q \leq 2 \times 10^5
- 1 \leq R_q \leq H
- 1 \leq C_q \leq W
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 4 3
1 2
1 2
1 3

Ukázkový výstup 1

2

Proces zpracování dotazů lze vysvětlit následovně:

- V 1. dotazu (R_1, C_1) = (1, 2). U (1, 2) je zeď, takže zeď v (1, 2) je zničena.
- Ve 2. dotazu (R_2, C_2) = (1, 2). Na (1, 2) není žádná stěna, takže stěny na (2,2), (1,1), (1,3), což jsou první stěny, které se objeví při pohledu nahoru, dolů, doleva a doprava z (1, 2), jsou zničeny.
- Ve 3. dotazu (R_3, C_3) = (1, 3). V (1, 3) není žádná stěna, takže stěny v (2,3), (1,4), což jsou první stěny, které se objeví při pohledu nahoru, dolů, doleva a doprava z (1, 3) , jsou zničeny.

Po zpracování všech dotazů zbývají dvě stěny, na (2, 1) a (2, 4).

Ukázkový vstup 2

5 5 5
3 3
3 3
3 2
2 2
1 2

Ukázkový výstup 2

10

Ukázkový vstup 3

4 3 10
2 2
4 1
11
4 2
2 1
3 1
1 3
1 2
4 3
4 2

Ukázkový výstup 3

2


Je dána posloupnost A = (A_1, A_2, \dots, A_N) délky N a celé číslo K.
Existuje 2^{N-1} způsobů, jak rozdělit A na několik souvislých podposloupností. Kolik z těchto dělení nemá žádnou podposloupnost, jejíž součet prvků je K? Najděte počet dělení modulo 998244353.
Zde „rozdělit A na několik souvislých podposloupností“ znamená následující postup.

- Libovolně vyberte počet k (1 \leq k \leq N) podposloupností a celočíselnou posloupnost (i_1, i_2, \dots, i_k, i_{k+1}) splňující 1 = i_1 \lt i_2 \lt \dots \lt i_k \lt i_{k+1} = N+1.
- Pro každé 1 \leq n \leq k se n-tá podposloupnost vytvoří tak, že se vezmou i_n-tý až (i_{n+1} - 1)-tý prvek z A a zachová se jejich pořadí.

Zde jsou některé příklady rozdělení pro A = (1, 2, 3, 4, 5):

- (1, 2, 3), (4), (5)
- (1, 2), (3, 4, 5)
- (1, 2, 3, 4, 5)

Vstup

Vstup je zadán ze standardního vstupu ve formátu:
N K
A_1 A_2 \dots A_N

Výstup

Vytiskněte počet dělení modulo 998244353.

Omezení

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

Ukázkový vstup 1

3 3
1 2 3

Ukázkový výstup 1

2

Existují dvě dělení, která splňují podmínku v zadání:

- (1), (2, 3)
- (1, 2, 3)

Ukázkový vstup 2

5 0
0 0 0 0 0

Ukázkový výstup 2

0

Ukázkový vstup 3

10 5
-5 -1 -7 6 -6 -2 -5 10 2 -10

Ukázkový výstup 3

428

Je vám dána posloupnost A = (A_1, A_2, \dots, A_N) délky N a celého čísla K.
Existují 2^{N-1} způsoby, jak rozdělit A na několik sousedících podposloupností. Kolik z těchto dělení nemá žádnou podposloupnost, jejíž prvky jsou součtem K? Najděte počet modulo 998244353.
Zde "rozdělit A na několik sousedních dílčích sekvencí" znamená následující postup.

- Volně zvolte počet k (1 \leq k \leq N) podposloupností a celočíselnou posloupnost (i_1, i_2, \dots, i_k, i_{k+1}) splňující 1 = i_1 \lt i_2 \lt \dots \ lt i_k \lt i_{k+1} = N+1.
- Pro každý 1 \leq n \leq k se vytvoří n-tá dílčí posloupnost tak, že se i_n-tý až (i_{n+1} - 1)-tý prvek A zachová při zachování jejich pořadí.

Zde je několik příkladů dělení pro A = (1, 2, 3, 4, 5):

- (1, 2, 3), (4), (5)
- (1, 2), (3, 4, 5)
- (1, 2, 3, 4, 5)

Vstup

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

Výstup

Vytiskněte výsledek modulo 998244353.

Omezení

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

Ukázkový vstup 1

3 3
1 2 3

Ukázkový výstup 1

2

Existují dvě dělení, která splňují podmínku v příkazu problému:

- (1), (2, 3)
- (1, 2, 3)

Ukázkový vstup 2

50
0 0 0 0 0

Ukázkový výstup 2

0

Ukázkový vstup 3

10 5
-5 -1 -7 6 -6 -2 -5 10 2 -10

Ukázkový výstup 3

428

Je dána posloupnost A = (A_1, A_2, \dots, A_N) délky N a celé číslo K.
Existuje 2^{N-1} způsobů, jak rozdělit A na několik sousedících podřetězců. Kolik z těchto dělení nemá žádnou posloupnost, jejíž prvky by byly rovny K? Najděte počet modulo 998244353.
Zde „rozdělit A na několik souvislých podřetězců“ znamená následující postup.

- Volně zvolte počet k (1 \leq k \leq N) podřetězců a celočíselnou posloupnost (i_1, i_2, \dots, i_k, i_{k+1}) splňující podmínku 1 = i_1 \lt i_2 \lt \dots \lt i_k \lt i_{k+1} = N+1.
- Pro každé 1 \leq n \leq k se n-tá posloupnost vytvoří tak, že se vezme i_n-tý až (i_{n+1} - 1)-tý prvek A, přičemž se zachová jejich pořadí.

Zde je několik příkladů dělení pro A = (1, 2, 3, 4, 5):

- (1, 2, 3), (4), (5)
- (1, 2), (3, 4, 5)
- (1, 2, 3, 4, 5)

Vstup

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

Výstup

Vypíše počet modulo 998244353.

Omezení

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

Ukázkový vstup 1

3 3
1 2 3

Ukázkový výstup 1

2

Existují dvě rozdělení, která splňují podmínku v zadání problému:

- (1), (2, 3)
- (1, 2, 3)

Vzorový vstup 2

5 0
0 0 0 0 0

Vzorový výstup 2

0

Vzorový vstup 3

10 5
-5 -1 -7 6 -6 -2 -5 10 2 -10

Výstupní vzorek 3

428


Existuje N typů prvků s čísly 1, 2, \ldots, N.
Prvky lze vzájemně kombinovat. Při kombinaci prvků i a j se transformují na prvek A_{i, j}, pokud i \geq j, a na prvek A_{j, i}, pokud i < j.
Začněte prvkem 1 a kombinujte jej s prvky 1, 2, \ldots, N v tomto pořadí. Najděte výsledný prvek, který získáte.

Vstup

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

Výstup

Vypište číslo představující konečný získaný prvek.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_{i, j} \leq N
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

4
3
2 4
3 1 2
2 1 2 4

Ukázka výstupu 1

2

-
Kombinací prvku 1 s prvkem 1 vznikne prvek 3.

-
Kombinací prvku 3 s prvkem 2 vznikne prvek 1.

-
Kombinací prvku 1 s prvkem 3 vznikne prvek 3.

-
Kombinací prvku 3 s prvkem 4 vznikne prvek 2.

Hodnota, která se má vypsat, je tedy 2.

Ukázka vstupu 2

5
5
5 5
5 5 5
5 5 5 5
5 5 5 5 5

Výstupní vzorek 2

5

Vzorový vstup 3

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

Ukázka výstupu 3

5

Existuje N typů prvků očíslovaných 1, 2, \ldots, N.
Prvky lze vzájemně kombinovat. Když jsou prvky i a j sloučeny, transformují se na prvek A_{i, j}, pokud i \geq j, a na prvek A_{j, i}, pokud i < j.
Počínaje prvkem 1 jej zkombinujte s prvky 1, 2, \ldots, N v tomto pořadí. Najděte konečný získaný prvek.

Vstup

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

Výstup

Vytiskněte číslo představující konečný získaný prvek.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_{i, j} \leq N
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
3
2 4
3 1 2
2 1 2 4

Ukázkový výstup 1

2

-
Kombinací prvku 1 s prvkem 1 vznikne prvek 3.

-
Kombinací prvku 3 s prvkem 2 vznikne prvek 1.

-
Kombinací prvku 1 s prvkem 3 vznikne prvek 3.

-
Kombinací prvku 3 s prvkem 4 vznikne prvek 2.

Proto je hodnota k tisku 2.

Ukázkový vstup 2

5
5
5 5
5 5 5
5 5 5 5
5 5 5 5 5

Ukázkový výstup 2

5

Ukázkový vstup 3

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

Ukázkový výstup 3

5

Existuje N typů prvků očíslovaných 1, 2, \ldots, N.
Prvky lze vzájemně kombinovat. Když jsou prvky i a j sloučeny, transformují se na prvek A_{i, j}, pokud i \geq j, a na prvek A_{j, i}, pokud i < j.
Počínaje prvkem 1 jej zkombinujte s prvky 1, 2, \ldots, N v tomto pořadí. Najděte konečný získaný prvek.

Vstup

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

Výstup

Vytiskněte číslo představující konečný získaný prvek.

Omezení

- 1 \leq N \leq 100
- 1 \leq A_{i, j} \leq N
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
3
2 4
3 1 2
2 1 2 4

Ukázkový výstup 1

2

-
Kombinací prvku 1 s prvkem 1 vznikne prvek 3.

-
Kombinací prvku 3 s prvkem 2 vznikne prvek 1.

-
Kombinací prvku 1 s prvkem 3 vznikne prvek 3.

-
Kombinací prvku 3 s prvkem 4 vznikne prvek 2.

Proto je hodnota, která se má vytisknout, 2.

Ukázkový vstup 2

5
5
5 5
5 5 5
5 5 5 5
5 5 5 5 5

Ukázkový výstup 2

5

Ukázkový vstup 3

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

Ukázkový výstup 3

5


Existuje kruhový dort rozdělený na N kusů řeznými čarami. Každá čára řezu je úsečka spojující střed kruhu s bodem na oblouku.
Kusy a čáry řezu jsou očíslovány 1, 2, \ldots, N ve směru hodinových ručiček a kus i má hmotnost A_i. Kus 1 se také nazývá kus N + 1.
Čára řezu i je mezi kusy i a i + 1 a jsou uspořádány ve směru hodinových ručiček v tomto pořadí: kus 1, čára řezu 1, kus 2, čára řezu 2, \ldots, kus N, čára řezu N.
Tento koláč chceme rozdělit mezi K lidí za následujících podmínek. Nechť w_i je součet hmotností kusů přijatých i-tou osobou.

- Každá osoba obdrží jeden nebo více po sobě jdoucích kusů.
- Nejsou žádné kusy, které nikdo nedostane.
- Za výše uvedených dvou podmínek je \min(w_1, w_2, \ldots, w_K) maximalizováno.

Najděte hodnotu \min(w_1, w_2, \ldots, w_K) v dělení, které splňuje podmínky, a počet čar řezu, které nebyly nikdy oříznuty v děleních splňujících podmínky. Zde je čára řezu i považována za řez, pokud jsou kusy i a i + 1 dány různým lidem.

Vstup

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

Výstup

Nechť x je hodnota \min(w_1, w_2, \ldots, w_K) v dělení, které splňuje podmínky, a y je počet čar řezu, které nejsou nikdy řezány. Vytiskněte x a y v tomto pořadí, oddělené mezerou.

Omezení

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

Ukázkový vstup 1

5 2
3 6 8 6 4

Ukázkový výstup 1

13 1

Následující oddíly splňují podmínky:

- Dejte kusy 2, 3 jedné osobě a kusy 4, 5, 1 druhé. Kusy 2, 3 mají celkovou hmotnost 14 a kusy 4, 5, 1 mají celkovou hmotnost 13.
- Dejte kusy 3, 4 jedné osobě a kusy 5, 1, 2 druhé. Kusy 3, 4 mají celkovou hmotnost 14 a kusy 5, 1, 2 mají celkovou hmotnost 13.

Hodnota \min(w_1, w_2) v děleních splňujících podmínky je 13 a existuje jedna čára řezu, která není v žádném dělení oříznuta: čára řezu 5.

Ukázkový vstup 2

6 3
4 7 11 3 9 2

Ukázkový výstup 2

11 1

Ukázkový vstup 3

10 3
2 9 8 1 7 9 1 3 5 8

Ukázkový výstup 3

17 4

Existuje kruhový dort rozdělený na N kusů řeznými čarami. Každá čára řezu je úsečka spojující střed kruhu s bodem na oblouku.
Kusy a čáry řezu jsou očíslovány 1, 2, \ldots, N ve směru hodinových ručiček a kus i má hmotnost A_i. Kus 1 se také nazývá kus N + 1.
Čára řezu i je mezi kusy i a i + 1 a jsou uspořádány ve směru hodinových ručiček v tomto pořadí: kus 1, čára řezu 1, kus 2, čára řezu 2, \ldots, kus N, čára řezu N.
Tento koláč chceme rozdělit mezi K lidí za následujících podmínek. Nechť w_i je součet hmotností kusů přijatých i-tou osobou.

- Každá osoba obdrží jeden nebo více po sobě jdoucích kusů.
- Nejsou žádné kusy, které nikdo nedostane.
- Za výše uvedených dvou podmínek je \min(w_1, w_2, \ldots, w_K) maximalizováno.

Najděte hodnotu \min(w_1, w_2, \ldots, w_K) v dělení, které splňuje podmínky, a počet čar řezu, které nebyly nikdy oříznuty v děleních splňujících podmínky. Zde je čára řezu i považována za řez, pokud jsou kusy i a i + 1 dány různým lidem.

Vstup

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

Výstup

Nechť x je hodnota \min(w_1, w_2, \ldots, w_K) v dělení, které splňuje podmínky, a y je počet čar řezu, které nejsou nikdy řezány. Vytiskněte x a y v tomto pořadí, oddělené mezerou.

Omezení

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

Ukázkový vstup 1

5 2
3 6 8 6 4

Ukázkový výstup 1

13 1

Následující oddíly splňují podmínky:

- Dejte figurky 2, 3 jedné osobě a figurky 4, 5, 1 druhé. Kusy 2, 3 mají celkovou hmotnost 14 a kusy 4, 5, 1 mají celkovou hmotnost 13.
- Dejte figurky 3, 4 jedné osobě a figurky 5, 1, 2 druhé. Kusy 3, 4 mají celkovou hmotnost 14 a kusy 5, 1, 2 mají celkovou hmotnost 13.

Hodnota \min(w_1, w_2) v děleních splňujících podmínky je 13 a existuje jedna čára řezu, která není v žádném dělení oříznuta: čára řezu 5.

Ukázkový vstup 2

6 3
4 7 11 3 9 2

Ukázkový výstup 2

11 1

Ukázkový vstup 3

10 3
2 9 8 1 7 9 1 3 5 8

Ukázkový výstup 3

17 4

Je zde kruhový dort rozdělený řeznými čarami na N dílů. Každá řezná čára je úsečka spojující střed kruhu s bodem na oblouku.
Dílky a řezné čáry jsou očíslovány 1, 2, \ldots, N ve směru hodinových ručiček a dílek i má hmotnost A_i. Kousek 1 se také nazývá kousek N + 1.
Řezná čára i je mezi kusy i a i + 1 a jsou uspořádány ve směru hodinových ručiček v tomto pořadí: kus 1, řezná čára 1, kus 2, řezná čára 2, \ldots, kus N, řezná čára N.
Tento dort chceme rozdělit mezi K osob za následujících podmínek. Nechť w_i je součet hmotností dílků, které obdržela i-th osoba.

- Každá osoba obdrží jeden nebo více po sobě jdoucích kousků.
- Neexistují kousky, které by nikdo nedostal.
- Za výše uvedených dvou podmínek je \min(w_1, w_2, \ldots, w_K) maximální.

Najděte hodnotu \min(w_1, w_2, \ldots, w_K) v dělení, které splňuje podmínky, a počet řezů, které nejsou nikdy řezány v děleních, která splňují podmínky. Zde je řezná čára i považována za řeznou, pokud jsou díly i a i + 1 přiděleny různým osobám.

Vstup

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

Výstup

Nechť x je hodnota \min(w_1, w_2, \ldots, w_K) v rozdělení, které splňuje podmínky, a y je počet řezaných čar, které nejsou nikdy řezány. Vypište x a y v tomto pořadí, oddělené mezerou.

Omezení

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

Příklad Vstup 1

5 2
3 6 8 6 4

 Ukázka výstupu 1

13 1

Následující dělení splňují podmínky:

- Dílky 2, 3 dejte jedné osobě a dílky 4, 5, 1 druhé osobě. Kousky 2, 3 mají celkovou hmotnost 14 a kusy 4, 5, 1 mají celkovou hmotnost 13. Kousky 2, 3 mají celkovou hmotnost 14 a kusy 4, 5, 1 mají celkovou hmotnost 13.
- Kusy 3, 4 dejte jedné osobě a kusy 5, 1, 2 druhé osobě. Kousky 3, 4 mají celkovou hmotnost 14 a kusy 5, 1, 2 mají celkovou hmotnost 13. Kousky 3, 4 mají celkovou hmotnost 14 a kusy 5, 1, 2 mají celkovou hmotnost 13.

Hodnota \min(w_1, w_2) v děleních splňujících podmínky je 13 a existuje jedna řezná čára, která není řezána v žádném z těchto dělení: řezná čára 5.

Vzorový vstup 2

6 3
4 7 11 3 9 2

Vzorový výstup 2

11 1

Vzorový vstup 3

10 3
2 9 8 1 7 9 1 3 5 8

Vzorový výstup 3

17 4


V království AtCoder je nejstarší syn vždy pojmenován Taro. Nikdo jiný nedostane jméno Taro. Nejstarší syn je nejdříve narozené mužské dítě v každé rodině. V království je N rodin a narodilo se M dětí. Před narozením těchto M dětí žádná z N rodin neměla žádné děti. Informace o dětech jsou uvedeny v chronologickém pořadí jejich narození. i-té narozené dítě se narodilo v rodině A_i, a pokud je dítě mužského pohlaví, B_i je M, a pokud ženského, pak F. Určete pro každé z M dětí, zda bude jméno Taro.

Vstup

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

Výstup

Vytiskněte M řádků.
i-tý řádek (1\leq i \leq M) by měl obsahovat Yes, pokud je jméno dané i-tému dítěti Taro, a No v opačném případě.

Omezení

- 1\leq N,M\leq 100
- 1\leq A_i\leq N
- B_i je M nebo F.
- Všechny čísla ve vstupu jsou celá čísla.

Ukázkový vstup 1

2 4
1 M
1 M
2 F
2 M

Ukázkový výstup 1

Yes
No
No
Yes

První dítě je nejdříve narozený chlapec v rodině 1, takže je pojmenováno Taro. Druhé dítě není nejdříve narozený chlapec v rodině 1, takže není pojmenováno Taro. Třetí dítě je dívka, takže není pojmenováno Taro. Čtvrté dítě je nejdříve narozený chlapec v rodině 2, takže je pojmenováno Taro. Všimněte si, že třetí dítě se také narodilo v rodině 2, ale Taro je pojmenován nejdříve narozený chlapec.

Ukázkový vstup 2

4 7
2 M
3 M
1 F
4 F
4 F
1 F
2 M

Ukázkový výstup 2

Yes
Yes
No
No
No
No
No

In the Kingdom of AtCoder, the eldest son is always given the name Taro. No one else is given the name Taro.
The eldest son is the earliest born male child in each family.
There are N families in the Kingdom, and M babies were born.  Before the M babies were born, none of the N families had had any babies.
Information about the babies is given in chronological order of their birth.
The i-th baby born was born in family A_i, and the baby is male if B_i is M, and female if it is F.
Determine for each of the M babies whether the name given is Taro.

Input

The input is given from Standard Input in the following format:
N M
A_1 B_1
\vdots
A_M B_M

Output

Print M lines.
The i-th line (1\leq i \leq M) should contain Yes if the name given to the i-th baby is Taro, and No otherwise.

Constraints

- 1\leq N,M\leq 100
- 1\leq A_i\leq N
- B_i is M or F.
- All numbers in the input are integers.

Sample Input 1

2 4
1 M
1 M
2 F
2 M

Sample Output 1

Yes
No
No
Yes

The first baby is the earliest born boy in family 1, so he is named Taro.
The second baby is not the earliest born boy in family 1, so he is not named Taro.
The third baby is a girl, so she is not named Taro.
The fourth baby is the earliest born boy in family 2, so he is named Taro. Note that the third baby is also born in family 2, but it is the earliest born boy who is named Taro.

Sample Input 2

4 7
2 M
3 M
1 F
4 F
4 F
1 F
2 M

Sample Output 2

Yes
Yes
No
No
No
No
No

V království AtCoder se nejstarší syn vždy jmenuje Taro. Nikdo jiný nemá jméno Taro.
Nejstarší syn je nejdříve narozeným mužským dítětem v každé rodině.
V království je N rodin a narodilo se M dětí.  Před narozením dětí M neměla žádná z rodin N žádné děti.
Informace o dětech jsou uvedeny v chronologickém pořadí jejich narození.
I-té narozené dítě se narodilo v rodině A_i a dítě je muž, pokud B_i je M, a žena, pokud je F.
Určete pro každé z M miminek, zda dané jméno je Taro.

Vstup

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

Výstup

Tisk M řádků.
I-tý řádek (1\leq i \leq M) by měl obsahovat Ano, pokud jméno dané i-tému dítěti je Taro, a jinak Ne.

Omezení

- 1\leq N,M\leq 100
- 1\leq A_i\leq N
- B_i je M nebo F.
- Všechna čísla ve vstupu jsou celá.

Ukázkový vstup 1

2 4
1 M
1 M
2 F
2 M

Ukázkový výstup 1

Yes
No
No
Yes

První dítě je nejdříve narozený chlapec v rodině 1, takže se jmenuje Taro.
Druhé dítě není nejdříve narozeným chlapcem v rodině 1, takže se nejmenuje Taro.
Třetí dítě je dívka, takže se nejmenuje Taro.
Čtvrté dítě je nejdříve narozený chlapec v rodině 2, takže se jmenuje Taro. Všimněte si, že třetí dítě se také narodilo v rodině 2, ale je to nejdříve narozený chlapec, který se jmenuje Taro.

Ukázkový vstup 2

4 7
2 M
3 M
1 F
4 F
4 F
1 F
2 M

Ukázkový výstup 2

Yes
Yes
No
No
No
No
No


Na číselné ose je N vesnic. I-tá vesnice se nachází na souřadnici X_i a má vesničany P_i.
Odpovězte na Q dotazy. I-tý dotaz je v následujícím formátu:

- Daná celá čísla L_i a R_i zjistěte celkový počet vesničanů žijících ve vesnicích mezi souřadnicemi L_i a R_i včetně.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
X_1 \ldots X_N
P_1 \ldots P_N
Q
L_1 R_1
\vtečky
L_Q R_Q

Výstup

Vytiskněte Q řádky.
I-tý řádek (1\leq i \leq Q) by měl obsahovat odpověď na i-tý dotaz.

Omezení

- 1\leq N,Q\leq 2\krát 10^5
- -10^9\leq X_1 < X_2 < \ldots < X_N \leq 10^9
- 1\leq P_i\leq 10^9
- -10^9\leq L_i \leq R_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
1 3 5 7
1 2 3 4
4
1 1
2 6
0 10
2 2

Ukázkový výstup 1

1
5
10
0

Zvažte první dotaz. Vesnice mezi souřadnicemi 1 a 1 jsou vesnice na souřadnici 1 s 1 vesničanem. Odpověď je tedy 1.
Zvažte druhý dotaz. Vesnice mezi souřadnicemi 2 a 6 jsou vesnice na souřadnicích 3 a 5, se 2 a 3 vesničany, v tomto pořadí. Odpověď je tedy 2+3=5.

Ukázkový vstup 2

7
-10 -5 -3 -1 0 1 4
2 5 6 5 2 1 7
8
-7 7
-1 5
-10 -4
-8 10
-5 0
-10 5
-8 7
-8 -3

Ukázkový výstup 2

26
15
7
26
18
28
26
11

Na číselné ose je N vesnic. I-tá vesnice se nachází na souřadnici X_i a má vesničany P_i.
Odpovězte na Q dotazy. I-tý dotaz je ve formátu:

- Daná celá čísla L_i a R_i zjistěte celkový počet vesničanů žijících ve vesnicích mezi souřadnicemi L_i a R_i včetně.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
X_1 \ldots X_N
P_1 \ldots P_N
Q
L_1 R_1
\vtečky
L_Q R_Q

Výstup

Vytiskněte Q řádků.
I-tý řádek (1\leq i \leq Q) musí obsahovat odpověď na i-tý dotaz.

Omezení

- 1\leq N,Q\leq 2\times 10^5
- -10^9\leq X_1 < X_2 < \ldots < X_N \leq 10^9
- 1\leq P_i\leq 10^9
- -10^9\leq L_i \leq R_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
1 3 5 7
1 2 3 4
4
1 1
2 6
0 10
2 2

Ukázkový výstup 1

1
5
10
0

Zvažte první dotaz. Vesnice mezi souřadnicemi 1 a 1 jsou vesnice na souřadnici 1 s 1 vesničanem. Odpověď je tedy 1.
Zvažte druhý dotaz. Vesnice mezi souřadnicemi 2 a 6 jsou vesnice na souřadnicích 3 a 5, se 2 a 3 vesničany, v tomto pořadí. Odpověď je tedy 2+3=5.

Ukázkový vstup 2

7
-10 -5 -3 -1 0 1 4
2 5 6 5 2 1 7
8
-7 7
-2 6
-10 -4
-8 10
-5 0
-10 5
-8 7
-8 -3

Ukázkový výstup 2

26
15
7
26
18
28
26
11

Na číselné ose je N vesnic. I-tá vesnice se nachází na souřadnici X_i a má vesničany P_i.
Odpovězte na Q dotazy. I-tý dotaz je v následujícím formátu:

- Daná celá čísla L_i a R_i zjistěte celkový počet vesničanů žijících ve vesnicích mezi souřadnicemi L_i a R_i včetně.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
X_1 \ldots X_N
P_1 \ldots P_N
Q
L_1 R_1
\vdots
L_Q R_Q

Výstup

Vytiskněte Q řádky.
I-tý řádek (1\leq i \leq Q) by měl obsahovat odpověď na i-tý dotaz.

Omezení

- 1\leq N,Q\leq 2\times 10^5
- -10^9\leq X_1 < X_2 < \ldots < X_N \leq 10^9
- 1\leq P_i\leq 10^9
- -10^9\leq L_i \leq R_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

4
1 3 5 7
1 2 3 4
4
1 1
2 6
0 10
2 2

Ukázkový výstup 1

1
5
10
0

Zvažte první dotaz. Vesnice mezi souřadnicemi 1 a 1 jsou vesnice na souřadnici 1 s 1 vesničanem. Odpověď je tedy 1.
Zvažte druhý dotaz. Vesnice mezi souřadnicemi 2 a 6 jsou vesnice na souřadnicích 3 a 5, se 2 a 3 vesničany, v tomto pořadí. Odpověď je tedy 2+3=5.

Ukázkový vstup 2

7
-10 -5 -3 -1 0 1 4
2 5 6 5 2 1 7
8
-7 7
-1 5
-10 -4
-8 10
-50
-105
-8 7
-8-3

Ukázkový výstup 2

26
15
7
26
18
28
26
11


Jsou dány permutace P = (P_1, P_2, \ldots, P_N) a A = (A_1, A_2, \ldots, A_N) z (1,2,\ldots,N).
Následující operaci můžete provést v libovolném počtu, případně i nulovém:

- nahradit A_i za A_{P_i} současně pro všechna i=1,2,\ldots,N.

Vypište lexikograficky nejmenší A, které lze získat.
Co je to lexikografické pořadí?
 Pro posloupnosti délky N, A = (A_1, A_2, \ldots, A_N) a B = (B_1, B_2, \ldots, B_N), je A lexikograficky menší než B tehdy a jen tehdy, když:

- existuje celé číslo i\ (1\leq i\leq N) takové, že A_i < B_i a A_j = B_j pro všechna 1\leq j < i.

Vstup

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

Výstup

Nechť (A_1, A_2, \ldots, A_N) je lexikograficky nejmenší A, které lze získat. Vypište A_1, A_2, \ldots, A_N v tomto pořadí oddělené mezerami na jeden řádek.

Omezení

- 1\leq N\leq2\times10^5
- 1\leq P_i\leq N\ (1\leq i\leq N)
- P_i\neq P_j\ (1\leq i<j\leq N)
- 1\leq A_i\leq N\ (1\leq i\leq N)
- A_i\neq A_j\ (1\leq i<j\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

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

Vzorový výstup 1

1 4 2 5 3 6

Na začátku je A = (4, 3, 1, 6, 2, 5).
Opakováním operace získáme následující výsledek.

- A = (1, 4, 2, 5, 3, 6)
- A = (2, 1, 3, 6, 4, 5)
- A = (3, 2, 4, 5, 1, 6)
- A = (4, 3, 1, 6, 2, 5)

Poté se A každé čtyři operace vrátí do původního stavu.
Vypište proto lexikograficky nejmenší z nich, což je 1 4 2 5 3 6.

Vzorový vstup 2

8
3 5 8 7 2 6 1 4
1 2 3 4 5 6 7 8

Vzorový výstup 2

1 2 3 4 5 6 7 8

Můžete se rozhodnout neprovádět žádné operace.

Vzorový vstup 3

26
24 14 4 20 15 19 16 11 23 22 12 18 21 3 6 8 26 2 25 7 13 1 5 9 17 10
15 3 10 1 13 19 22 24 20 4 14 23 7 26 25 18 11 6 9 12 2 21 5 16 8 17

Vzorový výstup 3

4 1 22 18 20 13 14 6 15 11 3 26 2 12 5 23 9 10 25 24 7 17 16 21 19 8

Dostanete permutace P = (P_1, P_2, \ldots, P_N) a A = (A_1, A_2, \ldots, A_N) z (1,2,\ldots,N).
Můžete provést následující operaci libovolněkrát, možná i žádnou:

- nahraďte A_i hodnotou A_{P_i} současně pro všechna i=1,2,\ldots,N.

Vytiskněte lexikograficky nejmenší A, které lze získat.
Co je lexikografické pořadí?
 Pro posloupnosti délky N, A = (A_1, A_2, \ldots, A_N) a B = (B_1, B_2, \ldots, B_N), A je lexikograficky menší než B, pokud a pouze pokud:

- existuje celé číslo i\ (1\leq i\leq N) takové, že A_i < B_i, a A_j = B_j pro všechna 1\leq j < i.

Vstup

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

Výstup

Nechť (A_1, A_2, \ldots, A_N) je lexikograficky nejmenší A, které lze získat. Vytiskněte A_1, A_2, \ldots, A_N v tomto pořadí, oddělené mezerami, na jedné řádce.

Omezení

- 1\leq N\leq2\times10^5
- 1\leq P_i\leq N\ (1\leq i\leq N)
- P_i\neq P_j\ (1\leq i<j\leq N)
- 1\leq A_i\leq N\ (1\leq i\leq N)
- A_i\neq A_j\ (1\leq i<j\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

1 4 2 5 3 6

Nejprve je A = (4, 3, 1, 6, 2, 5).
Opakováním operace získáte následující.

- A = (1, 4, 2, 5, 3, 6)
- A = (2, 1, 3, 6, 4, 5)
- A = (3, 2, 4, 5, 1, 6)
- A = (4, 3, 1, 6, 2, 5)

Poté se A bude každé čtyři operace vracet do původního stavu.
Proto vytiskněte lexikograficky nejmenší z nich, což je 1 4 2 5 3 6.

Ukázkový vstup 2

8
3 5 8 7 2 6 1 4
1 2 3 4 5 6 7 8

Ukázkový výstup 2

1 2 3 4 5 6 7 8

Můžete se rozhodnout neprovést žádné operace.

Ukázkový vstup 3

26
24 14 4 20 15 19 16 8 23 22 12 18 21 3 6 8 26 2 25 7 13 1 5 9 17 10
15 3 10 1 13 19 22 24 20 4 14 23 7 26 25 18 11 6 9 12 2 21 5 16 8 17

Ukázkový výstup 3

4 1 22 18 20 13 14 6 15 11 3 26 2 12 5 23 9 10 25 24 7 17 16 21 19 8

Jsou dány permutace P = (P_1, P_2, \ldots, P_N) a A = (A_1, A_2, \ldots, A_N) z (1,2,\ldots,N).
Následující operaci můžete provést libovolný početkrát, případně i nulakrát:

- nahradit A_i za A_{P_i} současně pro všechna i=1,2,\ldots,N.

Vypište lexikograficky nejmenší A, které lze získat.
Co je to lexikografické pořadí?
 Pro posloupnosti délky N, A = (A_1, A_2, \ldots, A_N) a B = (B_1, B_2, \ldots, B_N), je A lexikograficky menší než B tehdy a jen tehdy, když:

- existuje celé číslo i\ (1\leq i\leq N) takové, že A_i < B_i a A_j = B_j pro všechna 1\leq j < i.

Vstup

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

Výstup

Nechť (A_1, A_2, \ldots, A_N) je lexikograficky nejmenší A, které lze získat. Vypište A_1, A_2, \ldots, A_N v tomto pořadí oddělené mezerami na jeden řádek.

Omezení

- 1\leq N\leq2\krát10^5
- 1\leq P_i\leq N\ (1\leq i\leq N)
- P_i\neq P_j\ (1\leq i<j\leq N)
- 1\leq A_i\leq N\ (1\leq i\leq N)
- A_i\neq A_j\ (1\leq i<j\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázka výstupu 1

1 4 2 5 3 6

Na začátku je A = (4, 3, 1, 6, 2, 5).
Opakováním operace získáme následující výsledek.

- A = (1, 4, 2, 5, 3, 6)
- A = (2, 1, 3, 6, 4, 5)
- A = (3, 2, 4, 5, 1, 6)
- A = (4, 3, 1, 6, 2, 5)

Poté se A každé čtyři operace vrátí do původního stavu.
Vypište proto lexikograficky nejmenší z nich, což je 1 4 2 5 3 6.


Na východě a západě se táhne silnice, na které se nachází N osob.
Silnice se táhne nekonečně dlouho na východ a západ od bodu zvaného počátek.
I-tá osoba (1\leq i\leq N) se na počátku nachází na místě X_i metrů východně od počátku.
Osoby se mohou pohybovat po silnici na východ nebo na západ.
Konkrétně mohou provést následující pohyb libovolný početkrát.

- Vyberte jednu osobu. Pokud v cíli není žádná jiná osoba, posuňte vybranou osobu o 1 metr na východ nebo na západ.

Mají celkem Q úkolů a i-tý úkol (1\leq i\leq Q) je následující.

- T_i-tá osoba dorazí na souřadnici G_i.

Najděte minimální celkový počet pohybů potřebných k dokončení všech Q úloh v pořadí.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
X_1 X_2 \ldots X_N
Q
T_1 G_1
T_2 G_2
\vdots
T_Q G_Q

Výstup

Vypište odpověď.

Omezení

- 1\leq N\leq2\times10^5
- 0\leq X_1 < X_2 < \dotsb < X_N \leq10^8
- 1\leq Q\leq2\times10^5
- 1\leq T_i\leq N\ (1\leq i\leq Q)
- 0\leq G_i\leq10^8\ (1\leq i\leq Q)
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

5
10 20 30 40 50
4
3 45
4 20
1 35
2 60

Vzorový výstup 1

239

Optimální posloupnost pohybů osob je následující (pozice osob nejsou nutně zakresleny v měřítku):

Pro každou úlohu se osoby pohybují takto.

- Čtvrtá osoba se pohybuje 6 kroků na východ a třetí osoba se pohybuje 15 kroků na východ.
- 2. osoba se pohybuje 2 kroky na západ, 3. osoba se pohybuje 26 kroků na západ a 4. osoba se pohybuje 26 kroků na západ.
- Čtvrtá osoba se posune o 18 kroků na východ, třetí osoba se posune o 18 kroků na východ, druhá osoba se posune o 18 kroků na východ a první osoba se posune o 25 kroků na východ.
- Pátá osoba se posune o 13 kroků na východ, 4. osoba se posune o 24 kroků na východ, 3. osoba se posune o 24 kroků na východ a 2. osoba se posune o 24 kroků na východ.

Celkový počet pohybů je 21+54+79+85=239.
Všechny úkoly nelze splnit s celkovým počtem pohybů 238 nebo méně, proto vytiskněte 239.

Vzorový vstup 2

8
0 1 2 3 4 5 6 100000000
6
1 100000000
8 0
1 100000000
8 4
1 100000000
5 21006578

Vzorový výstup 2

4294967297

Všimněte si, že některé osoby se mohou muset pohybovat západně od počátku nebo více než 10^8 metrů východně od něj.
Také si všimněte, že odpověď může být větší než 2^{32}.

Vzorový vstup 3

12
1558 3536 3755 3881 4042 4657 5062 7558 7721 8330 8542 9845
8
9 1694
7 3296
12 5299
5 5195
5 5871
1 2491
8 1149
8 2996

Vzorový výstup 3

89644

Na východ a na západ se táhne silnice a na silnici je N lidí.
Cesta sahá nekonečně dlouho na východ a západ od bodu zvaného počátek.
I-tá osoba (1\leq i\leq N) je zpočátku na pozici X_i metrů východně od počátku.
Osoby se mohou pohybovat po silnici na východ nebo na západ.
Konkrétně mohou provést následující pohyb libovolný počet opakování.

- Vyberte jednu osobu. Pokud v cíli není žádná další osoba, posuňte vybranou osobu o 1 metr východně nebo západně.

Mají celkem Q úkolů a i-tý úkol (1\leq i\leq Q) je následující.

- T_i-tá osoba dorazí na souřadnici G_i.

Najděte minimální celkový počet pohybů potřebný k dokončení všech Q úkolů v daném pořadí.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
X_1 X_2 \ldots X_N
Q
T_1 G_1
T_2 G_2
\vdots
T_Q G_Q

Výstup

Vytiskněte odpověď.

Omezení

- 1\leq N\leq2\times10^5
- 0\leq X_1 < X_2 < \dotsb < X_N \leq10^8
- 1\leq Q\leq2\times10^5
- 1\leq T_i\leq N\ (1\leq i\leq Q)
- 0\leq G_i\leq10^8\ (1\leq i\leq Q)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
10 20 30 40 50
4
3 45
4 20
135
2 60

Ukázkový výstup 1

239

Optimální sled pohybů osob je následující (pozice osob nemusí být nutně zakreslena v měřítku):

Pro každý úkol se osoby pohybují následovně.

- 4. osoba se posune o 6 kroků na východ a 3. osoba se posune o 15 kroků na východ.
- 2. osoba se posune o 2 kroky na západ, 3. osoba se posune o 26 kroků na západ a 4. osoba se posune o 26 kroků na západ.
- 4. osoba se posune o 18 kroků na východ, 3. osoba se posune o 18 kroků na východ, 2. osoba se posune o 18 kroků na východ a 1. osoba se posune o 25 kroků na východ.
- 5. osoba se posune o 13 kroků na východ, 4. osoba se posune o 24 kroků na východ, 3. osoba se posune o 24 kroků na východ a 2. osoba se posune o 24 kroků na východ.

Celkový počet pohybů je 21+54+79+85=239.
Nemůžete dokončit všechny úkoly s celkovým počtem pohybů 238 nebo méně, takže vytiskněte 239.

Ukázkový vstup 2

8
0 1 2 3 4 5 6 100000000
6
1 100000000
80
1 100000000
8 4
1 100000000
5 21006578

Ukázkový výstup 2

4294967297

Všimněte si, že některé osoby se možná budou muset přesunout na západ od počátku nebo více než 10^8 metrů na východ od něj.
Pamatujte také, že odpověď může přesáhnout 2^{32}.

Ukázkový vstup 3

12
1558 3536 3755 3881 4042 4657 5062 7558 7721 8330 8542 9845
8
9 1694
7 3296
12 5299
5 5195
5 5871
1 2491
8 1149
8 2996

Ukázkový výstup 3

89644

Je tu silnice, která se rozprostírá na východ a západ, a na ní je N osob.
Silnice se rozprostírá nekonečně dlouho na východ a západ od bodu nazývaného počátek.
i-tá osoba (1\leq i\leq N) je zpočátku v poloze X_i metrů na východ od počátku.
Osoby se mohou po silnici pohybovat na východ nebo na západ.
Mohou specificky provádět následující pohyb libovolně mnohokrát.

- Vyberte jednu osobu. Pokud na cílovém místě není žádná jiná osoba, posuňte vybranou osobu o 1 metr na východ nebo na západ.

Mají celkem Q úkolů a i-tý úkol (1\leq i\leq Q) je následující.

- T_i-tá osoba dorazí na souřadnici G_i.

Najděte minimální celkový počet pohybů potřebných k dokončení všech Q úkolů v pořadí.

Vstup

Vstup je poskytnut ze standardního vstupu v následujícím formátu:
N
X_1 X_2 \ldots X_N
Q
T_1 G_1
T_2 G_2
\vdots
T_Q G_Q

Výstup

Vytiskněte odpověď.

Omezení

- 1\leq N\leq2\times10^5
- 0\leq X_1 < X_2 < \dotsb < X_N \leq10^8
- 1\leq Q\leq2\times10^5
- 1\leq T_i\leq N\ (1\leq i\leq Q)
- 0\leq G_i\leq10^8\ (1\leq i\leq Q)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
10 20 30 40 50
4
3 45
4 20
1 35
2 60

Ukázkový výstup 1

239

Optimální sled pohybů osob je následující (polohy osob nejsou nutně nakresleny v měřítku):

Pro každý úkol se osoby pohybují následovně.

- 4. osoba se pohne 6 kroků na východ a 3. osoba se pohne 15 kroků na východ.
- 2. osoba se pohne 2 kroky na západ, 3. osoba se pohne 26 kroků na západ a 4. osoba se pohne 26 kroků na západ.
- 4. osoba se pohne 18 kroků na východ, 3. osoba se pohne 18 kroků na východ, 2. osoba se pohne 18 kroků na východ a 1. osoba se pohne 25 kroků na východ.
- 5. osoba se pohne 13 kroků na východ, 4. osoba se pohne 24 kroků na východ, 3. osoba se pohne 24 kroků na východ a 2. osoba se pohne 24 kroků na východ.

Celkový počet pohybů je 21+54+79+85=239.
Nelze dokončit všechny úkoly s celkovým počtem pohybů 238 nebo méně, takže vytiskněte 239.

Ukázkový vstup 2

8
0 1 2 3 4 5 6 100000000
6
1 100000000
8 0
1 100000000
8 4
1 100000000
5 21006578

Ukázkový výstup 2

4294967297

Všimněte si, že některé osoby se mohou potřebovat pohybovat na západ od počátku nebo více než 10^8 metrů na východ od něj.
Také si všimněte, že odpověď může překročit 2^{32}.

Ukázkový vstup 3

12
1558 3536 3755 3881 4042 4657 5062 7558 7721 8330 8542 9845
8
9 1694
7 3296
12 5299
5 5195
5 5871
1 2491
8 1149
8 2996

Ukázkový výstup 3

89644


Máte jednoduché neorientované grafy G a H, každý s N vrcholy: vrcholy 1, 2, \ldots, N.
Graf G má M_G hran a jeho i-tá hrana (1\leq i\leq M_G) spojuje vrcholy u_i a v_i.
Graf H má M_H hran a jeho i-tá hrana (1\leq i\leq M_H) spojuje vrcholy a_i a b_i.
Můžete provést následující operaci na grafu H libovolněkrát, případně vůbec.

- Vyberte dvojici celých čísel (i,j) splňující 1\leq i<j\leq N. Zaplaťte A_{i,j} jenů, a pokud mezi vrcholy i a j v H není hrana, přidejte ji; pokud je, odstraňte ji.

Najděte minimální celkové náklady potřebné k tomu, aby G a H byly izomorfní.
Co je to jednoduchý neorientovaný graf?
 Jednoduchý neorientovaný graf je graf bez smyček a vícehranech, kde hrany nemají směr.

Co znamená, že grafy jsou izomorfní?
 Dva grafy G a H s N vrcholy jsou izomorfní, pokud a pouze pokud existuje permutace (P_1,P_2,\ldots,P_N) z (1,2,\ldots,N) tak, že pro všechna 1\leq i\lt j\leq N:

-  hrana existuje mezi vrcholy i a j v G, pokud a pouze pokud existuje hrana mezi vrcholy P_i a P_j v H.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
M _ G
u _ 1 v _ 1
u _ 2 v _ 2
\vdots
u _ {M _ G} v _ {M _ G}
M _ H
a _ 1 b _ 1
a _ 2 b _ 2
\vdots
a _ {M _ H} b _ {M _ H}
A _ {1,2} A _ {1,3} \ldots A _ {1,N}
A _ {2,3} \ldots A _ {2,N}
\vdots
A _ {N-1,N}

Výstup

Vypište odpověď.

Omezení

- 1\leq N\leq8
- 0\leq M _ G\leq\dfrac{N(N-1)}2
- 0\leq M _ H\leq\dfrac{N(N-1)}2
- 1\leq u _ i\lt v _ i\leq N\ (1\leq i\leq M _ G)
- (u _ i,v _ i)\neq(u _ j,v _ j)\ (1\leq i\lt j\leq M _ G)
- 1\leq a _ i\lt b _ i\leq N\ (1\leq i\leq M _ H)
- (a _ i,b _ i)\neq(a _ j,b _ j)\ (1\leq i\lt j\leq M _ H)
- 1\leq A _ {i,j}\leq 10 ^ 6\ (1\leq i\lt j\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

9

Zadané grafy jsou následující:

Například můžete na H provést následující čtyři operace, aby byl izomorfní s G za cenu 9 jenů.

- Vyberte (i,j)=(1,3). Mezi vrcholy 1 a 3 v H je hrana, takže zaplaťte 1 jen za její odstranění.
- Vyberte (i,j)=(2,5). Mezi vrcholy 2 a 5 v H není hrana, takže zaplaťte 2 jeny za její přidání.
- Vyberte (i,j)=(1,5). Mezi vrcholy 1 a 5 v H je hrana, takže zaplaťte 1 jen za její odstranění.
- Vyberte (i,j)=(3,5). Mezi vrcholy 3 a 5 v H není hrana, takže zaplaťte 5 jenů za její přidání.

Po těchto operacích se H stane:

Nemůžete udělat G a H izomorfní za cenu menší než 9 jenů, takže vypište 9.

Ukázkový vstup 2

5
3
1 2
2 3
3 4
4
1 2
2 3
3 4
4 5
9 1 1 1
1 1 1
1 1
9

Ukázkový výstup 2

3

Například provedení operací (i,j)=(2,3),(2,4),(3,4) na H vytvoří izomorfismus s G.

Ukázkový vstup 3

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

Ukázkový výstup 3

5

Například provedení operace (i,j)=(4,5) jednou vytvoří izomorfismus G a H.

Ukázkový vstup 4

2
0
0
371

Ukázkový výstup 4

0

Všimněte si, že G a H nemusí mít žádné hrany. Také může být, že nebude potřeba žádné operace.

Ukázkový vstup 5

8
13
1 8
5 7
4 6
1 5
7 8
1 6
1 2
5 8
2 6
5 6
6 7
3 7
4 8
15
3 5
1 7
4 6
3 8
7 8
1 2
5 6
1 6
1 5
1 4
2 8
2 6
2 4
4 7
1 3
7483 1694 5868 3296 9723 5299 4326
5195 4088 5871 1384 2491 6562
1149 6326 2996 9845 7557
4041 7720 1554 5060
8329 8541 3530
4652 3874
3748

Ukázkový výstup 5

21214

Dostanete jednoduché neorientované grafy G a H, každý s N vrcholy: vrcholy 1, 2, \ldots, N.
Graf G má M_G hran a jeho i-tá hrana (1\leq i\leq M_G) spojuje vrcholy u_i a v_i.
Graf H má M_H hran a jeho i-tá hrana (1\leq i\leq M_H) spojuje vrcholy a_i a b_i.
Následující operaci můžete provést na grafu H libovolněkrát, možná nulově.

- Vyberte dvojici celých čísel (i,j) splňující 1\leq i<j\leq N. Zaplaťte A_{i,j} jen, a pokud mezi vrcholy i a j v H není žádná hrana, přidejte jednu; Pokud ano, odstraňte jej.

Určete minimální celkové náklady potřebné k vytvoření izomorfních G a H.
Co je to jednoduchý neorientovaný graf?
 Jednoduchý neorientovaný graf je graf bez vlastních smyček nebo více hran, kde hrany nemají žádný směr.

Co to znamená, že grafy jsou izomorfní?
 Dva grafy G a H s N vrcholy jsou izomorfní právě tehdy, když existuje permutace (P_1,P_2,\ldots,P_N) z (1,2,\ldots,N) taková, že pro všechny 1\leq i\lt j\leq N:

- hrana existuje mezi vrcholy i a j v G právě tehdy, když hrana existuje mezi vrcholy P_i a P_j v H.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
M _ G
u _ 1 v _ 1
u _ 2 v _ 2
\vdots
u _ {M _ G} v _ {M _ G}
M _ H
a _ 1 b _ 1
a _ 2 b _ 2
\vdots
a _ {M _ H} b _ {M _ H}
A _ {1,2} A _ {1,3} \ldots A _ {1,N}
A _ {2,3} \ldots A _ {2,N}
\vdots
A _ {N-1,N}

Výstup

Vytiskněte odpověď.

Omezení

- 1\leq N\leq8
- 0\leq M _ G\leq\dfrac{N(N-1)}2
- 0\leq M _ H\leq\dfrac{N(N-1)}2
- 1\leq u _ i\lt v _ i\leq N\ (1\leq i\leq M _ G)
- (u _ i,v _ i)\neq(u _ j,v _ j)\ (1\leq i\lt j\leq M _ G)
- 1\leq a _ i\lt b _ i\leq N\ (1\leq i\leq M _ H)
- (a _ i,b _ i)\neq(a _ j,b _ j)\ (1\leq i\lt j\leq M _ H)
- 1\leq A _ {i,j}\leq 10 ^ 6\ (1\leq i\lt j\leq N)
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

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

Ukázkový výstup 1

9

Uvedené grafy jsou následující:

Můžete například provést následující čtyři operace s jazykem H, aby byl izomorfní s objektem G za cenu 9 jenů.

- Vyberte (i,j)=(1,3). Mezi vrcholy 1 a 3 v H je hrana, takže za její odstranění zaplaťte 1 jen.
- Vyberte (i,j)=(2,5). Mezi vrcholy 2 a 5 v H není žádná hrana, takže za její přidání zaplaťte 2 jeny.
- Vyberte (i,j)=(1,5). Mezi vrcholy 1 a 5 v H je hrana, takže za její odstranění zaplaťte 1 jen.
- Vyberte (i,j)=(3,5). Mezi vrcholy 3 a 5 v H není žádná hrana, takže za její přidání zaplaťte 5 jenů.

Po těchto operacích se H stane:

Nemůžete vytvořit G a H izomorfní za cenu nižší než 9 jenů, takže vytiskněte 9.

Vzorkovací vstup 2

5
3
1 2
2 3
3 4
4
1 2
2 3
3 4
4 5
9 1 1 1
1 1 1
1 1
9

Ukázkový výstup 2

3

Například provedení operací (i,j)=(2,3),(2,4),(3,4) na H jej učiní izomorfním s G.

Vzorkovací vstup 3

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

Ukázkový výstup 3

5

Například provedení operace (i,j)=(4,5) jednou vytvoří G a H izomorfní.

Vzorkovací vstup 4

2
0
0
371

Ukázkový výstup 4

0

Všimněte si, že G a H nemusí mít žádné hrany.
Také je možné, že nejsou potřeba žádné operace.

Vstup vzorku 5

8
13
1 8
5 7
4 6
1 5
7 8
1 6
1 2
5 8
2 6
5 6
6 7
3 7
4 8
15
3 5
1 7
4 6
3 8
7 8
1 2
5 6
1 6
1 5
1 4
2 8
2 6
2 4
4 7
1 3
7483 1694 5868 3296 9723 5299 4326
5195 4088 5871 1384 2491 6562
1149 6326 2996 9845 7557
4041 7720 1554 5060
8329 8541 3530
4652 3874
3748

Ukázkový výstup 5

21214