Je dána posloupnost celých čísel A = (A_1, A_2, \ldots, A_N) délky N.
                    Definujte f(l, r) jako:

- počet různých hodnot v posloupnosti (A_l, A_{l+1}, \ldots, A_r).

Vyhodnoťte následující výraz:

\displaystyle \sum_{i=1}^{N}\sum_{j=i}^N f(i,j).

Vstup

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

Výstup

Vypište odpověď.

Omezení

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

Vzorový vstup 1

3
1 2 2

Vzorový výstup 1

8

Uvažujme f(1,2). Posloupnost (A_1, A_2) = (1,2) obsahuje 2
                    různé hodnoty, takže f(1,2)=2.
Uvažujme f(2,3). Posloupnost (A_2, A_3) = (2,2) obsahuje 1 hodnotu.
                    odlišnou hodnotu, takže f(2,3)=1.
Součet f je 8.

Vzorový vstup 2

9
5 4 2 2 3 2 4 4 1

Vzorový výstup 2

111

Je dána posloupnost celých čísel A = (A_1, A_2, \ldots, A_N) délky N.
                    Definujte f(l, r) jako:

- počet různých hodnot v posloupnosti (A_l, A_{l+1}, \ldots, A_r).

Vyhodnoťte následující výraz:

\displaystyle \sum_{i=1}^{N}\sum_{j=i}^N f(i,j).

Vstup

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

Výstup

Vypište odpověď.

Omezení

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

Příklad Vstup 1

3
1 2 2

Ukázkový výstup 1

8

Uvažujme f(1,2). Posloupnost (A_1, A_2) = (1,2) obsahuje 2
                    různé hodnoty, takže f(1,2)=2.
Uvažujme f(2,3). Posloupnost (A_2, A_3) = (2,2) obsahuje 1 hodnotu.
                    odlišnou hodnotu, takže f(2,3)=1.
Součet f je 8.

Ukázka vstupu 2

9
5 4 2 2 3 2 4 4 1

Vzorový výstup 2

111

Je vám dána posloupnost celých čísel A = (A_1, A_2, \ldots, A_N) délky N.
                    Definujte f(l, r) jako:

- počet odlišných hodnot v podsekvenci (A_l, A_{l+1}, \ldots, A_r).

Vyhodnoťte následující výraz:

\displaystyle \sum_{i=1}^{N}\sum_{j=i}^N f(i,j).

Vstup

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

Výstup

Vytiskněte odpověď.

Omezení

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

Ukázkový vstup 1

3
1 2 2

Ukázkový výstup 1

8

Uvažujme f(1,2). Dílčí posloupnost (A_1, A_2) = (1,2) obsahuje 2
                    odlišné hodnoty, takže f(1,2)=2.
Uvažujme f(2,3). Dílčí posloupnost (A_2, A_3) = (2,2) obsahuje 1
                    odlišná hodnota, takže f(2,3)=1.
Součet f je 8.

Ukázkový vstup 2

9
5 4 2 2 3 2 4 4 1

Ukázkový výstup 2

111


Existují tři bratři jménem A, B a C. Věkové vztahy mezi nimi jsou dány třemi znaky S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}}, které znamenají následující:

- Pokud je S_{\mathrm{AB}} <, pak je A mladší než B; pokud je >, pak je A starší než B.
- Pokud je S_{\mathrm{AC}} <, pak je A mladší než C; pokud je >, pak je A starší než C.
- Pokud je S_{\mathrm{BC}} <, pak je B mladší než C; pokud je >, pak je B starší než C.

Kdo je prostřední bratr, tedy druhý nejstarší mezi třemi?

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
S_{\mathrm{AB}} S_{\mathrm{AC}} S_{\mathrm{BC}}

Výstup

Vytiskněte jméno prostředního bratra, tedy druhého nejstaršího mezi třemi.

Omezení

- Každý z S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}} je < nebo >.
- Vstup neobsahuje žádné rozpory; to znamená, že vždy existuje věkový vztah, který splňuje všechna daná nerovnosti.

Ukázkový Vstup 1

< < <

Ukázkový Výstup 1

B

Protože je A mladší než B a B je mladší než C, můžeme určit, že C je nejstarší, B je prostřední a A je nejmladší. Proto je odpověď B.

Ukázkový Vstup 2

< < >

Ukázkový Výstup 2

C

Existují tři bratři jménem A, B a C. Věkové vztahy mezi nimi jsou dány třemi znaky S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}}, které znamenají následující:

- Pokud je S_{\mathrm{AB}} <, pak je A mladší než B; pokud je >, pak je A starší než B.
- Pokud je S_{\mathrm{AC}} <, pak je A mladší než C; pokud je >, pak je A starší než C.
- Pokud je S_{\mathrm{BC}} <, pak je B mladší než C; pokud je >, pak je B starší než C.

Kdo je prostřední bratr, tedy druhý nejstarší mezi třemi?

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
S_{\mathrm{AB}} S_{\mathrm{AC}} S_{\mathrm{BC}}

Výstup

Vytiskněte jméno prostředního bratra, tedy druhého nejstaršího mezi třemi.

Omezení

- Každý z S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}} je < nebo >.
- Vstup neobsahuje žádné rozpory; to znamená, že vždy existuje věkový vztah, který splňuje všechna daná nerovnosti.

Ukázkový Vstup 1

< < <

Ukázkový Výstup 1

B

Protože je A mladší než B a B je mladší než C, můžeme určit, že C je nejstarší, B je prostřední a A je nejmladší. Proto je odpověď B.

Vzorový vstup 2

< < >

Vzorový výstup 2

C

Existují tři bratři jménem A, B a C. Věkové vztahy mezi nimi jsou dány třemi postavami S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}}, které znamená následující:

- Je-li S_{\mathrm{AB}} <, pak A je mladší než B; pokud je >, pak je A starší než B.
- Je-li S_{\mathrm{AC}} <, pak A je mladší než C; pokud je >, pak je A starší než C.
- Je-li S_{\mathrm{BC}} <, pak B je mladší než C; pokud je >, pak B je starší než C.

Kdo je prostřední bratr, tedy druhý nejstarší ze tří?

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
S_{\mathrm{AB}} S_{\mathrm{AC}} S_{\mathrm{BC}}

Výstup

Vytiskněte jméno prostředního bratra, tedy druhého nejstaršího ze tří.

Omezení

- Každý z S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}} je < nebo >.
- Vstup neobsahuje žádné rozpory; to znamená, že vždy existuje věkový vztah, který uspokojuje všechny dané nerovnosti.

Ukázkový vstup 1

<< <

Ukázkový výstup 1

B

Protože A je mladší než B a B je mladší než C, můžeme určit, že C je nejstarší, B je prostřední a A je nejmladší. Odpověď je tedy B.

Ukázkový vstup 2

< < >

Ukázkový výstup 2

C


Existuje neorientovaný graf s N vrcholy a 0 hranami. Vrcholy jsou očíslovány od 1 do N.
Dostanete Q dotazy ke zpracování v pořadí. Každý dotaz je jednoho z následujících dvou typů:

- Typ 1: Dán ve formátu 1 u v. Přidejte hranu mezi vrcholy u a v.
- Typ 2: Udává se ve formátu 2 v k. Vytiskněte k-té největší číslo vrcholu mezi vrcholy připojenými k vrcholu v. Pokud je méně než k vrcholů připojených k v, vytiskněte -1.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N Q
\mathrm{query}_1
\mathrm{query}_2
\vdots
\mathrm{query}_Q

Zde je \mathrm{query}_i i-tým dotazem a je zadán v jednom z následujících formátů:
1 u v

2 v k

Výstup

Nechť q je počet dotazů typu 2. Tisk q řádků.
I-tý řádek by měl obsahovat odpověď na i-tý dotaz typu 2.

Omezení

- 1 \leq N, Q \leq 2 \times 10^5
- V dotazu typu 1 je 1 \leq u < v \leq N.
- V dotazu typu 2 1 \leq v \leq N, 1 \leq k \leq 10.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

2
1
-1
4
2
-1

- V prvním dotazu se mezi vrcholy 1 a 2 přidá hrana.
- Ve druhém dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2. Mezi nimi je 1. největší číslo vrcholu 2, které by se mělo vytisknout.
- Ve třetím dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2. Mezi nimi je 2. největší číslo vrcholu 1, které by se mělo vytisknout.
- Ve čtvrtém dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2, což je méně než 3, takže vytiskněte -1.
- V pátém dotazu se mezi vrcholy 1 a 3 přidá hrana.
- V šestém dotazu se mezi vrcholy 2 a 3 přidá hrana.
- V sedmém dotazu se mezi vrcholy 3 a 4 přidá hrana.
- V osmém dotazu jsou k vrcholu 1 připojeny čtyři vrcholy: 1,2,3,4. Mezi nimi je 1. největší číslo vrcholu 4, které by se mělo vytisknout.
- V devátém dotazu jsou k vrcholu 1 připojeny čtyři vrcholy: 1,2,3,4. Mezi nimi je 3. největší číslo vrcholu 2, které by se mělo vytisknout.
- V desátém dotazu jsou k vrcholu 1 připojeny čtyři vrcholy: 1,2,3,4, což je méně než 5, takže vytiskněte -1.

Ukázkový vstup 2

6 20
1 3 4
1 3 5
2 1 1
2 3 1
1 1 5
2 6 9
2 1 3
2 6 1
1 4 6
2 2 1
2 6 2
2 4 7
1 1 4
2 6 2
2 3 4
1 2 5
2 4 1
1 1 6
2 3 3
2 1 3

Ukázkový výstup 2

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

Existuje neorientovaný graf s N vrcholy a 0 hranami. Vrcholy jsou očíslovány od 1 do N.
Dostanete Q dotazy ke zpracování v pořadí. Každý dotaz je jednoho z následujících dvou typů:

- Typ 1: Dán ve formátu 1 u v. Přidejte hranu mezi vrcholy u a v.
- Typ 2: Udává se ve formátu 2 v k. Vytiskněte k-té největší číslo vrcholu mezi vrcholy připojenými k vrcholu v. Pokud je méně než k vrcholů připojených k v, vytiskněte -1.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N Q
\mathrm{query}_1
\mathrm{query}_2
\vtečky
\mathrm{query}_Q

Zde je \mathrm{query}_i i-tým dotazem a je zadán v jednom z následujících formátů:
1 u v

2 v k

Výstup

Nechť q je počet dotazů typu 2. Tisk q řádků.
I-tý řádek by měl obsahovat odpověď na i-tý dotaz typu 2.

Omezení

- 1 \leq N, Q \leq 2 \krát 10^5
- V dotazu typu 1 je 1 \leq u < v \leq N.
- V dotazu typu 2 1 \leq v \leq N, 1 \leq k \leq 10.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

2
1
-1
4
2
-1

- V prvním dotazu se mezi vrcholy 1 a 2 přidá hrana.
- Ve druhém dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2. Mezi nimi je 1. největší číslo vrcholu 2, které by se mělo vytisknout.
- Ve třetím dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2. Mezi nimi je 2. největší číslo vrcholu 1, které by se mělo vytisknout.
- Ve čtvrtém dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2, což je méně než 3, takže vytiskněte -1.
- V pátém dotazu se mezi vrcholy 1 a 3 přidá hrana.
- V šestém dotazu se mezi vrcholy 2 a 3 přidá hrana.
- V sedmém dotazu se mezi vrcholy 3 a 4 přidá hrana.
- V osmém dotazu jsou k vrcholu 1 připojeny čtyři vrcholy: 1,2,3,4. Mezi nimi je 1. největší číslo vrcholu 4, které by se mělo vytisknout.
- V devátém dotazu jsou k vrcholu 1 připojeny čtyři vrcholy: 1,2,3,4. Mezi nimi je 3. největší číslo vrcholu 2, které by se mělo vytisknout.
- V desátém dotazu jsou k vrcholu 1 připojeny čtyři vrcholy: 1,2,3,4, což je méně než 5, takže vytiskněte -1.

Ukázkový vstup 2

6 20
1 3 4
1 3 5
2 1 1
2 3 1
1 1 5
2 6 9
2 1 3
2 6 1
1 4 6
2 2 1
2 6 2
2 4 7
1 1 4
2 6 2
2 3 4
1 2 5
2 4 1
1 1 6
2 3 3
2 1 3

Ukázkový výstup 2

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

Existuje neorientovaný graf s N vrcholy a 0 hranami. Vrcholy jsou očíslovány od 1 do N.
Máte Q dotazů, které je třeba zpracovat ve stanoveném pořadí. Každý dotaz je jednoho z následujících dvou typů:

- Typ 1: Zadaný ve formátu 1 u v. Přidejte hranu mezi vrcholy u a v.
- Typ 2: Zadaný ve formátu 2 v k. Vytiskněte k-té největší číslo vrcholu mezi vrcholy připojenými k vrcholu v. Pokud je k vrcholu připojeno méně než k vrcholů, vytiskněte -1.

Vstup

Vstup je dán ve Standardním formátu:
N Q
\mathrm{query}_1
\mathrm{query}_2
\vdots
\mathrm{query}_Q

Tady, \mathrm{query}_i je i-tý dotaz a je dán v jednom z následujících formátů:
1 u v

2 v k

Výstup

Nechť q je počet dotazů typu 2. Vytiskněte q řádků.
i-tý řádek by měl obsahovat odpověď na i-tý dotaz typu 2.

Omezení

- 1 \leq N, Q \leq 2 \times 10^5
- V dotazu typu 1, 1 \leq u < v \leq N.
- V dotazu typu 2, 1 \leq v \leq N, 1 \leq k \leq 10.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

2
1
-1
4
2
-1

- V prvním dotazu je přidána hrana mezi vrcholy 1 a 2.
- Ve druhém dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2. Mezi nimi je 1. největší číslo vrcholu 2, které by mělo být vytištěno.
- Ve třetím dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2. Mezi nimi je 2. největší číslo vrcholu 1, které by mělo být vytištěno.
- Ve čtvrtém dotazu jsou dva vrcholy připojeny k vrcholu 1: 1 a 2, což je méně než 3, takže vytiskněte -1.
- V pátém dotazu je přidána hrana mezi vrcholy 1 a 3.
- V šestém dotazu je přidána hrana mezi vrcholy 2 a 3.
- V sedmém dotazu je přidána hrana mezi vrcholy 3 a 4.
- V osmém dotazu jsou čtyři vrcholy připojeny k vrcholu 1: 1,2,3,4. Mezi nimi je 1. největší číslo vrcholu 4, které by mělo být vytištěno.
- V devátém dotazu jsou čtyři vrcholy připojeny k vrcholu 1: 1,2,3,4. Mezi nimi je 3. největší číslo vrcholu 2, které by mělo být vytištěno.
- V desátém dotazu jsou čtyři vrcholy připojeny k vrcholu 1: 1,2,3,4, což je méně než 5, takže vytiskněte -1.

Ukázkový vstup 2

6 20
1 3 4
1 3 5
2 1 1
2 3 1
1 1 5
2 6 9
2 1 3
2 6 1
1 4 6
2 2 1
2 6 2
2 4 7
1 1 4
2 6 2
2 3 4
1 2 5
2 4 1
1 1 6
2 3 3
2 1 3

Ukázkový výstup 2

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


Dostanete řetězec S délky N. Dostanete také Q dotazy, které byste měli zpracovat v daném pořadí.
I-tý dotaz je následující:

- Je-li dané celé číslo X_i a znak C_i, nahraďte X_i-tý znak S znakem C_i. Potom vytiskněte, kolikrát se řetězec ABC objeví jako podřetězec v S.

Zde je podřetězec S řetězec získaný odstraněním nula nebo více znaků ze začátku a nula nebo více znaků z konce S.
Například ab je podřetězec abc, ale ac není podřetězec abc.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N Q
S
X_1 C_1
X_2 C_2
\vdots
X_Q C_Q

Výstup

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

Omezení

- 3 \le N \le 2 \times 10^5
- 1 \le Q \le 2 \times 10^5
- S je řetězec délky N složený z velkých anglických písmen.
- 1 \le X_i \le N
- C_i je velké anglické písmeno.

Ukázkový vstup 1

7 4
ABCDABC
4 B
3 A
5 C
4 G

Ukázkový výstup 1

2
1
1
0

Po zpracování každého dotazu se S změní následovně.

- Po prvním dotazu: S= ABCBABC. V tomto řetězci se ABC objeví dvakrát jako podřetězec.
- Po druhém dotazu: S= ABABABC. V tomto řetězci se ABC objeví jednou jako podřetězec.
- Po třetím dotazu: S= ABABCBC. V tomto řetězci se ABC objeví jednou jako podřetězec.
- Po čtvrtém dotazu: S= ABAGCBC. V tomto řetězci se ABC objeví nulakrát jako podřetězec.

Ukázkový vstup 2

3 3
ABC
1 A
2 B
3 C

Ukázkový výstup 2

1
1
1

Existují případy, kdy se S při zpracování dotazu nemění.

Ukázkový vstup 3

15 10
BBCCBCACCBACACA
9 C
11 B
5 B
11 B
4 A
8 C
8 B
5 B
7 B
14 B

Ukázkový výstup 3

0
0
0
0
1
1
2
2
1
1

Máte zadán řetězec S délky N. Dále máte zadáno Q dotazů, které byste měli zpracovat v pořadí.
I-tý dotaz je následující:

- Je dáno celé číslo X_i a znak C_i, nahraďte X_i-tý znak S znakem C_i. Poté vypište, kolikrát se řetězec ABC vyskytuje jako podřetězec v S.

Podřetězec S je zde řetězec získaný odstraněním nuly nebo více znaků ze začátku a nuly nebo více znaků z konce řetězce S.
Například ab je podřetězec abc, ale ac není podřetězec abc.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N Q
S
X_1 C_1
X_2 C_2
\vdots
X_Q C_Q

Výstup

Vytiskněte Q řádků.
Na i-tém řádku (1 \le i \le Q) by měla být odpověď na i-tý dotaz.

Omezení

- 3 \le N \le 2 \times 10^5
- 1 \le Q \le 2 \times 10^5
- S je řetězec délky N složený z velkých anglických písmen.
- 1 \le X_i \le N
- C_i je velké anglické písmeno.

Vzorový vstup 1

7 4
ABCDABC
4 B
3 A
5 C
4 G

Ukázka výstupu 1

2
1
1
0

Po zpracování každého dotazu je S následující.

- Po prvním dotazu: S= ABCBABC. V tomto řetězci se ABC vyskytuje dvakrát jako podřetězec.
- Po druhém dotazu: S= ABABABC. V tomto řetězci se ABC objevuje jednou jako podřetězec.
- Po třetím dotazu: S= ABABCBC. V tomto řetězci se ABC objevuje jednou jako podřetězec.
- Po čtvrtém dotazu: S= ABAGCBC. V tomto řetězci se ABC jako podřetězec objevuje nulakrát.

Vzorový vstup 2

3 3
ABC
1 A
2 B
3 C

Vzorový výstup 2

1
1
1

Existují případy, kdy se S při zpracování dotazu nemění.

Ukázka vstupu 3

15 10
BBCCBCACCBACACA
9 C
11 B
5 B
11 B
4 A
8 C
8 B
5 B
7 B
14 B

Ukázka výstupu 3

0
0
0
0
1
1
2
2
1
1

Dostanete řetězec S délky N. Dostanete také Q dotazy, které byste měli zpracovat v daném pořadí.
I-tý dotaz je následující:

- Je-li dané celé číslo X_i a znak C_i, nahraďte X_i-tý znak S znakem C_i. Potom vytiskněte, kolikrát se řetězec ABC objeví jako podřetězec v S.

Zde je podřetězec S řetězec získaný odstraněním nula nebo více znaků ze začátku a nula nebo více znaků z konce S.
Například ab je podřetězec abc, ale ac není podřetězec abc.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N Q
S
X_1 C_1
X_2 C_2
\vtečky
X_Q C_Q

Výstup

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

Omezení

- 3 \le N \le 2 \krát 10^5
- 1 \le Q \le 2 \krát 10^5
- S je řetězec délky N složený z velkých anglických písmen.
- 1 \le X_i \le N
- C_i je velké anglické písmeno.

Ukázkový vstup 1

7 4
ABCDABC
4 B
3 A
5 C
4 G

Ukázkový výstup 1

2
1
1
0

Po zpracování každého dotazu se S změní následovně.

- Po prvním dotazu: S= ABCBABC. V tomto řetězci se ABC objeví dvakrát jako podřetězec.
- Po druhém dotazu: S= ABABABC. V tomto řetězci se ABC objeví jednou jako podřetězec.
- Po třetím dotazu: S= ABABCBC. V tomto řetězci se ABC objeví jednou jako podřetězec.
- Po čtvrtém dotazu: S= ABAGCBC. V tomto řetězci se ABC objeví nulakrát jako podřetězec.

Ukázkový vstup 2

3 3
ABC
1 A
2 B
3 C

Ukázkový výstup 2

1
1
1

Existují případy, kdy se S při zpracování dotazu nemění.

Ukázkový vstup 3

15 10
BBCCBCACCBACACA
9 C
11 B
5 B
11 B
4 A
8 C
8 B
5 B
7 B
14 B

Ukázkový výstup 3

0
0
0
0
1
1
2
2
1
1


Je dáno N budov, Budova 1, Budova 2, \ldots, Budova N, uspořádaných v řadě v tomto pořadí. Výška Budovy i (1 \leq i \leq N) je H_i.
Pro každé i = 1, 2, \ldots, N, najděte počet celých čísel j (i < j \leq N) splňujícím následující podmínku:

- Mezi Budovami i a j není žádná budova vyšší než Budova j.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
H_1 H_2 \ldots H_N

Výstup

Pro každé i = 1, 2, \ldots, N, nechť c_i je počet j splňujících podmínku. Vypište c_1, c_2, \ldots, c_N v pořadí, oddělené mezerami.

Omezení

- 1 \leq N \leq 2 \times 10^5
- 1 \leq H_i \leq N
-  H_i\neq H_j\ (i\neq j)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
2 1 4 3 5

Ukázkový výstup 1

3 2 2 1 0

Pro i=1, celá čísla j splňující podmínku jsou 2, 3 a 5: jsou tři. (Mezi Budovami 1 a 4 je budova vyšší než Budova 4, což je Budova 3, takže j=4 nesplňuje podmínku.) První číslo ve výstupu je tedy 3.

Ukázkový vstup 2

4
1 2 3 4

Ukázkový výstup 2

3 2 1 0

Ukázkový vstup 3

10
1 9 6 5 2 7 10 4 8 3

Ukázkový výstup 3

2 3 3 3 2 1 2 1 1 0

Existuje N budov, budova 1, budova 2, \ldots, budova N, uspořádaných v řadě v tomto pořadí. Výška budovy i (1 \leq i \leq N) je H_i.
Pro každé i = 1, 2, \ldots, N najděte počet celých čísel j (i < j \leq N), která splňují následující podmínku:

- Mezi budovami i a j není žádná budova vyšší než budova j.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
H_1 H_2 \ldots H_N

Výstup

Pro každé i = 1, 2, \ldots, N, nechť c_i je počet j splňujících podmínku. Vytiskněte c_1, c_2, \ldots, c_N v pořadí, oddělené mezerami.

Omezení

-  1 \leq N \leq 2 \times 10^5
- 1 \leq H_i \leq N
- H_i\neq H_j\ (i\neq j)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5
2 1 4 3 5

Ukázkový výstup 1

3 2 2 1 0

Pro i=1 jsou celá čísla j splňující podmínku 2, 3 a 5: jsou tři. (Mezi budovami 1 a 4 je budova vyšší než budova 4, což je budova 3, takže j=4 podmínku nesplňuje.) První číslo ve výstupu je tedy 3.

Ukázkový vstup 2

4
1 2 3 4

Ukázkový výstup 2

3 2 1 0

Ukázkový vstup 3

10
1 9 6 5 2 7 10 4 8 3

Ukázkový výstup 3

2 3 3 3 2 1 2 1 1 0

Je zde N budov, budova 1, budova 2,  \ldots, budova N, uspořádané v řadě v tomto pořadí. Výška budovy i (1  \leq i  \leq N) je H_i.
Pro každé i = 1, 2,  \ldots, N najděte počet celých čísel j (i < j leq N) splňujících následující podmínku:

- Mezi budovami i a j není žádná budova vyšší než budova j.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
H_1 H_2  \ldots H_N

Výstup

For each i = 1, 2, \ldots, N, let c_i be the number of j satisfying the condition. Print c_1, c_2, \ldots, c_N in order, separated by spaces

Omezení

- 1  \leq N \ leq 2  \times 10^5
- 1  \leq H_i  \leq N
- H_i \neq H_j \ (i \neq j)
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

5
2 1 4 3 5

Ukázkový výstup 1

3 2 2 1 0

Pro i=1 jsou celá čísla j splňující podmínku 2, 3 a 5: jsou tři. (Mezi budovami 1 a 4 je budova vyšší než budova 4, což je budova 3, takže j=4 nesplňuje podmínku.) Proto je první číslo ve výstupu 3.

Vzorkovací vstup 2

4
1 2 3 4

Ukázkový výstup 2

3 2 1 0

Vzorkovací vstup 3

10
1 9 6 5 2 7 10 4 8 3

Ukázkový výstup 3

2 3 3 3 2 1 2 1 1 0


Jsou vám dány tři sekvence délky-N kladných celých čísel: A=(A_1,A_2,\ldots,A_N), B=(B_1,B_2,\ldots,B_N) a C=(C_1,C_2,\ldots,C_N ).
Najděte počet dvojic kladných celých čísel (x, y), které splňují následující podmínku:

- A_i \times x + B_i \times y < C_i pro všechny 1 \leq i \leq N.

Lze dokázat, že počet takových dvojic kladných celých čísel splňujících podmínku je konečný.
Dostanete T testovacích případů, z nichž každý by měl být vyřešen.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu. Zde \mathrm{case}_i odkazuje na i-tý testovací případ.
T
\mathrm{případ}_1
\mathrm{case}_2
\vtečky
\mathrm{case}_T

Každý testovací případ je uveden v následujícím formátu:
N
A_1 B_1 C_1
A_2 B_2 C_2
\vtečky
A_N B_N C_N

Výstup

Vytiskněte T řádky. I-tý řádek (1 \leq i \leq T) by měl obsahovat odpověď pro \mathrm{case}_i.

Omezení

- 1 \leq T \leq 2 \krát 10^5
- 1 \leq N \leq 2 \krát 10^5
- 1 \leq A_i, B_i, C_i \leq 10^9
- Součet N ve všech testovacích případech je maximálně 2 \krát 10^5.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

2
0

V prvním testovacím případě existují dvě platné dvojice celých čísel: (x, y) = (1, 1), (2,1). První řádek by tedy měl obsahovat 2.
Ve druhém testovacím případě neexistují žádné platné dvojice celých čísel. Druhý řádek by tedy měl obsahovat 0.

Ukázkový vstup 2

3
7
138 16011 918976
5478 7748 499926
5234 17727 748589
1157 10511 643136
31200 3005 721285
28839 14469 798851
1933 5378 864127
9
17775 1665 386430
37001 863 922418
9756 4182 746671
12379 9106 807578
3984 4049 640539
25333 9869 780810
20372 7000 688738
16107 11974 827227
10779 10531 770510
5
4916 14132 460944
11856 45422 610561
56014 18216 825793
10363 6220 945356
37418 33866 851593

Ukázkový výstup 2

660
995
140

Jsou dány tři posloupnosti kladných celých čísel délky N: A=(A_1,A_2,\ldots,A_N), B=(B_1,B_2,\ldots,B_N) a C=(C_1,C_2,\ldots,C_N).
Najděte počet dvojic kladných celých čísel (x, y), které splňují následující podmínku:

- A_i \krát x + B_i \krát y < C_i pro všechna 1 \leq i \leq N.

Lze dokázat, že počet takových dvojic kladných celých čísel splňujících tuto podmínku je konečný.
Je zadáno T testových případů, z nichž každý je třeba vyřešit.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu. Zde \mathrm{case}_i označuje i-tý testovací případ.
T
\mathrm{case}_1
\mathrm{case}_2
\vdots
\mathrm{case}_T

Každý testovací případ je uveden v následujícím formátu:
N
A_1 B_1 C_1
A_2 B_2 C_2
\vdots
A_N B_N C_N

Výstup

Tisk T řádků. Na i-tém řádku (1 \leq i \leq T) by měla být odpověď pro \mathrm{case}_i.

Omezení

- 1 \leq T \leq 2 \times 10^5
- 1 \leq N \leq 2 \times 10^5
- 1 \leq A_i, B_i, C_i \leq 10^9
- Součet N ve všech testovacích případech je nejvýše 2 \times 10^5.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázka výstupu 1

2
0

V prvním testovacím případě existují dvě platné dvojice celých čísel: (x, y) = (1, 1), (2,1). První řádek by tedy měl obsahovat 2.
Ve druhém testovacím případě neexistují žádné platné dvojice celých čísel. Druhý řádek by tedy měl obsahovat 0.

Vzorový vstup 2

3
7
138 16011 918976
5478 7748 499926
5234 17727 748589
1157 10511 643136
31200 3005 721285
28839 14469 798851
1933 5378 864127
9
17775 1665 386430
37001 863 922418
9756 4182 746671
12379 9106 807578
3984 4049 640539
25333 9869 780810
20372 7000 688738
16107 11974 827227
10779 10531 770510
5
4916 14132 460944
11856 45422 610561
56014 18216 825793
10363 6220 945356
37418 33866 851593

Ukázka výstupu 2

660
995
140


Existuje jednoduchý orientovaný graf G s N vrcholy a N+M hranami. Vrcholy jsou očíslovány od 1 do N a hrany od 1 do N+M.
Hrana i (1 \leq i \leq N) jde z vrcholu i do vrcholu i+1. (Zde je vrchol N+1 považován za vrchol 1.)
Hrana N+i (1 \leq i \leq M) jde z vrcholu X_i do vrcholu Y_i.
Takahashi je ve vrcholu 1. V každém vrcholu se může přesunout do libovolného vrcholu, ke kterému je odchozí hrana z aktuálního vrcholu.
Spočítejte, kolik způsobů se může pohybovat přesně K krát.
To znamená, že najděte počet celočíselných sekvencí (v_0, v_1, \dots, v_K) délky K+1 splňující všechny následující tři podmínky:

- 1 \leq v_i \leq N pro i = 0, 1, \ \dots, K.
- v_0 = 1.
- Existuje orientovaná hrana z vrcholu v_{i-1} do vrcholu v_i pro i = 1, 2, \ldots, K.

Protože toto číslo může být velmi velké, vytiskněte jej modulo 998244353.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M K
X_1 Y_1
X_2 Y_2
 \dots
X_M Y_M

Výstup

Vytiskněte počet modulo 998244353.

Omezení

- 2 \leq N \leq 2 \times 10^5
- 0 \leq M \leq 50
- 1 \leq K \leq 2 \times 10^5
- 1 \leq X_i, Y_i \leq N, X_i \neq Y_i
- Všechny N+M orientované hrany jsou různé.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

6 2 5
14
25

Ukázkový výstup 1

5

Výše uvedený obrázek představuje graf G. Existuje pět způsobů, jak se může Takahashi pohybovat:

- Vertex 1 \to Vertex 2 \to Vertex 3 \to Vertex 4 \to Vertex 5 \to Vertex 6
- Vertex 1 \to Vertex 2 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 2
- Vertex 1 \to Vertex 2 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 4
- Vertex 1 \to Vertex 4 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 2
- Vertex 1 \to Vertex 4 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 4

Ukázkový vstup 2

10 0 200000

Ukázkový výstup 2

1

Ukázkový vstup 3

199 10 1326
122 39
142 49
164 119
197 127
188 145
69 80
6 120
24 160
18 154
185 27

Ukázkový výstup 3

451022766

There is a simple directed graph G with N vertices and N+M edges. The vertices are numbered 1 to N, and the edges are numbered 1 to N+M.
Edge i (1 \leq i \leq N) goes from vertex i to vertex i+1. (Here, vertex N+1 is considered as vertex 1.)
Edge N+i (1 \leq i \leq M) goes from vertex X_i to vertex Y_i.
Takahashi is at vertex 1. At each vertex, he can move to any vertex to which there is an outgoing edge from the current vertex.
Compute the number of ways he can move exactly K times.
That is, find the number of integer sequences (v_0, v_1, \dots, v_K) of length K+1 satisfying all of the following three conditions:

- 1 \leq v_i \leq N for i = 0, 1, \dots, K.
- v_0 = 1.
- There is a directed edge from vertex v_{i-1} to vertex v_i for i = 1, 2, \ldots, K.

Since this number can be very large, print it modulo 998244353.

Input

The input is given from Standard Input in the following format:
N M K
X_1 Y_1
X_2 Y_2
\vdots
X_M Y_M

Output

Print the count modulo 998244353.

Constraints

- 2 \leq N \leq 2 \times 10^5
- 0 \leq M \leq 50
- 1 \leq K \leq 2 \times 10^5
- 1 \leq X_i, Y_i \leq N, X_i \neq Y_i
- All of the N+M directed edges are distinct.
- All input values are integers.

Sample Input 1

6 2 5
1 4
2 5

Sample Output 1

5

The above figure represents the graph G. There are five ways for Takahashi to move:

- Vertex 1 \to Vertex 2 \to Vertex 3 \to Vertex 4 \to Vertex 5 \to Vertex 6
- Vertex 1 \to Vertex 2 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 2
- Vertex 1 \to Vertex 2 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 4
- Vertex 1 \to Vertex 4 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 2
- Vertex 1 \to Vertex 4 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 4

Sample Input 2

10 0 200000

Sample Output 2

1

Sample Input 3

199 10 1326
122 39
142 49
164 119
197 127
188 145
69 80
6 120
24 160
18 154
185 27

Sample Output 3

451022766

Existuje jednoduchý orientovaný graf G s N vrcholy a N+M hranami. Vrcholy jsou očíslovány od 1 do N a hrany od 1 do N+M.
Hrana i (1 \leq i \leq N) jde z vrcholu i do vrcholu i+1. (Zde je vrchol N+1 považován za vrchol 1.)
Hrana N+i (1 \leq i \leq M) jde z vrcholu X_i do vrcholu Y_i.
Takahashi je ve vrcholu 1. V každém vrcholu se může přesunout do libovolného vrcholu, ke kterému je odchozí hrana z aktuálního vrcholu.
Spočítejte, kolik způsobů se může pohybovat přesně K krát.
To znamená, že najděte počet celočíselných sekvencí (v_0, v_1, \dots, v_K) délky K+1 splňující všechny následující tři podmínky:

- 1 \leq v_i \leq N pro i = 0, 1, \dots,, K.
- v_0 = 1.
- Existuje orientovaná hrana z vrcholu v_{i-1} do vrcholu v_i pro i = 1, 2, \ldots, K.

Protože toto číslo může být velmi velké, vytiskněte jej modulo 998244353.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N M K
X_1 Y_1
X_2 Y_2
\vdots
X_M Y_M

Výstup

Vytiskněte počet modulo 998244353.

Omezení

- 2 \leq N \leq 2 \times 10^5
- 0 \leq M \leq 50
- 1 \leq K \leq 2 \times 10^5
- 1 \leq X_i, Y_i \leq N, X_i \neq Y_i
- Všechny orientované hrany N+M jsou zřetelné.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

6 2 5
14
25

Ukázkový výstup 1

5

Výše uvedený obrázek představuje graf G. Existuje pět způsobů, jak se může Takahashi pohybovat:

- Vertex 1 \to Vertex 2 \to Vertex 3 \to Vertex 4 \to Vertex 5 \to Vertex 6
- Vertex 1 \to Vertex 2 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 2
- Vertex 1 \to Vertex 2 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 4
- Vertex 1 \to Vertex 4 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 2
- Vertex 1 \to Vertex 4 \to Vertex 5 \to Vertex 6 \to Vertex 1 \to Vertex 4

Ukázkový vstup 2

10 0 200 000

Ukázkový výstup 2

1

Ukázkový vstup 3

199 10 1326
122 39
142 49
164 119
197 127
188 145
69 80
6 120
24 160
18 154
185 27

Ukázkový výstup 3

451022766


Máte zadán řetězec S složený z malých anglických písmen a ..
Najděte řetězec, který získáte odstraněním všech . z řetězce S.

Vstup

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

Výstup

Vypište řetězec získaný odstraněním všech . z S.

Omezení

- S je řetězec o délce od 1 do 100 včetně, který se skládá z malých anglických písmen a ..

Ukázka Vstup 1

.v.

Ukázkový výstup 1

v

Odstraněním všech . z .v. získáme v, takže vypíšeme v.

Vzorový vstup 2

chokudai

Ukázka výstupu 2

chokudai

Existují případy, kdy S neobsahuje ..

Vzorový vstup 3

...

Ukázka výstupu 3

Existují také případy, kdy všechny znaky v S obsahují ..

Dostanete řetězec S skládající se z malých anglických písmen a ..
Najděte řetězec získaný odstraněním všech . od S.

Vstup

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

Výstup

Vytiskněte řetězec získaný odstraněním všech . od S.

Omezení

- S je řetězec délky mezi 1 a 100 včetně, který se skládá z malých anglických písmen a ..

Ukázkový vstup 1

.v.

Ukázkový výstup 1

v

Odebrání všech. od .v. výsledkem je v, takže tisk v.

Ukázkový vstup 2

chokudai

Ukázkový výstup 2

chokudai

Existují případy, kdy S neobsahuje ..

Ukázkový vstup 3

...

Ukázkový výstup 3

Existují také případy, kde všechny znaky v S jsou ..

Jste dáni řetězcem S sestávajícím z malých písmen anglické abecedy a ..
Najděte řetězec získaný odstraněním všech . z S.

Vstup

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

Výstup

Vytiskněte řetězec získaný odstraněním všech . z S.

Omezení

- S je řetězec délky mezi 1 a 100 včetně, sestávající z malých písmen anglické abecedy a ..

Ukázkový vstup 1

.v.

Ukázkový výstup 1

v

Odstraněním všech . z .v. získáme v, takže vytiskněte v.

Ukázkový vstup 2

chokudai

Ukázkový výstup 2

chokudai

Jsou případy, kdy S neobsahuje ..

Ukázkový vstup 3

...

Ukázkový výstup 3

Jsou také případy, kdy všechny znaky v S jsou ..


Existuje 12 řetězců S_1, S_2, \ldots, S_{12} složených z malých anglických písmen.
Zjistěte, kolik celých čísel i (1 \leq i \leq 12) splňuje podmínku, že délka řetězce S_i je i.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
S_1
S_2
\vdots
S_{12}

Výstup

Vypište počet celých čísel i (1 \leq i \leq 12) takových, že délka S_i je i.

Omezení

- Každé S_i je řetězec o délce mezi 1 a 100 včetně, který se skládá z malých anglických písmen. (1 \leq i \leq 12)

Vzorový vstup 1

january
february
march
april
may
june
july
august
september
october
november
december

Vzorový výstup 1

1

Existuje pouze jedno celé číslo i takové, že délka S_i je i: 9. Vypište tedy 1.

Vzorový vstup 2

ve
inrtfa
npccxva
djiq
lmbkktngaovl
mlfiv
fmbvcmuxuwggfq
qgmtwxmb
jii
ts
bfxrvs
eqvy

Ukázka výstupu 2

2

Existují dvě celá čísla i taková, že délka S_i je i: 4 a 8. Vypište tedy 2.

Existuje 12 řetězců S_1, S_2, \ldots, S_{12} složených z malých anglických písmen.
Zjistěte, kolik celých čísel i (1 \leq i \leq 12) splňuje podmínku, že délka řetězce S_i je i.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
S_1
S_2
\vdots
S_{12}

Výstup

Vypište počet celých čísel i (1 \leq i \leq 12) takových, že délka S_i je i.

Omezení

- Každé S_i je řetězec o délce mezi 1 a 100 včetně, který se skládá z malých anglických písmen. (1 \leq i \leq 12)

Ukázkový vstup 1

january
únor
březen
duben
květen
červen
červenec
srpen
září
říjen
listopad
prosinec

Ukázkový výstup 1

1

Existuje pouze jedno celé číslo i takové, že délka S_i je i: 9. Vypište tedy 1.

Ukázkový vstup 2

ve
inrtfa
npccxva
djiq
lmbkktngaovl
mlfiv
fmbvcmuxuwggfq
qgmtwxmb
jii
ts
bfxrvs
eqvy

Ukázkový výstup 2

2

Existují dvě celá čísla i taková, že délka S_i je i: 4 a 8. Vypište tedy 2.

Existuje 12 řetězců S_1, S_2, \ldots, S_{12} složených z malých anglických písmen.
Zjistěte, kolik celých čísel i (1 \leq i \leq 12) splňuje, že délka S_i je i.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
S_1
S_2
\vdots
S_{12}

Výstup

Vytiskněte počet celých čísel i (1 \leq i \leq 12) tak, aby délka S_i byla i.

Omezení

- Každé S_i je řetězec o délce mezi 1 a 100 včetně, který se skládá z malých anglických písmen. (1 \leq i \leq 12)

Ukázkový vstup 1

january
february
march
april
may
june
july
august
september
october
november
december

Ukázkový výstup 1

1

Existuje pouze jedno celé číslo i takové, že délka S_i je i: 9. Vytiskněte tedy 1.

Ukázkový vstup 2

ve
inrtfa
npccxva
djiq
lmbkktngaovl
mlfiv
fmbvcmuxuwggfq
qgmtwxmb
jii
ts
bfxrvs
eqvy

Ukázkový výstup 2

2

Existují dvě celá čísla i taková, že délka S_i je i: 4 a 8. Vytiskněte tedy 2.


Na klávesnici je 26 kláves uspořádaných na číselné ose.
Rozložení této klávesnice je reprezentováno řetězcem \( S \), což je permutace ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Klávesa odpovídající znaku ( S_x ) se nachází na souřadnici ( x ) (( 1 \leq x \leq 26 \)). Zde \( S_x \) označuje \( x \)-tý znak řetězce \( S \).
Tuto klávesnici použijete k zadání znaků ABCDEFGHIJKLMNOPQRSTUVWXYZ v tomto pořadí, přičemž každý znak napíšete přesně jednou ukazováčkem pravé ruky.
Pro zadání znaku musíte přesunout prst na souřadnici klávesy odpovídající tomuto znaku a stisknout klávesu.
Na začátku je váš prst na souřadnici klávesy odpovídající znaku ( A ). Najděte minimální možnou celkovou ujetou vzdálenost prstu od stisknutí klávesy pro ( A ) po stisknutí klávesy pro ( Z \). Samotné stisknutí klávesy nepřispívá ke vzdálenosti.

Vstup

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

Výstup

Vytiskněte odpověď.

Omezení

- S je permutace ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Ukázkový vstup 1

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Ukázkový výstup 1

25

Od stisknutí klávesy pro A ke stisknutí klávesy pro Z musíte přesunout prst 1 jednotku stále vpřed ve směru kladných hodnot, což vede k celkové uražené vzdálenosti 25. Nelze stisknout všechny klávesy s celkovou uraženou vzdáleností menší než 25, takže vytiskněte 25.

Ukázkový vstup 2

MGJYIZDKSBHPVENFLQURTCWOAX

Ukázkový výstup 2

223

K dispozici je klávesnice s 26 klávesami uspořádanými do číselné řady.
Uspořádání této klávesnice je reprezentováno řetězcem S, který je permutací ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Klávesa odpovídající znaku S_x se nachází na souřadnici x (1 \leq x \leq 26). Zde S_x označuje x-tý znak S.
Pomocí této klávesnice budete zadávat ABCDEFGHIJKLMNOPQRSTUVWXYZ v tomto pořadí, přičemž každé písmeno napíšete přesně jednou pravým ukazováčkem.
Chcete-li zadat znak, musíte prst přesunout na souřadnici klávesy odpovídající tomuto znaku a stisknout klávesu.
Zpočátku se váš prst nachází na souřadnici klávesy odpovídající písmenu A. Najděte nejmenší možnou celkovou uraženou vzdálenost vašeho prstu od stisknutí klávesy pro písmeno A do stisknutí klávesy pro písmeno Z. Zde stisknutí klávesy nepřispívá ke vzdálenosti.

Vstup

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

Výstup:

Vypište odpověď.

Omezení

- S je permutace ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Ukázka Vstup 1

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Vzorový výstup 1

25

Od stisknutí klávesy pro A do stisknutí klávesy pro Z je třeba posunout prst vždy o 1 jednotku v kladném směru, což vede k celkové uražené vzdálenosti 25. Není možné stisknout všechny klávesy s celkovou uraženou vzdáleností menší než 25, proto vypište 25.

Ukázka vstupu 2

MGJYIZDKSBHPVENFLQURTCWOAX

Ukázka výstupu 2

223

K dispozici je klávesnice s 26 klávesami uspořádanými na číselné ose.
Uspořádání této klaviatury představuje řetězec S, který je permutací ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Klíč odpovídající znaku S_x je umístěn na souřadnici x (1 \leq x \leq 26). Zde S_x označuje x-tý znak S.
Tuto klávesnici použijete pro zadávání ABCDEFGHIJKLMNOPQRSTUVWXYZ v tomto pořadí, přičemž každé písmeno napíšete právě jednou pravým ukazováčkem.
Chcete-li zadat znak, musíte přesunout prst na souřadnici klávesy odpovídající danému znaku a stisknout klávesu.
Zpočátku je váš prst na souřadnici klávesy odpovídající A. Najděte minimální možnou celkovou ujetou vzdálenost vašeho prstu od stisknutí klávesy pro A do stisknutí klávesy pro Z. Zde stisknutí klávesy nepřispívá ke vzdálenosti.

Vstup

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

Výstup

Vytiskněte odpověď.

Omezení

- S je permutace ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Ukázkový vstup 1

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Ukázkový výstup 1

25

Od stisknutí klávesy pro A po stisknutí klávesy pro Z musíte prstem pohnout o 1 jednotku v kladném směru, což má za následek celkovou ujetou vzdálenost 25. Není možné stisknout všechny klávesy s celkovou ujetou vzdáleností. méně než 25, vytiskněte tedy 25.

Ukázkový vstup 2

MGJYIZDKSBHPVENFLQURTCWOAX

Ukázkový výstup 2

223


Existuje N typů položek. I-tý typ položky má váhu w_i a hodnotu v_i. Každý typ má k dispozici 10^{10} položek.
Takahaši se chystá vybrat několik položek a vložit je do pytle o kapacitě W. Chce maximalizovat hodnotu vybraných položek a zároveň se vyhnout výběru příliš mnoha položek stejného typu. Proto definuje štěstí výběru k_i položek typu i jako k_i v_i - k_i^2. Chce vybírat položky tak, aby maximalizoval celkové štěstí všech typů při zachování celkové váhy nejvýše W. Vypočítejte maximální celkové štěstí, kterého může dosáhnout.

Vstupní údaje

Vstup je zadán ze standardního vstupu v následujícím formátu:
N W
w_1 v_1
w_2 v_2
\vdots
w_N v_N

Výstup

Vypište odpověď.

Omezení

- 1 \leq N \leq 3000
- 1 \leq W \leq 3000
- 1 \leq w_i \leq W
- 1 \leq v_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 10
3 4
3 2

Ukázka výstupu 1

5

Výběrem 2 položek typu 1 a 1 položky typu 2 lze dosáhnout celkového štěstí 5, což je optimální.
Zde je štěstí pro typ 1 2 \times 4 - 2^2 = 4 a štěstí pro typ 2 je 1 \times 2 - 1^2 = 1.
Celková váha je 9, což je v rámci kapacity 10.

Vzorový vstup 2

3 6
1 4
2 3
2 7

Vzorový výstup 2

14

Vzorový vstup 3

1 10
1 7

Vzorový výstup 3

12

Existuje N typů položek. I-tý typ položky má váhu w_i a hodnotu v_i. Každý typ má k dispozici 10^{10} položek.
Takahashi si vybere některé položky a vloží je do tašky s kapacitou W. Chce maximalizovat hodnotu vybraných položek a zároveň se vyhnout výběru příliš mnoha položek stejného typu. Proto definuje štěstí při výběru k_i položek typu i jako k_i v_i - k_i^2. Chce si vybrat položky tak, aby maximalizoval celkové štěstí přes všechny typy a zároveň ponechal celkovou váhu nejvýše W. vypočítejte maximální celkové štěstí, kterého může dosáhnout. maximální celkové štěstí, kterého může dosáhnout.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N W
w_1 v_1
w_2 v_2
\vtečky
w_N v_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq N \leq 3000
- 1 \leq W \leq 3000
- 1 \leq w_i \leq W
- 1 \leq v_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 10
3 4
3 2

Ukázkový výstup 1

5

Výběrem 2 položek typu 1 a 1 položky typu 2 lze dosáhnout celkového štěstí 5, což je optimální.
Zde je štěstí pro typ 1 2 \× 4 - 2^2 = 4 a štěstí pro typ 2 je 1 \times 2 - 1^2 = 1.
Celková hmotnost je 9, což je v rámci kapacity 10.

Ukázkový vstup 2

3 6
1 4
2 3
2 7

Ukázkový výstup 2

14

Ukázkový vstup 3

1 10
1 7

Ukázkový výstup 3

12

Existuje N typů položek. i-tý typ položky má váhu w_i a hodnotu v_i. Každý typ má k dispozici 10^{10} položek.
Takahashi si vybere některé položky a vloží je do tašky s kapacitou W. Chce maximalizovat hodnotu vybraných položek a zároveň se vyhnout výběru příliš mnoha položek stejného typu. Proto definuje štěstí při výběru k_i položek typu i jako k_i v_i - k_i^2. Chce si vybrat položky tak, aby maximalizoval celkové štěstí přes všechny typy a zároveň ponechal celkovou váhu nejvýše W. Vypočítejte maximální celkové štěstí, kterého může dosáhnout.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N W
w_1 v_1
w_2 v_2
\vdots
w_N v_N

Výstup

Vytiskněte odpověď.

Omezení

- 1 \leq N \leq 3000
- 1 \leq W \leq 3000
- 1 \leq w_i \leq W
- 1 \leq v_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 10
3 4
3 2

Ukázkový výstup 1

5

Výběrem 2 položek typu 1 a 1 položky typu 2 lze dosáhnout celkového štěstí 5, což je optimální.
Zde je štěstí pro typ 1 2 \krát 4 - 2^2 = 4 a štěstí pro typ 2 je 1 \krát 2 - 1^2 = 1.
Celková hmotnost je 9, což je v rámci kapacity 10.

Ukázkový vstup 2

3 6
1 4
2 3
2 7

Ukázkový výstup 2

14

Ukázkový vstup 3

1 10
1 7

Ukázkový výstup 3

12


Na dvourozměrné rovině je 2N bodů P_1,P_2,\ldots,P_N, Q_1,Q_2,\ldots,Q_N.
Souřadnice bodu P_i jsou (A_i, B_i) a souřadnice bodu Q_i jsou (C_i, D_i).
Žádné tři různé body neleží na stejné přímce.
Určete, zda existuje permutace R = (R_1, R_2, \ldots, R_N) z (1, 2, \ldots, N), která splňuje následující podmínku. Pokud taková R existuje, najděte ji.

- Pro každé celé číslo i od 1 do N nechť úsečka i je úsečka spojující P_i a Q_{R_i}. Pak se úsečka i a úsečka j (1 \leq i < j \leq N) nikdy neprotínají.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N
C_1 D_1
C_2 D_2
\vdots
C_N D_N

Výstup

Pokud neexistuje žádná R, která by splňovala podmínku, vytiskněte -1.
Pokud taková R existuje, vytiskněte R_1, R_2, \ldots, R_N oddělené mezerami. Pokud existuje více řešení, můžete vytisknout kteroukoli z nich.

Omezení

- 1 \leq N \leq 300
- 0 \leq A_i, B_i, C_i, D_i \leq 5000 (1 \leq i \leq N)
- (A_i, B_i) \neq (A_j, B_j) (1 \leq i < j \leq N)
- (C_i, D_i) \neq (C_j, D_j) (1 \leq i < j \leq N)
- (A_i, B_i) \neq (C_j, D_j) (1 \leq i, j \leq N)
- Žádné tři různé body neleží na stejné přímce.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

2 1 3

Body jsou uspořádány, jak je znázorněno na následujícím obrázku.

Nastavením R = (2, 1, 3) se tři úsečky neprotínají. Také jakékoli z R = (1, 2, 3), (1, 3, 2), (2, 3, 1) a (3, 1, 2) je platnou odpovědí.

Ukázkový vstup 2

8
59 85
60 57
72 12
3 27
16 58
41 94
77 64
97 20
32 37
7 2
57 94
35 70
38 60
97 100
5 76
38 8

Ukázkový výstup 2

3 5 8 2 7 4 6 1

Na dvourozměrné rovině je 2N bodů P_1,P_2,\ldots,P_N, Q_1,Q_2,\ldots,Q_N.
Souřadnice P_i jsou (A_i, B_i) a souřadnice Q_i jsou (C_i, D_i).
Žádné tři různé body neleží na stejné přímce.
Určete, zda existuje permutace R = (R_1, R_2, \ldots, R_N) z (1, 2, \ldots, N), která splňuje následující podmínku. Pokud takové R existuje, najděte ho.

- Pro každé celé číslo i od 1 do N nechť segment i je úsečka spojující P_i a Q_{R_i}.  Potom se segment i a segment j (1 \leq i < j \leq N) nikdy neprotnou.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N
C_1 D_1
C_2 D_2
\vdots
C_N D_N

Výstup

Pokud není žádné R splňující podmínku, vytiskněte -1.
Pokud takové R existuje, vytiskněte R_1, R_2, \ldots, R_N oddělené mezerami. Pokud existuje více řešení, můžete vytisknout kterékoli z nich.

Omezení

- 1 \leq N \leq 300
- 0 \leq A_i, B_i, C_i, D_i \leq 5000 (1 \leq i \leq N)
- (A_i, B_i) \neq (A_j, B_j) (1 \leq i < j \leq N)
- (C_i, D_i) \neq (C_j, D_j) (1 \leq i < j \leq N)
- (A_i, B_i) \neq (C_j, D_j) (1 \leq i, j \leq N)
- Žádné tři různé body neleží na stejné přímce.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

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

Ukázkový výstup 1

2 1 3

Body jsou uspořádány tak, jak je znázorněno na následujícím obrázku.

Nastavením R = (2, 1, 3) se tři úsečky vzájemně nekříží. Platná odpověď je také kterákoli z R = (1, 2, 3), (1, 3, 2), (2, 3, 1) a (3, 1, 2).

Ukázkový vstup 2

8
59 85
60 57
72 12
3 27
16 58
41 94
77 64
97 20
32 37
7 2
57 94
35 70
38 60
97 100
5 76
38 8

Ukázkový výstup 2

3 5 8 2 7 4 6 1

Na dvourozměrné rovině je 2N bodů P_1,P_2,\ldots,P_N, Q_1,Q_2,\ldots,Q_N.
Souřadnice bodu P_i jsou (A_i, B_i) a souřadnice bodu Q_i jsou (C_i, D_i).
Žádné tři různé body neleží na stejné přímce.
Určete, zda existuje permutace R = (R_1, R_2, \ldots, R_N) (1, 2, \ldots, N), která splňuje následující podmínku. Pokud taková R existuje, najděte ji.

- Pro každé celé číslo i od 1 do N nechť je úsečka i úsečkou spojující P_i a Q_{R_i}.  Pak se úsečka i a úsečka j (1 \leq i < j \leq N) nikdy neprotínají.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N
C_1 D_1
C_2 D_2
\vdots
C_N D_N

Výstup

Pokud neexistuje R splňující podmínku, vypište -1.
Pokud takové R existuje, vypište R_1, R_2, \ldots, R_N oddělené mezerami. Pokud existuje více řešení, můžete vypsat kterékoli z nich.

Omezení

- 1 \leq N \leq 300
- 0 \leq A_i, B_i, C_i, D_i \leq 5000 (1 \leq i \leq N)
- (A_i, B_i) \neq (A_j, B_j) (1 \leq i < j \leq N)
- (C_i, D_i) \neq (C_j, D_j) (1 \leq i < j \leq N)
- (A_i, B_i) \neq (C_j, D_j) (1 \leq i, j \leq N)
- Žádné tři různé body neleží na stejné přímce.
- Všechny vstupní hodnoty jsou celá čísla.

Příklad Vstup 1

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

Ukázka výstupu 1

2 1 3

Body jsou uspořádány podle následujícího obrázku.

Při nastavení R = (2, 1, 3) se tři úsečky navzájem neprotínají. Platnou odpovědí je také kterákoli z možností R = (1, 2, 3), (1, 3, 2), (2, 3, 1) a (3, 1, 2).

Vzorový vstup 2

8
59 85
60 57
72 12
3 27
16 58
41 94
77 64
97 20
32 37
7 2
57 94
35 70
38 60
97 100
5 76
38 8

Výstupní vzorek 2

3 5 8 2 7 4 6 1


Jsou vám dány dvě celočíselné sekvence A a B, každá o délce N. Vyberte celá čísla i, j (1 \leq i, j \leq N), abyste maximalizovali hodnotu A_i + B_j.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
N
A_1 A_2 … A_N
B_1 B_2 … B_N

Výstup

Vytiskněte maximální možnou hodnotu A_i + B_j.

Omezení

- 1 \leq N \leq 5 \cdot 10^5
- |A_i| \leq 10^9 (i=1,2,…,N)
- |B_j| \leq 10^9 (j=1,2,…,N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2
-1 5
3 -7

Ukázkový výstup 1

8

Pro (i,j) = (1,1), (1,2), (2,1), (2,2) jsou hodnoty A_i + B_j 2, -8, 8, -2, resp. (i,j) = (2,1) dosáhne maximální hodnoty 8.

Ukázkový vstup 2

6
15 12 3 -13 -1 -19
7 17 -13 -10 18 4

Ukázkový výstup 2

33

Jsou vám dány dvě celočíselné sekvence A a B, každá o délce N. Vyberte celá čísla i, j (1 \leq i, j \leq N), abyste maximalizovali hodnotu A_i + B_j.

Vstup

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

Výstup

Vypište maximální možnou hodnotu A_i + B_j.

Omezení

- 1 \leq N \leq 5 \times 10^5
- |A_i| \leq 10^9 (i=1,2,\...,N)
- |B_j| \leq 10^9 (j=1,2,\...,N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2
-1 5
3 -7

Ukázkový výstup 1

8

Pro (i,j) = (1,1), (1,2), (2,1), (2,2) jsou hodnoty A_i + B_j 2, -8, 8, -2, resp. (i,j) = (2,1) dosáhne maximální hodnoty 8.

Ukázkový vstup 2

6
15 12 3 -13 -1 -19
7 17 -13 -10 18 4

Ukázkový výstup 2

33

Jsou vám dány dvě celočíselné sekvence A a B, každá o délce N. Vyberte celá čísla i, j (1 \leq i, j \leq N), abyste maximalizovali hodnotu A_i + B_j.

Vstup

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

Výstup

Vytiskněte maximální možnou hodnotu A_i + B_j.

Omezení

- 1 \leq N \leq 5 \cdot 10^5
- |A_i| \leq 10^9 (i=1,2,...,N)
- |B_j| \leq 10^9 (j=1,2,...,N)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2
-1 5
3 -7

Ukázkový výstup 1

8

Pro (i,j) = (1,1), (1,2), (2,1), (2,2) jsou hodnoty A_i + B_j 2, -8, 8, -2, resp. (i,j) = (2,1) dosáhne maximální hodnoty 8.

Ukázkový vstup 2

6
15 12 3 -13 -1 -19
7 17 -13 -10 18 4

Ukázkový výstup 2

33


Probíhají volby, kterých se účastní N kandidátů s čísly 1, 2, \ldots, N. K dispozici je K hlasů, z nichž některé již byly sečteny.
Kandidát i dosud získal A_i hlasů.
Po sečtení všech hlasovacích lístků bude kandidát i (1 \leq i \leq N) zvolen tehdy a jen tehdy, když počet kandidátů, kteří získali více hlasů než on, bude menší než M. Zvoleno může být více kandidátů.
Pro každého kandidáta najděte minimální počet dodatečných hlasů, které potřebuje ze zbývajících hlasovacích lístků, aby bylo zaručeno jeho vítězství bez ohledu na to, jak ostatní kandidáti získají hlasy.
Formálně vyřešte následující úlohu pro každé i = 1,2,\ldots,N.
Určete, zda existuje nezáporné celé číslo X nepřesahující K - \displaystyle{\sum_{i=1}^{N}}. A_i splňující následující podmínku.  Pokud existuje, najděte nejmenší možné takové celé číslo.

- Pokud kandidát i získá X hlasů navíc, pak bude vždy zvolen.

Vstup

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

Výstup

Nechť C_i je minimální počet dodatečných hlasů, které potřebuje kandidát i ze zbývajících hlasovacích lístků, aby bylo zaručeno jeho vítězství bez ohledu na to, jak hlasy dostanou ostatní kandidáti. Vypište C_1, C_2, \ldots, C_N oddělené mezerami.
Pokud si kandidát i již zajistil vítězství, pak nechť C_i = 0. Pokud si kandidát i nemůže zajistit vítězství za žádných okolností, pak nechť C_i = -1.

Omezení

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq K \leq 10^{12}
- 0 \leq A_i \leq 10^{12}
- \displaystyle{\sum_{i=1}^{N} A_i} \leq K
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

5 2 16
3 1 4 1 5

Vzorový výstup 1

2 -1 1 -1 0

Dosud bylo sečteno 14 hlasů a zbývají 2 hlasy.
C na výstupu je (2, -1, 1, -1, 0).  Například:

- Kandidát 1 si může zajistit vítězství, pokud získá o 2 hlasy více, zatímco pokud získá o 1 hlas více, tak nikoliv.  C_1 = 2.
- Kandidát 2 si nemůže nikdy (i když získá o 2 hlasy více) zajistit vítězství, takže C_2 = -1.

Vzorový vstup 2

12 1 570
81 62 17 5 5 86 15 7 79 26 6 28

Vzorový výstup 2

79 89 111 117 117 74 112 116 80 107 117 106

Koná se volba s N kandidáty očíslovanými 1, 2, \ldots, N. Je K hlasů, některé z nich byly dosud spočítány.
Dosud kandidát i obdržel A_i hlasů.
Jakmile budou všechny hlasy spočítány, kandidát i (1 \leq i \leq N) bude zvolen, pokud a jen pokud je počet kandidátů, kteří obdrželi více hlasů než on, menší než M. Může být zvoleno více kandidátů.
Pro každého kandidáta zjistěte minimální počet dalších hlasů, které potřebují z remaining ballots, aby zaručili své vítězství bez ohledu na to, kolik hlasů obdrží ostatní kandidáti.
Formálně vyřešte následující problém pro každého i = 1,2,\ldots,N.
Zjištěte, zda existuje nezáporné celé číslo X nepřesahující K - \displaystyle{\sum_{i=1}^{N}} A_i splňující následující podmínku. Pokud existuje, najděte minimální možné takové celé číslo.

- Pokud kandidát i obdrží X dalších hlasů, pak bude kandidát i vždy zvolen.

Vstup

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

Výstup

Nechť C_i je minimální počet dalších hlasů, které kandidát i potřebuje z remaining ballots, aby zaručil své vítězství bez ohledu na to, kolik hlasů obdrží ostatní kandidáti. Vytiskněte C_1, C_2, \ldots, C_N oddělené mezerami.
Pokud kandidát i již zajistil své vítězství, nechť C_i = 0. Pokud kandidát i nemůže za žádných okolností zajistit své vítězství, nechť C_i = -1.

Omezení

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq K \leq 10^{12}
- 0 \leq A_i \leq 10^{12}
- \displaystyle{\sum_{i=1}^{N} A_i} \leq K
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 2 16
3 1 4 1 5

Ukázkový výstup 1

2 -1 1 -1 0

14 hlasů bylo dosud spočítáno a zbývají 2 hlasy.
C, který má být vytištěn, je (2, -1, 1, -1, 0). Například:

- Kandidát 1 může zajistit své vítězství získáním dalších 2 hlasů, ale ne 1 dalšího hlasu. Tedy C_1 = 2.
- Kandidát 2 nemůže nikdy (i když získá další 2 hlasy) zajistit své vítězství, takže C_2 = -1.

Ukázkový vstup 2

12 1 570
81 62 17 5 5 86 15 7 79 26 6 28

Ukázkový výstup 2

79 89 111 117 117 74 112 116 80 107 117 106

Probíhá volba s N kandidáty očíslovanými 1, 2, \ldots, N. Je K hlasů, z nichž některé jsou zatím sečteny.
Doposud kandidát i získal A_i hlasy.
Po sečtení všech hlasovacích lístků bude zvolen kandidát i (1 \leq i \leq N) tehdy a pouze tehdy, když počet kandidátů, kteří získali více hlasů než oni, je menší než M. Může být zvoleno více kandidátů.
Pro každého kandidáta najděte minimální počet dodatečných hlasů, které potřebuje ze zbývajících hlasovacích lístků, aby bylo zaručeno jeho vítězství bez ohledu na to, jak ostatní kandidáti získají hlasy.
Formálně vyřešte následující problém pro každé i = 1,2,\ldots,N.
Určete, zda existuje nezáporné celé číslo X nepřesahující K - \displaystyle{\sum_{i=1}^{N}} A_i splňující následující podmínku.  Pokud existuje, najděte minimální možné takové celé číslo.

- Pokud kandidát i získá X dodatečných hlasů, bude vždy zvolen kandidát i.

Vstup

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

Výstup

Nechť C_i je minimální počet dodatečných hlasů, které kandidát i potřebuje ze zbývajících hlasovacích lístků, aby bylo zaručeno jejich vítězství bez ohledu na to, jak ostatní kandidáti získají hlasy. Vytiskněte C_1, C_2, \ldots, C_N oddělené mezerami.
Pokud kandidát i již zajistil své vítězství, pak nechť C_i = 0. Pokud kandidát i nemůže za žádných okolností zajistit své vítězství, pak nechť C_i = -1.

Omezení

- 1 \leq M \leq N \leq 2 \krát 10^5
- 1 \leq K \leq 10^{12}
- 0 \leq A_i \leq 10^{12}
- \displaystyle{\sum_{i=1}^{N} A_i} \leq K
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

5 2 16
3 1 4 1 5

Ukázkový výstup 1

2-11-10

Zatím je sečteno 14 hlasů a zbývají 2 hlasy.
C na výstup je (2, -1, 1, -1, 0).  Například:

- Kandidát 1 si může zajistit vítězství získáním dalších 2 hlasů, nikoli však získáním 1 dalšího hlasu.  Tedy C_1 = 2.
- Kandidát 2 si nikdy nemůže (i když získá 2 další hlasy) zajistit své vítězství, takže C_2 = -1.

Ukázkový vstup 2

12 1 570
81 62 17 5 5 86 15 7 79 26 6 28

Ukázkový výstup 2

79 89 111 117 117 74 112 116 80 107 117 106


Je dána permutace P=(P_1,P_2,\dots,P_N) z (1,2,\dots,N).
Uvažujte následující operace k\ (k=2,3,\dots,N) na této permutaci.

- Operace k: Pro i=1,2,\dots,k-1 v tomto pořadí, jestliže P_i > P_{i+1}, prohoďte hodnoty i-tého a (i+1)-tého prvku P.

Dále je dána neklesající posloupnost A=(A_1,A_2,\dots,A_M)\ (2 \leq A_i \leq N) délky M.
Pro každé i=1,2,\dots,M najděte inverzní číslo P po použití operací A_1, A_2, \dots, A_i v tomto pořadí.

 Jaké je inverzní číslo posloupnosti?

Inverzní číslo posloupnosti x=(x_1,x_2,\dots,x_n) délky n je počet dvojic celých čísel (i,j)\ (1\leq i < j \leq n) takových, že x_i > x_j.

Vstup

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

Výstup

Vytiskněte M řádků. K-tý řádek by měl obsahovat odpověď na úlohu pro i=k.

Omezení

- 2 \leq N \leq 2 \times 10^5
- 1 \leq M \leq 2 \krát 10^5
- 2 \leq A_i \leq N
- P je permutace (1,2,\bodů,N).
- A_i \leq A_{i+1} pro i=1,2,\dots,M-1.
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

6
3 2 4 1 6 5
2
4 6

Vzorový výstup 1

3
1

Nejprve se provede operace 4. Během ní se P změní následovně: (3,2,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,1,4,6,5). Inverzní číslo P je potom 3.
Dále se provede operace 6, při níž se z P nakonec stane (2,1,3,4,5,6), jehož inverzní číslo je 1.

Vzorový vstup 2

20
12 14 16 8 7 15 19 6 18 5 13 9 10 17 4 1 11 20 2 3
15
3 4 6 8 8 9 10 12 13 15 18 18 19 19 20

Vzorový výstup 2

117
116
113
110
108
105
103
99
94
87
79
72
65
58
51

Je dána permutace P=(P_1,P_2,\dots,P_N) z (1,2,\dots,N).
Uvažujte následující operace k\ (k=2,3,\dots,N) na této permutaci.

- Operace k: Pro i=1,2,\dots,k-1 v tomto pořadí, jestliže P_i > P_{i+1}, prohoďte hodnoty i-tého a (i+1)-tého prvku P.

Dále je dána neklesající posloupnost A=(A_1,A_2,\dots,A_M)\ (2 \leq A_i \leq N) délky M.
Pro každé i=1,2,\dots,M najděte inverzní číslo P po použití operací A_1, A_2, \dots, A_i v tomto pořadí.

 Jaké je inverzní číslo posloupnosti?

Inverzní číslo posloupnosti x=(x_1,x_2,\dots,x_n) délky n je počet dvojic celých čísel (i,j)\ (1\leq i < j \leq n) takových, že x_i > x_j.

Vstup

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

Výstup

Vytiskněte M řádků. K-tý řádek by měl obsahovat odpověď na úlohu pro i=k.

Omezení

- 2 \leq N \leq 2 \krát 10^5
- 1 \leq M \leq 2 \krát 10^5
- 2 \leq A_i \leq N
- P je permutace (1,2,\dots,N).
- A_i \leq A_{i+1} pro i=1,2,\dots,M-1.
- Všechny vstupní hodnoty jsou celá čísla.

Příklad Vstup 1

6
3 2 4 1 6 5
2
4 6

Ukázka výstupu 1

3
1

Nejprve se provede operace 4. Během ní se P změní následovně: (3,2,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,1,4,6,5). Inverzní číslo P je potom 3.
Dále se provede operace 6, při níž se z P nakonec stane (2,1,3,4,5,6), jehož inverzní číslo je 1.

Vzorový vstup 2

20
12 14 16 8 7 15 19 6 18 5 13 9 10 17 4 1 11 20 2 3
15
3 4 6 8 8 9 10 12 13 15 18 18 19 19 20

Ukázkový výstup 2

117
116
113
110
108
105
103
99
94
87
79
72
65
58
51

Je vám dána permutace P=(P_1,P_2,\tečky,P_N) z (1,2,\tečky,N).
Zvažte následující operace k\ (k=2,3,\tečky,N) na této permutaci.

- Operace k: Pro i=1,2,\tečky,k-1 v tomto pořadí, pokud P_i > P_{i+1}, zaměňte hodnoty i-tého a (i+1)-tého prvku P .

Je vám také dána neklesající posloupnost A=(A_1,A_2,\tečky,A_M)\ (2 \leq A_i \leq N) délky M.
Pro každé i=1,2,\dots,M zjistěte číslo inverze P po aplikaci operací A_1, A_2, \dots, A_i v tomto pořadí.

 Jaké je číslo inverze sekvence?

Číslo inverze sekvence x=(x_1,x_2,\tečky,x_n) délky n je počet dvojic celých čísel (i,j)\ (1\leq i < j \leq n), takže x_i > x_j .

Vstup

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

Výstup

Tisk M řádků. K-tý řádek by měl obsahovat odpověď na úlohu pro i=k.

Omezení

- 2 \leq N \leq 2 \times  10^5
- 1 \leq M \leq 2 \times  10^5
- 2 \leq A_i \leq N
- P je permutace (1,2,\dots,N).
- A_i \leq A_{i+1} pro i=1,2,\dots,M-1.
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

6
3 2 4 1 6 5
2
4 6

Ukázkový výstup 1

3
1

Nejprve se provede operace 4. Během toho se P mění následovně: (3,2,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,4,1,6,5 ) \rightarrow (2,3,1,4,6,5). Inverzní číslo P poté je 3.
Dále se provede operace 6, kde P se nakonec stane (2,1,3,4,5,6), jehož inverzní číslo je 1.

Ukázkový vstup 2

20
12 14 16 8 7 15 19 6 18 5 13 9 10 17 4 1 11 20 2 3
15
3 4 6 8 8 9 10 12 13 15 18 18 19 19 20

Ukázkový výstup 2

117
116
113
110
108
105
103
99
94
87
79
72
65
58
51


Dostanete dvě permutace: P=(P_1,P_2,\dots,P_N) a Q=(Q_1,Q_2,\dots,Q_N) z (1,2,\dots,N).
Do každé buňky mřížky N-by-N napište jeden ze znaků 0 a 1 tak, aby byly splněny všechny následující podmínky:

- Nechť S_i řetězec získaný zřetězením znaků v i-tém řádku od 1. do N-tého sloupce. Poté S_{P_1} < S_{P_2} < \dots < S_{P_N} v lexikografickém pořadí.
- Nechť T_i je řetězec získaný zřetězením znaků v i-tém sloupci od 1. do N-tého řádku. Poté T_{Q_1} < T_{Q_2} < \dots < T_{Q_N} v lexikografickém pořadí.

Lze dokázat, že pro každé P a Q existuje alespoň jeden způsob zápisu znaků, který splňuje všechny podmínky.
 Co znamená "X < Y v lexikografickém pořadí"?
Pro řetězce X=X_1X_2\dots X_{|X|} a Y_1Y_2\dots Y_{|Y|}, "X < Y v lexikografickém pořadí" znamená, že 1. nebo 2. níže drží.
zde, |X| a |Y| označují délky X a Y.

-  |X| \lt |Y| and X_1X_2\ldots X_{|X|} = Y_1Y_2\ldots Y_{|X|}.
- Existuje celé číslo 1 \leq i \leq \min\lbrace |X|, |Y| \rbrace tak, aby byly splněny obě následující podmínky:

-  X_1X_2\ldots X_{i-1} = Y_1Y_2\ldots Y_{i-1}
- X_i je menší než Y_i.

Vstup

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

Výstup

Vytiskněte způsob, jak vyplnit mřížku, která splňuje podmínky v následujícím formátu, kde A_{ij} je znak zapsaný v i-tém řádku a j-tém sloupci:
A_{11}A_{12}\dots A_{1N}
\vdots
A_{N1}A_{N2}\dots A_{NN}

Pokud existuje více způsobů, jak podmínky splnit, bude přijat kterýkoli z nich.

Omezení

- 2 \leq N \leq 500
- P a Q jsou permutace (1,2,\dots,N).
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

3
1 2 3
2 1 3

Ukázkový výstup 1

001
101
110

V této ukázce S_1=001, S_2=101, S_3=110 a T_1=011, T_2=001, T_3=110. Proto S_1 < S_2 < S_3 a T_2 < T_1 < T_3 drží, splňující podmínky.

Vzorkovací vstup 2

15
8 15 10 2 4 3 1 13 5 12 9 6 14 11 7
4 1 5 14 3 12 13 7 11 8 6 2 9 15 10

Ukázkový výstup 2

010001111110101
001000000101001
010001001100010
010000011110010
010011101101101
100101110100000
111100011001000
000001001100000
100011011000101
000111101011110
101010101010101
011010101011110
010011000010011
100110010110101
000101101100100

Jsou vám dány dvě permutace P=(P_1,P_2,\tečky,P_N) a Q=(Q_1,Q_2,\tečky,Q_N) z (1,2,\tečky,N).
Napište jeden ze znaků 0 a 1 do každé buňky mřížky N-by-N tak, aby byly splněny všechny následující podmínky:

- Nechť S_i je řetězec získaný zřetězením znaků v i-tém řádku od 1. do N-tého sloupce. Potom S_{P_1} < S_{P_2} < \dots < S_{P_N} v lexikografickém pořadí.
- Nechť T_i je řetězec získaný zřetězením znaků v i-tém sloupci od 1. do N-tého řádku. Potom T_{Q_1} < T_{Q_2} < \dots < T_{Q_N} v lexikografickém pořadí.

Lze dokázat, že pro jakékoli P a Q existuje alespoň jeden způsob, jak zapsat znaky, který splňuje všechny podmínky.
 Co znamená "X < Y v lexikografickém pořadí"?
Pro řetězce X=X_1X_2\tečky X_{|X|} a Y = Y_1Y_2\tečky Y_{|Y|} znamená "X < Y v lexikografickém pořadí", že platí 1. nebo 2. níže.
Zde |X| a |Y| označují délky X a Y.

- |X| \lt |Y| a X_1X_2\ldots X_{|X|} = Y_1Y_2\ldots Y_{|X|}.
- Existuje celé číslo 1 \leq i \leq \min\lbrace |X|, |Y| \rbrace tak, že platí obě následující:

- X_1X_2\ldots X_{i-1} = Y_1Y_2\ldots Y_{i-1}
- X_i je menší než Y_i.

Vstup

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

Výstup

Vytiskněte způsob vyplnění mřížky, který splňuje podmínky, v následujícím formátu, kde A_{ij} je znak zapsaný v i-tém řádku a j-tém sloupci:
A_{11}A_{12}\\dots A_{1N}
\vdots
A_{N1}A_{N2}\\dots A_{NN}

Pokud existuje více způsobů, jak splnit podmínky, bude přijat kterýkoli z nich.

Omezení

- 2 \leq N \leq 500
- P a Q jsou permutace (1,2,\dots,N).
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3
1 2 3
2 1 3

Ukázkový výstup 1

001
101
110

V tomto vzorku S_1=001, S_2=101, S_3=110 a T_1=011, T_2=001, T_3=110. Platí tedy S_1 < S_2 < S_3 a T_2 < T_1 < T_3, podmínky splňují.

Ukázkový vstup 2

15
8 15 10 2 4 3 1 13 5 12 9 6 14 11 7
4 1 5 14 3 12 13 7 11 8 6 2 9 15 10

Ukázkový výstup 2

010001111110101
001000000101001
010001001100010
01000001110010
010011101101101
100101110100000
111100011001000
000001001100000
100011011000101
000111101011110
101010101010101
011010101011110
010011000010011
100110010110101
000101101100100

jsou nám dána dvě permutace P=(P_1,P_2,\dots,P_N) a Q=(Q_1,Q_2,\dots,Q_N) z (1,2,\dots,N).
Napište jeden z znaků 0 a 1 do každé buňky mřížky N-by-N tak, aby byly splněny všechny následující podmínky:

- Nechť S_i je řetězec získaný zřetězením znaků v i-tém řádku od 1. do N-tého sloupce. Pak platí S_{P_1} < S_{P_2} < \dots < S_{P_N} v lexikografickém pořadí.
- Nechť T_i je řetězec získaný zřetězením znaků v i-tém sloupci od 1. do N-tého řádku. Pak platí T_{Q_1} < T_{Q_2} < \dots < T_{Q_N} v lexikografickém pořadí.

Lze dokázat, že pro libovolné P a Q existuje alespoň jeden způsob, jak zapsat znaky, který splňuje všechny podmínky.
Co znamená "X < Y v lexikografickém pořadí"?
Pro řetězce X=X_1X_2\dots X_{|X|} a Y = Y_1Y_2\dots Y_{|Y|} znamená "X < Y v lexikografickém pořadí", že platí 1. nebo 2. níže.
Zde |X| a |Y| označují délky X a Y.

-  |X| \lt |Y| a X_1X_2\ldots X_{|X|} = Y_1Y_2\ldots Y_{|X|}.
-  Existuje celé číslo 1 \leq i \leq \min\lbrace |X|, |Y| \rbrace takové, že platí následující:

-  X_1X_2\ldots X_{i-1} = Y_1Y_2\ldots Y_{i-1}
-  X_i je menší než Y_i.

Vstup

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

Výstup

Vytiskněte způsob, jak naplnit mřížku, který splňuje podmínky v následujícím formátu, kde A_{ij} je znak napsaný v i-tém řádku a j-tém sloupci:
A_{11}A_{12}\dots A_{1N}
\vdots
A_{N1}A_{N2}\dots A_{NN}

Pokud existuje více způsobů, jak splnit podmínky, kterýkoli z nich bude přijat.

Omezení

- 2 \leq N \leq 500
- P a Q jsou permutace (1,2,\dots,N).
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový Vstup 1

3
1 2 3
2 1 3

Ukázkový Výstup 1

001
101
110

V tomto vzorku je S_1=001, S_2=101, S_3=110 a T_1=011, T_2=001, T_3=110. Proto platí S_1 < S_2 < S_3 a T_2 < T_1 < T_3, což splňuje podmínky.

Ukázkový Vstup 2

15
8 15 10 2 4 3 1 13 5 12 9 6 14 11 7
4 1 5 14 3 12 13 7 11 8 6 2 9 15 10

Ukázkový Výstup 2

010001111110101
001000000101001
010001001100010
010000011110010
010011101101101
100101110100000
111100011001000
000001001100000
100011011000101
000111101011110
101010101010101
011010101011110
010011000010011
100110010110101
000101101100100


Pro řetězce S a T skládající se z malých písmen anglické abecedy a řetězce X složeného z 0 a 1, definuj řetězec f(S,T,X) skládající se z malých písmen anglické abecedy následovně:

- Začni s prázdným řetězcem, pro každé i=1,2,\dots,|X|, připoj S na konec, pokud je i-tý znak X roven 0, a připoj T na konec, pokud je roven 1.

Je dán řetězec S skládající se z malých písmen anglické abecedy a řetězce X a Y skládající se z 0 a 1. Urči, zda existuje řetězec T (který může být prázdný) tak, že f(S,T,X)=f(S,T,Y). Máš vyřešit t testovacích případů.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
t
\mathrm{case}_1
\vdots
\mathrm{case}_t

Každý případ je dán v následujícím formátu:
S
X
Y

Výstup

Vytiskni t řádků. i-tý řádek by měl obsahovat Yes, pokud existuje T, které splňuje podmínku pro i-tý testovací případ, a No jinak.

Omezení

- 1 \leq t \leq 5 \times 10^5
- 1 \leq |S| \leq 5\times 10^5
- 1 \leq |X|,|Y| \leq 5\times 10^5
- S je řetězec skládající se z malých písmen anglické abecedy.
- X a Y jsou řetězce skládající se z 0 a 1.
- Součet |S| přes všechny testovací případy v jednom vstupu je nanejvýš 5 \times 10^5.
- Součet |X| přes všechny testovací případy v jednom vstupu je nanejvýš 5 \times 10^5.
- Součet |Y| přes všechny testovací případy v jednom vstupu je nanejvýš 5 \times 10^5.

Ukázkový vstup 1

3
araara
01
111
araaaa
100100
0010111
abacabac
0
1111

Ukázkový výstup 1

Yes
No
No

Níže je zřetězení řetězců reprezentováno pomocí +.
Pro 1. testovací případ, pokud T=ara, pak f(S,T,X)=S+T=araaraara a f(S,T,Y)=T+T+T=araaraara, takže f(S,T,X)=f(S,T,Y).
Pro 2. a 3. testovací případ neexistuje žádné T, které by splnilo podmínku.

Ukázkový vstup 2

2
empty
10101
00
empty
11111
111

Ukázkový výstup 2

Yes
Yes

T může být prázdné.

Pro řetězce S a T složené z malých anglických písmen a řetězec X složený z 0 a 1 definujte řetězec f(S,T,X) složený z malých anglických písmen takto:

- Začněte s prázdným řetězcem, pro každé i=1,2,\tečky,|X| připojte na konec S, pokud i-tý znak X je 0, a připojte na konec T, pokud je 1.

Je dán řetězec S složený z malých anglických písmen a řetězce X a Y složené z 0 a 1.
Určete, zda existuje řetězec T (který může být prázdný) takový, že f(S,T,X)=f(S,T,Y).
Máte k dispozici t testových případů k řešení.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
počet testovacích případů
\mathrm{případ}_1
\vdots
\mathrm{případ}_t

Každý případ je zadán v následujícím formátu:
S
X
Y

Výstup

Vypište t řádků. Na i-tém řádku by mělo být Ano, pokud existuje T, které splňuje podmínku pro i-tý testovací případ, a Ne v opačném případě.

Omezení

- 1 \leq t \leq 5 \times 10^5
- 1 \leq |S| \leq 5\times 10^5
- 1 \leq |X|,|Y| \leq 5\times 10^5
- S je řetězec složený z malých anglických písmen.
- X a Y jsou řetězce složené z 0 a 1.
- Součet |S| ve všech testovacích případech na jednom vstupu je nejvýše 5 \times 10^5.
- Součet |X| ve všech testovacích případech na jednom vstupu je nejvýše 5 \times 10^5.
- Součet |Y| ve všech testovacích případech na jednom vstupu je nejvýše 5 \times 10^5.

Vzorový vstup 1

3
araara
01
111
araaaa
100100
0010111
abacabac
0
1111

Vzorový výstup 1

Yes
No
No

Níže je spojování řetězců znázorněno pomocí +.
Pro 1. testovací případ, pokud T=ara, pak f(S,T,X)=S+T=araara a f(S,T,Y)=T+T+T=ara, takže f(S,T,X)=f(S,T,Y).
Pro 2. a 3. testovací případ neexistuje žádné T, které by vyhovovalo podmínce.

Vzorový vstup 2

2
prázdný
10101
00
prázdný
11111
111

Vzorový výstup 2

Yes
Yes

T může být prázdný.

Pro řetězce S a T skládající se z malých anglických písmen a řetězec X skládající se z 0 a 1 definujte řetězec f(S,T,X) složený z malých anglických písmen takto:

- Začněte prázdným řetězcem, pro každé i=1,2,\tečky,|X|, přidejte S na konec, pokud je i-tý znak X 0, a připojte T na konec, pokud je 1.

Dostanete řetězec S skládající se z malých anglických písmen a řetězce X a Y skládající se z 0 a 1.
Určete, zda existuje řetězec T (který může být prázdný) takový, že f(S,T,X)=f(S,T,Y).
Musíte vyřešit t testovací případy.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
t
\mathrm{případ}_1
\vtečky
\mathrm{case}_t

Každý případ je uveden v následujícím formátu:
S
X
Y

Výstup

Tisk t řádků. I-tý řádek by měl obsahovat Ano, pokud existuje T, které splňuje podmínku pro i-tý testovací případ, a Ne jinak.

Omezení

- 1 \leq t \leq 5 \times 10^5
- 1 \leq |S| \leq 5\times 10^5
- 1 \leq |X|,|Y| \leq 5\times 10^5
- S je řetězec složený z malých anglických písmen.
- X a Y jsou řetězce skládající se z 0 a 1.
- Součet |S| ve všech testovacích případech na jednom vstupu je nejvýše 5 \times 10^5.
- Součet |X| ve všech testovacích případech na jednom vstupu je nejvýše 5 \times 10^5.
- Součet |Y| ve všech testovacích případech na jednom vstupu je nejvýše 5 \times 10^5.

Ukázkový vstup 1

3
araara
01
111
araaaa
100100
0010111
abacabak
0
1111

Ukázkový výstup 1

Yes
No
No

Níže je zřetězení řetězců znázorněno pomocí +.
Pro 1. testovací případ, pokud T=ara, pak f(S,T,X)=S+T=araaraara a f(S,T,Y)=T+T+T=araaraara, takže f(S,T ,X)=f(S,T,Y).
Pro 2. a 3. testovací případ neexistuje žádné T, které splňuje podmínku.

Ukázkový vstup 2

2
prázdný
10101
00
prázdný
11111
111

Ukázkový výstup 2

Yes
Yes

T může být prázdné.


Je dána permutace P=(P_1,P_2,\dots,P_N) z (1,2,\dots,N).
Chcete splnit podmínku P_i=i pro všechna i=1,2,\dots,N provedením následující operace nula nebo vícekrát:

- Vyberte celé číslo k takové, že 1 \leq k \leq N. Pokud k \geq 2, seřaďte \(1\)-vst až \((k-1)\)-vst prvky P vzestupně. Poté, pokud k \leq N-1, seřaďte \((k+1)\)-vst až N-tý prvek P vzestupně.

Je prokázáno, že za podmínek tohoto problému je možné dosáhnout P_i=i pro všechna i=1,2,\dots,N pomocí konečného počtu operací pro libovolné P. Najděte minimální počet potřebných operací.
Máte řešit T testovacích případů.

Vstup

Vstup je dán z standardního vstupu v následujícím formátu:
T
\mathrm{case}_1
\vdots
\mathrm{case}_T

Každý případ je dán v následujícím formátu:
N
P_1 P_2 \dots P_N

Výstup

Vytiskněte T řádků. i-tý řádek by měl obsahovat odpověď pro i-tý testovací případ.

Omezení

- 1 \leq T \leq 10^5
- 3 \leq N \leq 2 \times 10^5
- P je permutací (1,2,\dots,N).
- Všechny vstupní hodnoty jsou celá čísla.
- Součet N napříč testovacími případy v jednom vstupu je nejvýše 2 \times 10^5.

Ukázkový vstup 1

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

Ukázkový výstup 1

1
0
2

Pro první testovací případ,

-
Provedení operace s k=1 vede k tomu, že P se stane (2,1,3,4,5).

-
Provedení operace s k=2 vede k tomu, že P se stane (2,1,3,4,5).

-
Provedení operace s k=3 vede k tomu, že P se stane (1,2,3,4,5).

-
Provedením operace s k=4 se P stane (1,2,3,5,4).

-
Provedením operace s k=5 se P stane (1,2,3,5,4).

Konkrétně, provedení operace s k=3 vede k tomu, že P splňuje P_i=i pro všechna i=1,2,\dots,5. Proto je minimální počet potřebných operací 1.
Pro třetí testovací případ, provedení operace s k=4 následované k=3 vede k tomu, že P se změní z (3,2,1,7,5,6,4) \rightarrow (1,2,3,7,4,5,6) \rightarrow (1,2,3,4,5,6,7).

Je vám dána permutace P=(P_1,P_2,\dots,P_N) z (1,2,\dots,N).
Chcete uspokojit P_i=i pro všechna i=1,2,\dots,N provedením následující operace nula nebo vícekrát:

- Vyberte celé číslo k takové, že 1 \leq k \leq N. Pokud k \geq 2, seřaďte 1. až (k-1)-tý člen P ve vzestupném pořadí. Pak, je-li k \leq N-1, seřaďte (k+1)-tý až N-tý člen P ve vzestupném pořadí.

Lze dokázat, že při omezeních tohoto problému je možné splnit P_i=i pro všechna i=1,2,\dots,N s konečným počtem operací pro libovolné P. Najděte minimální počet požadovaných operací.
Musíte vyřešit T testovací případy.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
T
\případ_1
\vtečky
\případ_T

Každý případ je uveden v následujícím formátu:
N
P_1 P_2 \dots P_N

Výstup

Vytiskněte T řádky. i-tý řádek má obsahovat odpověď na i-tý testovací případ.

Omezení

- 1 \leq T \leq 10^5
- 3 \leq N \leq 2 \× 10^5
- P je permutace (1,2,\dots,N).
- Všechny vstupní hodnoty jsou celá čísla.
- Součet N napříč testovacími případy v jednom vstupu je maximálně 2 \× 10^5.

Ukázkový vstup 1

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

Ukázkový výstup 1

1
0
2

Pro první testovací případ,

-
Provedení operace s k=1 vede k tomu, že P se stane (2,1,3,4,5).

-
Provedení operace s k=2 vede k tomu, že P se stane (2,1,3,4,5).

-
Provedení operace s k=3 vede k tomu, že P se stane (1,2,3,4,5).

-
Provedení operace s k=4 má za následek, že P se stane (1,2,3,5,4).

-
Provedení operace s k=5 vede k tomu, že P se stane (1,2,3,5,4).

Konkrétně provedení operace s k=3 vede k tomu, že P splňuje P_i=i pro všechna i=1,2,\dots,5. Minimální požadovaný počet operací je tedy 1.
Pro třetí testovací případ provedení operace s k=4 následovanou k=3 vede k tomu, že se P změní jako (3,2,1,7,5,6,4) \rightarrow (1,2,3,7,4 ,5,6) \pravá šipka (1,2,3,4,5,6,7).

Je vám dána permutace P=(P_1,P_2,\tečky,P_N) z (1,2,\tečky,N).
Chcete uspokojit P_i=i pro všechna i=1,2,\tečky,N provedením následující operace nula nebo vícekrát:

- Vyberte celé číslo k takové, že 1 \leq k \leq N. Pokud k \geq 2, seřaďte 1. až (k-1)-tý člen P ve vzestupném pořadí. Pak, je-li k \leq N-1, seřaďte (k+1)-tý až N-tý člen P ve vzestupném pořadí.

Lze dokázat, že při omezeních tohoto problému je možné splnit P_i=i pro všechna i=1,2,\tečky,N s konečným počtem operací pro libovolné P. Najděte minimální počet požadovaných operací.
Musíte vyřešit T testovací případy.

Vstup

Vstup je dán ze standardního vstupu v následujícím formátu:
T
\mathrm{case}_1
\vdots
\mathrm{case}_T

Každý případ je uveden v následujícím formátu:
N
P_1 P_2 \dots P_N

Výstup

Vytiskněte T řádky. I-tý řádek by měl obsahovat odpověď na i-tý testovací případ.

Omezení

- 1 \leq T \leq 10^5
- 3 \leq N \leq 2 \times 10^5
- P je permutace (1,2,\dots,N).
- Všechny vstupní hodnoty jsou celá čísla.
- Součet N napříč testovacími případy v jednom vstupu je maximálně 2 \times 10^5.

Ukázkový vstup 1

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

Ukázkový výstup 1

1
0
2

Pro první testovací případ,

-
Provedení operace s k=1 vede k tomu, že P se stane (2,1,3,4,5).

-
Provedení operace s k=2 vede k tomu, že P se stane (2,1,3,4,5).

-
Provedení operace s k=3 vede k tomu, že P se stane (1,2,3,4,5).

-
Provedení operace s k=4 má za následek, že P se stane (1,2,3,5,4).

-
Provedení operace s k=5 vede k tomu, že P se stane (1,2,3,5,4).

Konkrétně provedení operace s k=3 vede k tomu, že P splňuje P_i=i pro všechna i=1,2,\tečky,5. Minimální požadovaný počet operací je tedy 1.
Pro třetí testovací případ provedení operace s k=4 následovanou k=3 vede k tomu, že se P změní jako (3,2,1,7,5,6,4) \rightarrow (1,2,3,7,4 ,5,6) \pravá šipka (1,2,3,4,5,6,7).


Sekvence celých čísel, kde žádné dva sousední prvky nejsou stejné, se nazývá dobrá sekvence.
Jsou vám dány dvě dobré sekvence délky N: A=(A_1,A_2,\dots,A_N) a B=(B_1,B_2,\dots,B_N). Každý prvek A a B je mezi 0 a M-1, včetně.
Na A můžete provést následující operace jakýkoli početkrát, případně ani jednou:

- Vyberte celé číslo i mezi 1 a N, včetně, a proveďte jedno z následujících:
- Nastavte A_i \leftarrow (A_i + 1) \bmod M.
- Nastavte A_i \leftarrow (A_i - 1) \bmod M. Zde platí, že (-1) \bmod M = M - 1.

Nicméně, nemůžete provést operaci, která by způsobila, že A již není dobrá sekvence.
Určete, zda je možné, aby se A stalo rovným B, a pokud ano, najděte minimální počet operací k dosažení tohoto cíle.

Vstup

Vstup je poskytován ze standardního vstupu v následujícím formátu:
N M
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

Výstup

Pokud je cíl nedosažitelný, vytiskněte -1.
Jinak vytiskněte minimální počet operací potřebných k dosažení tohoto cíle jako celé číslo.

Omezení

- 2 \leq N \leq 2 \times 10^5
- 2 \leq M \leq 10^6
- 0\leq A_i,B_i< M(1\leq i\leq N)
- A_i\ne A_{i+1}(1\leq i\leq N-1)
- B_i\ne B_{i+1}(1\leq i\leq N-1)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 9
2 0 1
4 8 1

Ukázkový výstup 1

3

Cíle můžete dosáhnout ve třech operacích následujícím způsobem:

- Nastavte A_1 \leftarrow (A_1 + 1) \bmod M. Nyní A = (3, 0, 1).
- Nastavte A_2 \leftarrow (A_2 - 1) \bmod M. Nyní A = (3, 8, 1).
- Nastavte A_1 \leftarrow (A_1 + 1) \bmod M. Nyní A = (4, 8, 1).

Cíle není možné dosáhnout ve dvou nebo méně operacích, takže odpověď je 3.
Například nemůžete v první operaci nastavit A_2 \leftarrow (A_2 + 1) \bmod M, protože by to vedlo k A = (2, 1, 1), což není dobrá sekvence.

Ukázkový vstup 2

3 9
1 8 2
1 8 2

Ukázkový výstup 2

0

A a B mohou být stejné už od začátku.

Ukázkový vstup 3

24 182
128 115 133 52 166 92 164 119 143 99 54 162 86 2 59 166 24 78 81 5 109 67 172 99
136 103 136 28 16 52 2 85 134 64 123 74 64 28 85 161 19 74 14 110 125 104 180 75

Ukázkový výstup 3

811

Celočíselná posloupnost, kde žádné dva sousední prvky nejsou stejné, se nazývá dobrá posloupnost.
Jsou vám dány dvě dobré posloupnosti délky N: A=(A_1,A_2,\tečky,A_N) a B=(B_1,B_2,\tečky,B_N). Každý prvek A a B je mezi 0 a M-1 včetně.
Následující operace můžete na A provádět libovolně, možná nula:

- Vyberte celé číslo i mezi 1 a N včetně a proveďte jeden z následujících úkonů:
- Nastavit A_i \leftarrow (A_i + 1) \bmod M.
- Nastavte A_i \leftarrow (A_i - 1) \bmod M. Zde (-1) \bmod M = M - 1.

Nemůžete však provést operaci, která způsobí, že A již nebude dobrou sekvencí.
Určete, zda je možné, aby se A rovnalo B, a pokud je to možné, najděte minimální počet operací, které jsou k tomu zapotřebí.

Vstup

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

Výstup

Pokud je cíl nedosažitelný, vytiskněte -1.
V opačném případě vytiskněte minimální počet požadovaných operací jako celé číslo.

Omezení

- 2 2 \leq N \leq 2 \times 10^5
- 2 \leq M \leq 10^6
- 0\leq A_i,B_i< M(1\leq i\leq N)
- A_i\ne A_{i+1}(1\leq i\leq N-1)
- B_i\ne B_{i+1}(1\leq i\leq N-1)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

3 9
2 0 1
4 8 1

Ukázkový výstup 1

3

Cíle můžete dosáhnout ve třech následujících operacích:

- Nastavte A_1 \leftarrow (A_1 + 1) \bmod M. Nyní A = (3, 0, 1).
- Nastavte A_2 \leftarrow (A_2 - 1) \bmod M. Nyní A = (3, 8, 1).
- Nastavte A_1 \leftarrow (A_1 + 1) \bmod M. Nyní A = (4, 8, 1).

Není možné dosáhnout cíle ve dvou nebo méně operacích, takže odpověď je 3.
Například nemůžete nastavit A_2 \leftarrow (A_2 + 1) \bmod M v první operaci, protože by to udělalo A = (2, 1, 1), což není dobrá sekvence.

Ukázkový vstup 2

3 9
1 8 2
1 8 2

Ukázkový výstup 2

0

A a B se mohou od začátku rovnat.

Ukázkový vstup 3

24 182
128 115 133 52 166 92 164 119 143 99 54 162 86 2 59 166 24 78 81 5 109 67 172 99
136 103 136 28 16 52 2 85 134 64 123 74 64 28 85 161 19 74 14 110 125 104 180 75

Ukázkový výstup 3

811

Celočíselná posloupnost, kde žádné dva sousední prvky nejsou stejné, se nazývá dobrá posloupnost.
Jsou dány dvě dobré posloupnosti délky N: A=(A_1,A_2,\dots,A_N) a B=(B_1,B_2,\dots,B_N). Každý prvek A a B je mezi 0 a M-1 včetně.
Následující operace můžete nad prvkem A provést libovolně mnohokrát, případně i nulový počet:

- Zvolte si celé číslo i mezi 1 a N včetně a proveďte jednu z následujících operací:
- Nastavte A_i \leftarrow (A_i + 1) \bmod M.
- Nastavte A_i \leftarrow (A_i - 1) \bmod M. Zde (-1) \bmod M = M - 1.

Nelze však provést operaci, která by způsobila, že A přestane být dobrou posloupností.
Určete, zda je možné, aby se A rovnalo B, a pokud je to možné, najděte minimální počet operací, které jsou k tomu potřeba.

Vstup

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

Výstup

Pokud je cíl nedosažitelný, vypište -1.
V opačném případě vypište minimální počet požadovaných operací jako celé číslo.

Omezení

- 2 \leq N \leq 2 \times 10^5
- 2 \leq M \leq 10^6
- 0\leq A_i,B_i< M(1\leq i\leq N)
- A_i\ne A_{i+1}(1\leq i\leq N-1)
- B_i\ne B_{i+1}(1\leq i\leq N-1)
- Všechny vstupní hodnoty jsou celá čísla.

Ukázka vstupu 1

3 9
2 0 1
4 8 1

Ukázka výstupu 1

3

Cíle můžete dosáhnout následujícími třemi operacemi:

- Nastavte A_1 \leftarrow (A_1 + 1) \bmod M.Nyní A = (3, 0, 1).
- Nastavte A_2 \leftarrow (A_2 - 1) \bmod M. Nyní A = (3, 8, 1).
- Nastavte A_1 \leftarrow (A_1 + 1) \bmod M. Nyní A = (4, 8, 1).

 Cíle nelze dosáhnout dvěma nebo méně operacemi, takže odpověď je 3.
Například nelze v první operaci nastavit A_2 \leftarrow (A_2 + 1) \bmod M, protože by to znamenalo, že A = (2, 1, 1), což není dobrá posloupnost.

Ukázka vstupu 2

3 9
1 8 2
1 8 2

Ukázka výstupu 2

0

A a B se mohou od začátku rovnat.

Vzorový vstup 3

24 182
128 115 133 52 166 92 164 119 143 99 54 162 86 2 59 166 24 78 81 5 109 67 172 99
136 103 136 28 16 52 2 85 134 64 123 74 64 28 85 161 19 74 14 110 125 104 180 75

Vzorový výstup 3

811


Jsou vám dána kladná celá čísla N, M, K, nezáporné celé číslo C a posloupnost celých čísel A=(A_1, A_2, \ldots, A_N) délky N.
Najděte \displaystyle \sum_{k=0}^{K-1}\min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace.

Vstup

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

Výstup

Vytiskněte odpověď.

Omezení

- 1 \le N \le 10^5
- 1 \le M \le 10^9
- 0 \le C < M
- 1 \le K \le 10^9
- 0 \le A_i < M
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 5 3 3
1 3

Ukázkový výstup 1

4

Pro k=0, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=1 a \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=3, takže \displaystyle \min_ {1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Pro k=1, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=4 a \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=1, takže \displaystyle \min_ {1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Pro k=2, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=2 a \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=4, takže \displaystyle \min_ {1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=2.
Proto je odpověď 1+1+2=4. Proto vytiskněte 4.

Ukázkový vstup 2

5 4 3 182
0 3 2 1 2

Ukázkový výstup 2

0

Ukázkový vstup 3

5 718 651 193855
3 532 44 109 58

Ukázkový výstup 3

29484897

Jsou dána celá kladná čísla N, M, K, nezáporné celé číslo C a posloupnost celých čísel A=(A_1, A_2, \ldots, A_N) délky N.
Najděte \displaystyle \sum_{k=0}^{K-1}\min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace.

Vstup

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

Výstup

Vypište odpověď.

Omezení

- 1 \le N \le 10^5
- 1 \le M \le 10^9
- 0 \le C < M
- 1 \le K \le 10^9
- 0 \le A_i < M
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

2 5 3 3
1 3

Ukázkový výstup 1

4

Pro k=0, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=1 a \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=3, takže \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Pro k=1 je \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=4 a \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=1, takže \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Pro k=2 je \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=2 a \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=4, takže \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=2.
Proto je odpověď 1+1+2=4. Proto vypište 4.

Ukázka vstupu 2

5 4 3 182
0 3 2 1 2

Ukázkový výstup 2

0

Vzorový vstup 3

5 718 651 193855
3 532 44 109 58

Vzorek výstupu 3

29484897


There is an integer sequence S of length N. Initially, all elements of S are 0.
You are also given two integer sequences of length Q: P=(P_1,P_2,\dots,P_Q) and V=(V_1,V_2,\dots,V_Q).
Snuke wants to perform Q operations on the sequence S in order. The i-th operation is as follows:

- Perform one of the following:
- Replace each of the elements S_1, S_2, \dots, S_{P_i} with V_i. However, before this operation, if there is an element among S_1, S_2, \dots, S_{P_i} that is strictly greater than V_i, Snuke will start crying.
- Replace each of the elements S_{P_i}, S_{P_i+1}, \dots, S_N with V_i. However, before this operation, if there is an element among S_{P_i}, S_{P_i+1}, \dots, S_N that is strictly greater than V_i, Snuke will start crying.

Find the number of sequences of Q operations where Snuke can perform all operations without crying, modulo 998244353.
Two sequences of operations are distinguished if and only if there is 1 \leq i \leq Q such that the choice for the i-th operation is different.

Input

The input is given from Standard Input in the following format:
N Q
P_1 V_1
P_2 V_2
\vdots
P_Q V_Q

Output

Print the answer as an integer.

Constraints

- 2 \leq N \leq 5000
- 1 \leq Q \leq 5000
- 1 \leq P_i \leq N
- 1 \leq V_i \leq 10^9
- All input values are integers.

Sample Input 1

8 3
1 8
8 1
2 1

Sample Output 1

1

Snuke can perform the three operations without crying as follows:

- Replace S_1 with 8.
- Replace S_8 with 1.
- Replace S_2, S_3, \dots, S_8 with 1.

No other sequences of operations satisfy the conditions, so the answer is 1. For example, if he replaces S_1, S_2, \dots, S_8 with 8 in the first operation, he will cry in the second operation regardless of the choice.

Sample Input 2

8 3
8 1
1 8
1 2

Sample Output 2

0

No matter how he performs the first two operations, he will cry in the third operation.

Sample Input 3

241 82
190 3207371
229 3639088
61 4428925
84 17258698
34 42692503
207 59753183
180 67198566
78 99285033
60 102449991
234 122146510
111 126959145
141 152331579
78 159855439
11 169658471
22 189991287
37 204602946
73 209329065
72 215363269
152 236450854
175 237822921
22 261431608
144 252550201
54 268889550
238 276997357
69 313065279
226 330144323
6 335788783
126 345410019
220 348318997
166 365778763
142 382251905
200 406191336
234 392702679
83 409660987
183 410908761
142 445707116
205 470279207
230 486436406
156 494269002
113 495687706
200 500005738
162 505246499
201 548652987
86 449551554
62 459527873
32 574001635
230 601073337
175 610244315
174 613857555
181 637452273
158 637866397
148 648101378
172 646898076
144 682578257
239 703460335
192 713255331
28 727075136
196 730768166
111 751850547
90 762445737
204 762552166
72 773170159
240 803415865
32 798873367
195 814999380
72 842641864
125 851815348
116 858041919
200 869948671
195 873324903
5 877767414
105 877710280
150 877719360
9 884707717
230 880263190
88 967344715
49 977643789
167 979463984
70 981400941
114 991068035
94 991951735
141 995762200

Sample Output 3

682155965

Remember to take the count modulo 998244353.

Existuje celočíselná posloupnost S délky N. Na počátku jsou všechny prvky S rovny 0.
Dále jsou dány dvě celočíselné posloupnosti délky Q: P=(P_1,P_2,\dots,P_Q) a V=(V_1,V_2,\dots,V_Q).
Snuke chce provést Q operací nad posloupností S v pořadí. I-tá operace je následující:

- Proveďte jednu z následujících operací:
- Nahraďte každý z prvků S_1, S_2, \dots, S_{P_i} prvkem V_i. Pokud však před touto operací existuje mezi S_1, S_2, \dots, S_{P_i} prvek, který je striktně větší než V_i, začne Snuke plakat.
- Nahraďte každý z prvků S_{P_i}, S_{P_i+1}, \dots, S_N prvkem V_i. Pokud však před touto operací existuje mezi S_{P_i}, S_{P_i+1}, \dots, S_N prvek, který je striktně větší než V_i, Snuke začne plakat.

Najděte počet posloupností operací Q, v nichž může Snuke provést všechny operace, aniž by plakal, modulo 998244353.
Dvě posloupnosti operací se liší tehdy a jen tehdy, když existuje 1 \leq i \leq Q takových, že volba pro i-tou operaci je odlišná.

Vstup

Vstup se zadává ze standardního vstupu v následujícím formátu:
N Q
P_1 V_1
P_2 V_2
\vdots
P_Q V_Q

Výstup

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

Omezení

- 2 \leq N \leq 5000
- 1 \leq Q \leq 5000
- 1 \leq P_i \leq N
- 1 \leq V_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

8 3
1 8
8 1
2 1

Vzorový výstup 1

1

Snuke může provést tyto tři operace bez pláče následujícím způsobem:

- Nahraďte S_1 číslem 8.
- Nahraďte S_8 za 1.
- Nahraďte S_2, S_3, \dots, S_8 za 1.

Žádná jiná posloupnost operací nesplňuje podmínky, takže odpověď je 1. Pokud například v první operaci nahradí S_1, S_2, \tečky, S_8 číslem 8, bude při druhé operaci plakat bez ohledu na volbu.

Vzorový vstup 2

8 3
8 1
1 8
1 2

Vzorový výstup 2

0

Bez ohledu na to, jak provede první dvě operace, bude při třetí operaci plakat.

Vzorový vstup 3

241 82
190 3207371
229 3639088
61 4428925
84 17258698
34 42692503
207 59753183
180 67198566
78 99285033
60 102449991
234 122146510
111 126959145
141 152331579
78 159855439
11 169658471
22 189991287
37 204602946
73 209329065
72 215363269
152 236450854
175 237822921
22 261431608
144 252550201
54 268889550
238 276997357
69 313065279
226 330144323
6 335788783
126 345410019
220 348318997
166 365778763
142 382251905
200 406191336
234 392702679
83 409660987
183 410908761
142 445707116
205 470279207
230 486436406
156 494269002
113 495687706
200 500005738
162 505246499
201 548652987
86 449551554
62 459527873
32 574001635
230 601073337
175 610244315
174 613857555
181 637452273
158 637866397
148 648101378
172 646898076
144 682578257
239 703460335
192 713255331
28 727075136
196 730768166
111 751850547
90 762445737
204 762552166
72 773170159
240 803415865
32 798873367
195 814999380
72 842641864
125 851815348
116 858041919
200 869948671
195 873324903
5 877767414
105 877710280
150 877719360
9 884707717
230 880263190
88 967344715
49 977643789
167 979463984
70 981400941
114 991068035
94 991951735
141 995762200

Vzorový výstup 3

682155965

Nezapomeňte počítat modulo 998244353.

Existuje celočíselná posloupnost S o délce N. Zpočátku jsou všechny prvky S 0.
Jsou vám také dány dvě celočíselné sekvence o délce Q: P=(P_1,P_2,\dots,P_Q) a V=(V_1,V_2,\dots,V_Q).
Snuke chce provést Q operace na sekvenci S v pořadí. i-tá operace je následující:

- Proveďte jeden z následujících úkonů:
- Nahraďte všechny prvky S_1, S_2, \dots, S_{P_i} V_i. Pokud se však před touto operací mezi S_1, S_2, \dots, S_{P_i} vyskytne prvek, který je striktně větší než V_i, Snuke začne plakat.
- Nahraďte všechny prvky S_{P_i}, S_{P_i+1}, \dots S_N V_i. Pokud se však před touto operací vyskytne prvek mezi S_{P_i}, S_{P_i+1}, \dots S_N který je striktně větší než V_i, Snuke se rozpláče.

Určete počet sekvencí Q operací, kde Snuke může provádět všechny operace bez pláče, modulo 998244353.
Dvě posloupnosti operací se rozlišují právě tehdy, když existuje 1 \leq i \leq Q taková, že volba pro i-tou operaci je odlišná.

Vstup

Vstup je zadán ze standardního vstupu v následujícím formátu:
N Q
P_1 V_1
P_2 V_2
\vdots
P_Q V_Q

Výstup

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

Omezení

- 2 \leq N \leq 5000
- 1 \leq Q \leq 5000
- 1 \leq P_i \leq N
- 1 \leq V_i \leq 10^9
- Všechny vstupní hodnoty jsou celá čísla.

Vzorový vstup 1

8 3
1 8
8 1
2 1

Ukázkový výstup 1

1

Snuke může provádět tři operace bez pláče následovně:

- Replace S_1 with 8.
- Replace S_8 with 1.
- Replace S_2, S_3, \dots, S_8 with 1.

Žádné další posloupnosti operací nesplňují podmínky, takže odpověď je 1. Pokud například v první operaci nahradí S_1, S_2, dots, S_8 za 8, bude při druhé operaci brečet bez ohledu na to, jakou volbu si zvolil.

Vzorkovací vstup 2

8 3
8 1
1 8
1 2

Ukázkový výstup 2

0

Bez ohledu na to, jak provede první dvě operace, při třetí operaci bude plakat.

Vzorkovací vstup 3

241 82
190 3207371
229 3639088
61 4428925
84 17258698
34 42692503
207 59753183
180 67198566
78 99285033
60 102449991
234 122146510
111 126959145
141 152331579
78 159855439
11 169658471
22 189991287
37 204602946
73 209329065
72 215363269
152 236450854
175 237822921
22 261431608
144 252550201
54 268889550
238 276997357
69 313065279
226 330144323
6 335788783
126 345410019
220 348318997
166 365778763
142 382251905
200 406191336
234 392702679
83 409660987
183 410908761
142 445707116
205 470279207
230 486436406
156 494269002
113 495687706
200 500005738
162 505246499
201 548652987
86 449551554
62 459527873
32 574001635
230 601073337
175 610244315
174 613857555
181 637452273
158 637866397
148 648101378
172 646898076
144 682578257
239 703460335
192 713255331
28 727075136
196 730768166
111 751850547
90 762445737
204 762552166
72 773170159
240 803415865
32 798873367
195 814999380
72 842641864
125 851815348
116 858041919
200 869948671
195 873324903
5 877767414
105 877710280
150 877719360
9 884707717
230 880263190
88 967344715
49 977643789
167 979463984
70 981400941
114 991068035
94 991951735
141 995762200

Ukázkový výstup 3

682155965

Nezapomeňte provést inventuru modulo 998244353.


Celočíselná posloupnost délky od 1 do N včetně, kde každý prvek je od 1 do M včetně, se nazývá dobrá posloupnost.
Skóre dobré posloupnosti je definováno jako počet kladných dělitelů X, kde X je součin prvků posloupnosti.
Existuje \displaystyle \sum_{k=1}^{N}M^k dobrých posloupností. Najděte součet skóre všech těchto posloupností modulo 998244353.

Vstupní údaje

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

Výstup

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

Omezení

- 1 \leq N \leq 10^{18}
- 1 \leq M \leq 16
- Všechny vstupní hodnoty jsou celá čísla.

Ukázka Vstup 1

1 7

Ukázkový výstup 1

16

Existuje sedm dobrých posloupností: (1),(2),(3),(4),(5),(6),(7). Jejich skóre je 1,2,2,3,2,4,2, takže odpověď je 1+2+2+3+2+4+2=16.

Vzorový vstup 2

3 11

Ukázkový výstup 2

16095

Například (8,11) a (1,8,2) jsou dobré posloupnosti. Zde je uveden postup výpočtu jejich skóre:

- Součin prvků v (8,11) je 8 \times 11 = 88. Číslo 88 má osm kladných dělitelů: 1,2,4,8,11,22,44,88, takže skóre (8,11) je 8.
- Součin prvků v (1,8,2) je 1 \times 8 \times 2 = 16. 16 má pět kladných dělitelů: 1,2,4,8,16, takže skóre (1,8,2) je 5.

Vzorový vstup 3

81131 14

Vzorový výstup 3

182955659

Nezapomeňte vzít výsledek modulo 998244353.

Posloupnost celých čísel o délce mezi 1 a N, včetně, kde každý prvek je mezi 1 a M, včetně, se nazývá dobrá posloupnost.
Skóre dobré posloupnosti je definováno jako počet kladných dělitelů X, kde X je součin prvků v posloupnosti.
Existuje \displaystyle \sum_{k=1}^{N}M^k dobrých posloupností. Najděte součet jejich skóre modulo 998244353.

Vstup

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

Výstup

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

Omezení

- 1 \leq N \leq 10^{18}
- 1 \leq M \leq 16
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

1 7

Ukázkový výstup 1

16

Existuje sedm dobrých posloupností: (1),(2),(3),(4),(5),(6),(7). Jejich skóre jsou 1,2,2,3,2,4,2, takže odpověď je 1+2+2+3+2+4+2=16.

Ukázkový vstup 2

3 11

Ukázkový výstup 2

16095

Například (8,11) a (1,8,2) jsou dobré posloupnosti. Zde je proces výpočtu jejich skóre:

- Součin prvků v (8,11) je 8 \times 11 = 88. 88 má osm kladných dělitelů: 1,2,4,8,11,22,44,88, takže skóre (8,11) je 8.
- Součin prvků v (1,8,2) je 1 \times 8 \times 2 = 16. 16 má pět kladných dělitelů: 1,2,4,8,16, takže skóre (1,8,2) je 5.

Ukázkový vstup 3

81131 14

Ukázkový výstup 3

182955659

Nezapomeňte vzít výsledek modulo 998244353.

Celočíselná posloupnost o délce mezi 1 a N včetně, kde každý prvek je mezi 1 a M včetně, se nazývá dobrá posloupnost.
Skóre dobré sekvence je definováno jako počet kladných dělitelů X, kde X je součin prvků v sekvenci.
Existuje \displaystyle \sum_{k=1}^{N}M^k dobrých sekvencí. Najděte součet skóre všech těchto sekvencí modulo 998244353.

Vstup

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

Výstup

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

Omezení

- 1 \leq N \leq 10^{18}
- 1 \leq M \leq 16
- Všechny vstupní hodnoty jsou celá čísla.

Ukázkový vstup 1

1 7

Ukázkový výstup 1

16

Existuje sedm dobrých sekvencí: (1), (2), (3), (4), (5), (6), (7). Jejich skóre jsou 1, 2, 2, 3, 2, 4, 2, takže odpověď je 1+2+2+3+2+4+2=16.

Ukázkový vstup 2

3 11

Ukázkový výstup 2

16095

Například (8,11) a (1,8,2) jsou dobré sekvence. Zde je postup výpočtu jejich skóre:

- The product of the elements in (8,11) is 8 \times 11 = 88. 88 has eight positive divisors: 1,2,4,8,11,22,44,88, so the score of (8,11) is 8.
- The product of the elements in (1,8,2) is 1 \times 8 \times 2 = 16. 16 has five positive divisors: 1,2,4,8,16, so the score of (1,8,2) is 5.

Ukázkový vstup 3

81131 14

Ukázkový výstup 3

182955659

Nezapomeňte vzít výsledek modulo 998244353.