On vous donne une chaîne de caractères S composée de A, B et C. On garantit que S contient tous les caractères A, B et C.
Si les caractères de S sont vérifiés un par un de gauche à droite, combien de caractères auront été vérifiés lorsque la condition suivante est satisfaite pour la première fois ?

- Chacun des caractères A, B et C est apparu au moins une fois.

Entrée

L'entrée est donnée à partir de l'entrée Standard dans le format suivant :
N
S

Sortie

Affichez la réponse.

Contraintes

- 3 \leq N \leq 100
- S est une chaîne de longueur N composée de A, B et C.
- S contient tous les caractères A, B et C.

Exemple d'entrée 1

5
ACABB

Exemple de sortie 1

4

Dans les quatre premiers caractères à partir de la gauche, A, B et C apparaissent respectivement deux fois, une fois et une fois,  ce qui satisfait la condition.
La condition n'est pas satisfaite en vérifiant trois caractères ou moins, donc la réponse est 4.

Exemple d'entrée 2

4
CABC

Exemple de sortie 2

3

Dans les trois premiers caractères à partir de la gauche, chacun des caractères A, B et C apparaît une fois, satisfaisant la condition.

Exemple d'entrée 3

30
AABABBBABABBABABCABACAABCBACCA

Exemple de sortie 3

17

On vous donne une chaîne composée de a, b et C. s est garantie de contenir tous les A, B et C.
Si les caractères de S sont vérifiés un par un à partir de la gauche, combien de caractères auront été vérifiés lorsque la condition suivante sera satisfaite pour la première fois?

- Tous les A, B et C sont apparus au moins une fois.

Saisir

L'entrée est donnée à partir de l'entrée standard dans le format suivant:
N
S

Sortir

Imprimez la réponse.

Contraintes

- 3 \ leq n \ leq 100
- S est une chaîne de longueur N composée de A, B et C.
- S contient tous les A, B et C.

Échantillon d'entrée 1

5
ACABB

Échantillon de sortie 1

4

Dans les quatre premiers personnages de la gauche, A, B et C apparaissent deux fois, une fois et une fois, respectivement, satisfaisant la condition.
La condition n'est pas satisfaite en vérifiant trois caractères ou moins, donc la réponse est 4.

Échantillon d'entrée 2

4
CABC

Échantillon de sortie 2

3

Dans les trois premiers caractères de la gauche, chacun des A, B et C apparaît une fois, satisfaisant la condition.

Exemple d'entrée 3

30
AABABBBABABBABABCABACAABCBACCA

Exemple de sortie 3

17

On vous donne une chaîne de caractères S composée de A, B et C. S est garanti de contenir tous les caractères A, B et C.
Si les caractères de S sont vérifiés un par un de gauche à droite, combien de caractères auront été vérifiés lorsque la condition suivante est satisfaite pour la première fois ?

- Chacun des caractères A, B et C est apparu au moins une fois.

Entrée

L'entrée est donnée à partir de l'entrée Standard dans le format suivant :
N
S

Sortie

Affichez la réponse.

Contraintes

- 3 \leq N \leq 100
- S est une chaîne de longueur N composée de A, B et C.
- S contient tous les caractères A, B et C.

Exemple d'entrée 1

5
ACABB

Exemple de sortie 1

4

Dans les quatre premiers caractères à partir de la gauche, A, B et C apparaissent deux fois, une fois et une fois, respectivement, satisfaisant la condition.
La condition n'est pas satisfaite en vérifiant trois caractères ou moins, donc la réponse est 4.

Exemple d'entrée 2

4
CABC

Exemple de sortie 2

3

Dans les trois premiers caractères à partir de la gauche, chacun des caractères A, B et C apparaît une fois, satisfaisant la condition.

Exemple d'entrée 3

30
AABABBBABABBABABCABACAABCBACCA

Exemple de sortie 3

17


Il y a N personnes numérotées de 1 à N.
On vous donne leur emploi du temps pour les D jours suivants. L'emploi du temps de la personne i est représenté par une chaîne S_i de longueur D. Si le j-ème caractère de S_i est o, la personne i est libre ce jour-là ; si c'est x, elle est occupée ce jour-là.
Parmi ces D jours, on cherche à choisir des jours consécutifs où toutes les personnes sont libres.
Combien de jours peut-on choisir au maximum ? Si aucun jour ne peut être choisi, indiquez 0.

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N D
S_1
S_2
\vdots
S_N

Sortie

Affichez le nombre maximal de jours qui peuvent être choisis, ou 0 si aucun jour ne peut être choisi.

Contraintes

- 1 \leq N \leq 100
- 1 \leq D \leq 100
- N et D sont des entiers.
- S_i est une chaîne de longueur D composée de o et x.

Exemple d'entrée 1

3 5
xooox
oooxx
oooxo

Exemple de sortie 1

2

Toutes les personnes sont libres le deuxième et le troisième jour, donc nous pouvons les choisir.
Choisir ces deux jours maximisera le nombre de jours parmi tous les choix possibles.

Exemple d'entrée 2

3 3
oxo
oxo
oxo

Exemple de sortie 2

1

Notez que les jours choisis doivent être consécutifs. (Toutes les personnes sont libres le premier et le troisième jour, donc nous pouvons choisir l'un d'eux, mais pas les deux.)

Exemple d'entrée 3

3 3
oox
oxo
xoo

Exemple de sortie 3

0

Affichez 0 si aucun jour ne peut être choisi.

Exemple d'entrée 4

1 7
ooooooo

Exemple de sortie 4

7

Exemple d'entrée 5

5 15
oxooooooooooooo
oxooxooooooooox
oxoooooooooooox
oxxxooooooxooox
oxooooooooxooox

Exemple de sortie 5

5

Il y a N personnes numérotées de 1 à N.
On vous donne leur emploi du temps pour les D jours suivants. L'emploi du temps de la personne i est représenté par une chaîne S_i de longueur D. Si le j-ème caractère de S_i est o, la personne i est libre ce jour-là ; s'il est x, elle est occupée ce jour-là.
Parmi ces D jours, envisagez de choisir des jours consécutifs où toutes les personnes sont libres.
Combien de jours peut-on choisir au maximum ? Si aucun jour ne peut être choisi, indiquez 0.

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N D
S_1
S_2
\vdots
S_N

Sortie

Imprimez le nombre maximal de jours qui peuvent être choisis, ou 0 si aucun jour ne peut être choisi.

Contraintes

- 1 \leq N \leq 100
- 1 \leq D \leq 100
- N et D sont des entiers.
- S_i est une chaîne de longueur D composée de o et x.

Exemple d'entrée 1

3 5
xooox
oooxx
oooxo

Exemple de sortie 1

2

Toutes les personnes sont libres le deuxième et le troisième jour, donc nous pouvons les choisir.
Choisir ces deux jours maximisera le nombre de jours parmi tous les choix possibles.

Exemple d'entrée 2

3 3
oxo
oxo
oxo

Exemple de sortie 2

1

Notez que les jours choisis doivent être consécutifs. (Toutes les personnes sont libres le premier et le troisième jour, donc nous pouvons choisir l'un d'eux, mais pas les deux.)

Exemple d'entrée 3

3 3
oox
oxo
xoo

Exemple de sortie 3

0

Imprimez 0 si aucun jour ne peut être choisi.

Exemple d'entrée 4

1 7
ooooooo

Exemple de sortie 4

7

Exemple d'entrée 5

5 15
oxooooooooooooo
oxooxooooooooox
oxoooooooooooox
oxxxooooooxooox
oxooooooooxooox

Exemple de sortie 5

5

Il y a N personnes numérotées de 1 à N.
On vous donne leur emploi du temps pour les D jours suivants. L'emploi du temps de la personne i est représenté par une chaîne S_i de longueur D. Si le j-ème caractère de S_i est o, la personne i est libre ce jour-là ; s'il est x, elle est occupée ce jour-là.
Parmi ces D jours, envisagez de choisir des jours consécutifs où toutes les personnes sont libres.
Combien de jours peut-on choisir au maximum ? Si aucun jour ne peut être choisi, indiquez 0.

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N D
S_1
S_2
\vdots
S_N

Sortie

Affichez le nombre maximal de jours qui peuvent être choisis, ou 0 si aucun jour ne peut être choisi.

Contraintes

- 1 \leq N \leq 100
- 1 \leq D \leq 100
- N et D sont des entiers.
- S_i est une chaîne de longueur D composée de o et x.

Exemple d'entrée 1

3 5
xooox
oooxx
oooxo

Exemple de sortie 1

2

Toutes les personnes sont libres le deuxième et le troisième jour, donc nous pouvons les choisir.
Choisir ces deux jours maximisera le nombre de jours parmi tous les choix possibles.

Exemple d'entrée 2

3 3
oxo
oxo
oxo

Exemple de sortie 2

1

Notez que les jours choisis doivent être consécutifs. (Toutes les personnes sont libres le premier et le troisième jour, donc nous pouvons choisir l'un d'eux, mais pas les deux.)

Exemple d'entrée 3

3 3
oox
oxo
xoo

Exemple de sortie 3

0

Affichez 0 si aucun jour ne peut être choisi.

Exemple d'entrée 4

1 7
ooooooo

Exemple de sortie 4

7

Exemple d'entrée 5

5 15
oxooooooooooooo
oxooxooooooooox
oxoooooooooooox
oxxxooooooxooox
oxooooooooxooox

Exemple de sortie 5

5


On a un graphe orienté avec N sommets et N arêtes.
La i-ème arête va du sommet i au sommet A_i. (Les contraintes garantissent que i \neq A_i.)
Trouver un cycle orienté sans qu’un même sommet apparaisse plusieurs fois.
Il est démontré qu'une solution existe dans les contraintes de ce problème.
Notes
La séquence de sommets B = (B_1, B_2, \dots, B_M) est appelée un cycle orienté lorsque toutes les conditions suivantes sont satisfaites :

- M \geq 2
- Il existe une arête du sommet B_i au sommet B_{i+1}. (1 \leq i \leq M-1)
- Il existe une arête du sommet B_M au sommet B_1.
- Si i \neq j, alors B_i \neq B_j.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
A_1 A_2 \dots A_N

Sortie

Affichez une solution dans le format suivant :
M
B_1 B_2 \dots B_M

M est le nombre de sommets, et B_i est le i-ème sommet dans le cycle orienté.
Les conditions suivantes doivent être satisfaites :

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

Si plusieurs solutions existent, n'importe laquelle sera acceptée.

Contraintes

- Toutes les valeurs d'entrée sont des entiers.
- 2 \le N \le 2 \times 10^5
- 1 \le A_i \le N
- A_i \neq i

Exemple d'entrée 1

7
6 7 2 1 3 4 5

Exemple de sortie 1

4
7 5 3 2

7 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 7 est en effet un cycle orienté.
Voici le graphe correspondant à cette entrée :

Voici d'autres résultats acceptables :
4
2 7 5 3

3
4 1 6

Notez que le graphe peut ne pas être connecté.

Exemple d'entrée 2

2
2 1

Exemple de sortie 2

2
1 2

Ce cas contient à la fois les arêtes 1 \rightarrow 2 et 2 \rightarrow 1.
Dans ce cas, 1 \rightarrow 2 \rightarrow 1 est bien un cycle orienté.
Voici le graphe correspondant à cette entrée, où 1 \leftrightarrow 2 représente l'existence de 1 \rightarrow 2 et 2 \rightarrow 1 :

Exemple d'entrée 3

8
3 7 4 7 3 3 8 2

Exemple de sortie 3

3
2 7 8

Voici le graphe correspondant à cette entrée :

Il existe un graphe orienté avec N sommets et N arêtes.
L'arête i va du sommet i au sommet A_i. (Les contraintes garantissent que i \neq A_i.)
Trouver un cycle orienté sans que le même sommet apparaisse plusieurs fois.
On peut montrer qu'une solution existe sous les contraintes de ce problème.
Remarques
La séquence de sommets B = (B_1, B_2, \dots, B_M) est appelée un cycle orienté lorsque toutes les conditions suivantes sont satisfaites :

- M \geq 2
- L'arête du sommet B_i au sommet B_{i+1} existe. (1 \leq i \leq M-1)
- L'arête du sommet B_M au sommet B_1 existe.
- Si i \neq j, alors B_i \neq B_j.

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
N
A_1 A_2 \dots A_N

Sortie

Imprimez une solution au format suivant :
M
B_1 B_2 \dots B_M

M est le nombre de sommets et B_i est le i-ème sommet du cycle dirigé.
Les conditions suivantes doivent être satisfaites :

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

Si plusieurs solutions existent, n'importe laquelle d'entre elles sera acceptée.

Contraintes

- Toutes les valeurs d'entrée sont des entiers.
- 2 \le N \le 2 \times 10^5
- 1 \le A_i \le N
- A_i \neq i

Exemple d'entrée 1

7
6 7 2 1 3 4 5

Exemple de sortie 1

4
7 5 3 2

7 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 7 est en effet un cycle dirigé.
Voici le graphique correspondant à cette entrée :

Voici d'autres sorties acceptables :
4
2 7 5 3

3
4 1 6

Notez que le graphique peut ne pas être connexe.

Exemple d'entrée 2

2
2 1

Exemple de sortie 2

2
1 2

Ce cas contient les deux arêtes 1 \rightarrow 2 et 2 \rightarrow 1.
Dans ce cas, 1 \rightarrow 2 \rightarrow 1 est en effet un cycle dirigé.
Voici le graphique correspondant à cette entrée, où 1 \leftrightarrow 2 représente l'existence à la fois de 1 \rightarrow 2 et de 2 \rightarrow 1 :

Exemple d'entrée 3

8
3 7 4 7 3 3 8 2

Exemple de sortie 3

3
2 7 8

Voici le graphique correspondant à cette entrée :

Il y a un graphe orienté avec N sommets et N arêtes.
La i-ème arête va du sommet i au sommet A_i. (Les contraintes garantissent que i \neq A_i.)
Trouver un cycle orienté sans qu’un même sommet apparaisse plusieurs fois.
Il est démontré qu'une solution existe sous les contraintes de ce problème.
Notes
La séquence de sommets B = (B_1, B_2, \dots, B_M) est appelée un cycle orienté lorsque toutes les conditions suivantes sont satisfaites :

- M \geq 2
- Il existe une arête du sommet B_i au sommet B_{i+1}. (1 \leq i \leq M-1)
- Il existe une arête du sommet B_M au sommet B_1.
- Si i \neq j, alors B_i \neq B_j.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
A_1 A_2 \dots A_N

Sortie

Affichez une solution dans le format suivant :
M
B_1 B_2 \dots B_M

M est le nombre de sommets, et B_i est le i-ème sommet dans le cycle orienté.
Les conditions suivantes doivent être satisfaites :

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

Si plusieurs solutions existent, n'importe laquelle sera acceptée.

Contraintes

- Toutes les valeurs d'entrée sont des entiers.
- 2 \le N \le 2 \times 10^5
- 1 \le A_i \le N
- A_i \neq i

Exemple d'entrée 1

7
6 7 2 1 3 4 5

Exemple de sortie 1

4
7 5 3 2

7 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 7 est en effet un cycle orienté.
Voici le graphe correspondant à cette entrée :

Voici d'autres sorties acceptables :
4
2 7 5 3

3
4 1 6

Notez que le graphe peut ne pas être connecté.

Exemple d'entrée 2

2
2 1

Exemple de sortie 2

2
1 2

Ce cas contient à la fois les arêtes 1 \rightarrow 2 et 2 \rightarrow 1.
Dans ce cas, 1 \rightarrow 2 \rightarrow 1 est en effet un cycle orienté.
Voici le graphe correspondant à cette entrée, où 1 \leftrightarrow 2 représente l'existence de 1 \rightarrow 2 et 2 \rightarrow 1 :

Exemple d'entrée 3

8
3 7 4 7 3 3 8 2

Exemple de sortie 3

3
2 7 8

Voici le graphe correspondant à cette entrée :


Il y a une grille de N \times M avec un joueur dessus.
Soit (i,j) le carré à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche de cette grille.
Chaque carré de cette grille est de la glace ou de la roche, ce qui est représenté par N chaînes de caractères S_1,S_2,\dots,S_N de longueur M comme suit :

- si le j-ème caractère de S_i est ., le carré (i,j) est de la glace ;
- si le j-ème caractère de S_i est #, le carré (i,j) est de la roche.

La périphérie extérieure de cette grille (tous les carrés de la 1-ère ligne, N-ème ligne, 1-ère colonne, M-ème colonne) est de la roche.
Initialement, le joueur se trouve sur le carré (2,2), qui est de la glace.
Le joueur peut effectuer le mouvement suivant zéro ou plusieurs fois.

- Tout d'abord, spécifiez la direction du mouvement : haut, bas, gauche ou droite.
- Ensuite, continuez à avancer dans cette direction jusqu'à ce que le joueur heurte une roche. Formellement, faites ce qui suit :
- si le prochain carré dans la direction du mouvement est de la glace, allez à ce carré et continuez à avancer ;
- si le prochain carré dans la direction du mouvement est de la roche, restez dans le carré actuel et arrêtez de bouger.

Trouvez le nombre de carrés de glace que le joueur peut toucher (passer ou se reposer dessus).

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N M
S_1
S_2
\vdots
S_N

Sortie

Affichez la réponse sous forme d'entier.

Contraintes

- 3 \le N,M \le 200
- S_i est une chaîne de longueur M contenant # et ..
- Le carré (i, j) est de la roche si i=1, i=N, j=1, ou j=M.
- Le carré (2,2) est de la glace.

Exemple d'entrée 1

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

Exemple de sortie 1

12

Par exemple, le joueur peut se reposer sur (5,5) en se déplaçant comme suit :

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

Le joueur peut passer par (2,4) en se déplaçant comme suit :

- (2,2) \rightarrow (2,5), passant par (2,4) dans le processus.

Le joueur ne peut pas passer ou se reposer sur (3,4).

Exemple d'entrée 2

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

Exemple de sortie 2

215

Il y a une grille N \times M et un joueur se tient dessus.
Soit (i,j) le carré de la i-ème rangée à partir du haut et de la j-ème colonne à partir de la gauche de cette grille.
Chaque carré de cette grille est de la glace ou de la roche, qui est représentée par N chaînes S_1,S_2,\dots,S_N de longueur M comme suit :

- si le j-ème caractère de S_i est ., le carré (i,j) est de la glace ;
- si le j-ème caractère de S_i est #, le carré (i,j) est de la roche.

La périphérie extérieure de cette grille (tous les carrés de la 1ère rangée, de la N-ème rangée, de la 1ère colonne, de la M-ème colonne) est de la roche.
Au départ, le joueur se repose sur le carré (2,2), qui est de la glace.
Le joueur peut effectuer le mouvement suivant zéro ou plusieurs fois.

- Tout d'abord, spécifiez la direction du mouvement : haut, bas, gauche ou droite.
- Ensuite, continuez à vous déplacer dans cette direction jusqu'à ce que le joueur heurte un rocher. Formellement, continuez à faire ce qui suit :
- si la case suivante dans la direction du mouvement est de la glace, allez sur cette case et continuez à vous déplacer ;
- si la case suivante dans la direction du mouvement est de la roche, restez sur la case actuelle et arrêtez de vous déplacer.

Trouvez le nombre de cases de glace que le joueur peut toucher (passer ou se reposer dessus).

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
N M
S_1
S_2
\vdots
S_N

Sortie

Imprimez la réponse sous forme d'entier.

Contraintes

- 3 \le N,M \le 200
- S_i est une chaîne de longueur M composée de # et ..
- Le carré (i, j) est un rocher si i=1, i=N, j=1 ou j=M.
- Le carré (2,2) est de la glace.

Exemple d'entrée 1

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

Exemple de sortie 1

12

Par exemple, le joueur peut se reposer sur (5,5) en se déplaçant comme suit :

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

Le joueur peut passer (2,4) en se déplaçant comme suit :

- (2,2) \rightarrow (2,5), en passant (2,4) dans le processus.

Le joueur ne peut pas passer ou se reposer sur (3,4).

Exemple d'entrée 2

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

Exemple de sortie 2

215

On a une grille de N \times M avec un joueur qui se trouve dessus.
Soit (i,j) le carré à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche de cette grille.
Chaque carré de cette grille est de la glace ou de la roche, ce qui est représenté par N chaînes de caractères S_1,S_2,\dots,S_N de longueur M comme suit :

- si le j-ème caractère de S_i est ., le carré (i,j) est de la glace ;
- si le j-ème caractère de S_i est #, le carré (i,j) est de la roche.

La périphérie extérieure de cette grille (tous les carrés de la 1-ère ligne, N-ème ligne, 1-ère colonne, M-ème colonne) consiste en de la roche.
Initialement, le joueur se trouve sur le carré (2,2), qui est de la glace.
Le joueur peut effectuer le mouvement suivant zéro ou plusieurs fois.

- Tout d'abord, spécifiez la direction du mouvement : haut, bas, gauche ou droite.
- Ensuite, continuez à avancer dans cette direction jusqu'à ce que le joueur heurte une roche. Formellement, faites ce qui suit :
- si le carré suivant dans la direction du mouvement est de la glace, allez à ce carré et continuez à avancer ;
- si le carré suivant dans la direction du mouvement est de la roche, restez dans le carré actuel et arrêtez de bouger.

Trouvez le nombre de carrés de glace que le joueur peut toucher (passer ou se reposer dessus).

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N M
S_1
S_2
\vdots
S_N

Sortie

Affichez la réponse sous forme d'entier.

Contraintes

- 3 \le N,M \le 200
- S_i est une chaîne de longueur M contenant # et ..
- Le carré (i, j) est de la roche si i=1, i=N, j=1, ou j=M.
- Le carré (2,2) est de la glace.

Exemple d'entrée 1

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

Exemple de sortie 1

12

Par exemple, le joueur peut se reposer sur (5,5) en se déplaçant comme suit :

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

Le joueur peut passer par (2,4) en se déplaçant comme suit :

- (2,2) \rightarrow (2,5), passant par (2,4) dans le processus.

Le joueur ne peut pas passer ou se reposer sur (3,4).

Exemple d'entrée 2

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

Exemple de sortie 2

215


Il y a une grille avec H lignes et W colonnes. Soit (i, j) le carré de la i-ème ligne à partir du haut et de la j-ème colonne à partir de la gauche de la grille.
Chaque carré de la grille est troué ou non. Il y a exactement N carrés troués : (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Lorsque le triple d'entiers positifs (i, j, n) satisfait la condition suivante, la région carrée dont le coin supérieur gauche est (i, j) et dont le coin inférieur droit est (i + n - 1, j + n - 1) est appelée un carré sans trou.

- i + n - 1 \leq H.
- j + n - 1 \leq W.
- Pour chaque paire d'entiers non négatifs (k, l) tels que 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, le carré (i + k, j + l) n'est pas percé.

Combien de carrés sans trous y a-t-il dans la grille ?

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
H W N
a_1 b_1
a_2 b_2
\vdots
a_N b_N

Sortie

Afficher le nombre de carrés sans trous.

Contraintes

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min(H \times W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Tous les (a_i, b_i) sont deux à deux différents.
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

2 3 1
2 3

Exemple de sortie 1

6

Il y a six carrés sans trous, listés ci-dessous. Pour les cinq premiers, n = 1, et les coins supérieur gauche et inférieur droit sont le même carré.

- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 1).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 2).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 3).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (2, 1).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (2, 2).
- La région carrée dont le coin supérieur gauche est (1, 1) et dont le coin inférieur droit est (2, 2).

Exemple d'entrée 2

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

Exemple de sortie 2

0

Il peut n'y avoir aucun carré sans trou.

Exemple d'entrée 3

1 1 0

Exemple de sortie 3

1

La grille entière peut être un carré sans trou.

Exemple d'entrée 4

3000 3000 0

Exemple de sortie 4

9004500500

Il y a une grille avec H lignes et W colonnes. Soit (i, j) le carré à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche de la grille.
Chaque carré de la grille est troué ou non. Il y a exactement N carrés troués : (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Quand le triplet d'entiers positifs (i, j, n) satisfait la condition suivante, la région carrée dont le coin supérieur gauche est (i, j) et le coin inférieur droit est (i + n - 1, j + n - 1) est appelée un carré sans trou.

- i + n - 1 \leq H.
- j + n - 1 \leq W.
- Pour chaque paire d'entiers non négatifs (k, l) telle que 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, le carré (i + k, j + l) n'est pas troué.

Combien y a-t-il de carrés sans trou dans la grille ?

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
H W N
a_1 b_1
a_2 b_2
\vdots
a_N b_N

Sortie

Affichez le nombre de carrés sans trou.

Contraintes

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min(H \times W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Tous les (a_i, b_i) sont deux à deux différents.
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

2 3 1
2 3

Exemple de sortie 1

6

Il y a six carrés sans trou, listés ci-dessous. Pour les cinq premiers, n = 1, et les coins supérieur gauche et inférieur droit sont le même carré.

- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 1).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 2).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 3).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (2, 1).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (2, 2).
- La région carrée dont le coin supérieur gauche est (1, 1) et le coin inférieur droit est (2, 2).

Exemple d'entrée 2

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

Exemple de sortie 2

0

Il peut n'y avoir aucun carré sans trou.

Exemple d'entrée 3

1 1 0

Exemple de sortie 3

1

Toute la grille peut être un carré sans trou.

Exemple d'entrée 4

3000 3000 0

Exemple de sortie 4

9004500500

Il existe une grille avec H lignes et W colonnes. Soit (i, j) le carré à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche de la grille.
Chaque carré de la grille peut être percé ou non. Il y a exactement N carrés percés : (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Quand le triplet d'entiers positifs (i, j, n) satisfait la condition suivante, la région carrée dont le coin supérieur gauche est (i, j) et le coin inférieur droit est (i + n - 1, j + n - 1) est appelée un carré sans trou.

- i + n - 1 \leq H.
- j + n - 1 \leq W.
- Pour chaque paire d'entiers non négatifs (k, l) telle que 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, le carré (i + k, j + l) n'est pas percé.

Combien y a-t-il de carrés sans trou dans la grille ?

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
H W N
a_1 b_1
a_2 b_2
\vdots
a_N b_N

Sortie

Affichez le nombre de carrés sans trou.

Contraintes

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min(H \times W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Tous les (a_i, b_i) sont deux à deux différents.
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

2 3 1
2 3

Exemple de sortie 1

6

Il y a six carrés sans trou, listés ci-dessous. Pour les cinq premiers, n = 1, et les coins supérieur gauche et inférieur droit sont le même carré.

- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 1).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 2).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (1, 3).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (2, 1).
- La région carrée dont les coins supérieur gauche et inférieur droit sont (2, 2).
- La région carrée dont le coin supérieur gauche est (1, 1) et le coin inférieur droit est (2, 2).

Exemple d'entrée 2

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

Exemple de sortie 2

0

Il peut n'y avoir aucun carré sans trou.

Exemple d'entrée 3

1 1 0

Exemple de sortie 3

1

Toute la grille peut être un carré sans trou.

Exemple d'entrée 4

3000 3000 0

Exemple de sortie 4

9004500500


Étant donné une chaîne de longueur 3, S, composée de lettres majuscules anglaises, affichez Yes si S correspond à l'une des chaînes suivantes : ACE, BDF, CEG, DFA, EGB, FAC, et GBD ; sinon, affichez No.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
S

Sortie

Affichez Yes si S correspond à l'une des chaînes ACE, BDF, CEG, DFA, EGB, FAC, et GBD ; sinon, affichez No.

Contraintes

- S est une chaîne de longueur 3 composée de lettres majuscules anglaises.

Exemple d'entrée 1

ABC

Exemple de sortie 1

No

Lorsque S = ABC, S ne correspond à aucune des chaînes ACE, BDF, CEG, DFA, EGB, FAC, et GBD, donc No doit être affiché.

Exemple d'entrée 2

FAC

Exemple de sortie 2

Yes

Exemple d'entrée 3

XYX

Exemple de sortie 3

No

Étant donné une chaîne de longueur 3, S, composée de lettres majuscules anglaises, imprimez Yes si S correspond à l'une des chaînes suivantes : ACE, BDF, CEG, DFA, EGB, FAC, et GBD ; sinon, imprimez No.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
S

Sortie

Affichez Yes si S correspond à l'une des chaînes ACE, BDF, CEG, DFA, EGB, FAC, et GBD ; sinon, imprimez No.

Contraintes

- S est une chaîne de longueur 3 composée de lettres majuscules anglaises.

Exemple d'entrée 1

ABC

Exemple de sortie 1

No

Lorsque S = ABC, S ne correspond à aucune des chaînes ACE, BDF, CEG, DFA, EGB, FAC, et GBD, donc No doit être imprimé.

Exemple d'entrée 2

FAC

Exemple de sortie 2

Yes

Exemple d'entrée 3

XYX

Exemple de sortie 3

No

Étant donnée une chaîne de longueur 3, S, composée de lettres majuscules anglaises, affichez Yes si S correspond à l'une des chaînes suivantes : ACE, BDF, CEG, DFA, EGB, FAC, et GBD ; sinon, affichez No.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
S

Sortie

Affichez Yes si S correspond à l'une des chaînes ACE, BDF, CEG, DFA, EGB, FAC, et GBD ; sinon, affichez No.

Contraintes

- S est une chaîne de longueur 3 composée de lettres majuscules anglaises.

Exemple d'entrée 1

ABC

Exemple de sortie 1

No

Lorsque S = ABC, S ne correspond à aucune des chaînes ACE, BDF, CEG, DFA, EGB, FAC, et GBD, donc No doit être affiché.

Exemple d'entrée 2

FAC

Exemple de sortie 2

Yes

Exemple d'entrée 3

XYX

Exemple de sortie 3

No


Takahashi a inventé le code Tak, un code bidimensionnel. Un code Tak satisfait toutes les conditions suivantes:

- C'est une région constituée de neuf lignes horizontales et neuf colonnes verticales.
- Les 18 cellules dans les régions trois par trois en haut à gauche et en bas à droite sont noires.
- Les 14 cellules adjacentes (horizontalement, verticalement ou en diagonale) à la région trois par trois en haut à gauche ou en bas à droite sont blanches.

Il n'est pas permis de faire tourner un code Tak.
On vous donne une grille avec N lignes horizontales et M colonnes verticales.
L'état de la grille est décrit par N chaînes, S_1,\ldots, et S_N, chacune de longueur M.  La cellule à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche est noire si le j-ème caractère de S_i est #, et blanche si c'est ..
Trouvez toutes les régions de neuf par neuf, entièrement contenues dans la grille, qui satisfont les conditions d'un code Tak.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant:
N M
S_1
\vdots
S_N

Sortie

Pour toutes les paires (i,j) telles que la région de neuf par neuf, dont la cellule en haut à gauche est à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche, satisfait les conditions d'un code Tak, imprimez une ligne contenant i, un espace, et j dans cet ordre.
Les paires doivent être triées dans l'ordre lexicographique croissant ; c'est-à-dire, i doit être dans l'ordre croissant, et pour un même i, j doit être dans l'ordre croissant.

Contraintes

- 9 \leq N,M \leq 100
- N et M sont des entiers.
- S_i est une chaîne de longueur M composée de . et #.

Exemple d'entrée 1

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

Exemple de sortie 1

1 1
1 10
7 7
10 2

Un code Tak ressemble à ce qui suit, où # est une cellule noire, . est une cellule blanche, et ? peut être soit noire, soit blanche.
###.?????
###.?????
###.?????
....?????
?????????
?????....
?????.###
?????.###
?????.###

Dans la grille donnée par l'entrée, la région de neuf par neuf, dont la cellule en haut à gauche est à la 10ème ligne depuis le haut et 2ème colonne depuis la gauche, satisfait les conditions d'un code Tak, comme montré ci-dessous.
###......
###......
###......
.........
..##.....
..##.....
......###
......###
......###

Exemple d'entrée 2

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

Exemple de sortie 2

1 1

Exemple d'entrée 3

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

Exemple de sortie 3

Il peut n'y avoir aucune région satisfaisant les conditions du code Tak.

Takahashi a inventé le Tak Code, un code bidimensionnel.  Un code TaK remplit toutes les conditions suivantes :

- Il s’agit d’une région composée de neuf rangées horizontales et de neuf colonnes verticales.
- Les 18 cellules des régions trois par trois en haut à gauche et en bas à droite sont noires.
- Toutes les 14 cellules adjacentes (horizontalement, verticalement ou en diagonale) à la région trois par trois en haut à gauche ou en bas à droite sont blanches.

Il n’est pas permis de faire pivoter un code TaK.
On vous donne une grille avec N lignes horizontales et M colonnes verticales.
L’état de la grille est décrit par N chaînes, S_1,\ldots et S_N, chacune de longueur M.  La cellule de la ième rangée à partir du haut et de la jème colonne à partir de la gauche est noire si le j-ème caractère de S_i est #, et blanche si elle est ..
Trouvez toutes les régions de neuf par neuf, entièrement contenues dans la grille, qui satisfont aux conditions d’un code TaK.

Entrée

L’entrée est fournie à partir de l’entrée standard au format suivant :
N M
S_1
\vdots
S_N

Sortie

Pour toutes les paires (i,j) telles que la région neuf par neuf, dont la cellule en haut à gauche se trouve à la ième ligne à partir du haut et à la jème colonne à partir de la gauche, satisfait les conditions d’un code TaK, imprimez une ligne contenant i, un espace et j dans cet ordre.
Les paires doivent être classées par ordre lexicographique croissant ; C’est-à-dire que i dois être dans l’ordre ascendant, et dans le même I, J doit être dans l’ordre ascendant.

Contraintes

- 9 \leq N,M \leq 100
- N et M sont des entiers.
- S_i est une chaîne de longueur M composée de . et #.

Exemple d’entrée 1

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

Sortie de l’échantillon 1

1 1
1 10
7 7
10 2

Un code TaK ressemble à ce qui suit, où # représente une cellule noire, . une cellule blanche, et ? peut être soit noire soit blanche.
###.?????
###.?????
###.?????
....?????
?????????
????? ....
?????. ###
?????. ###
?????. ###

Dans la grille donnée par l’entrée, la région neuf par neuf, dont la cellule en haut à gauche se trouve à la 10e ligne à partir du haut et à la 2e colonne à partir de la gauche, satisfait les conditions d’un code TaK, comme indiqué ci-dessous.
###......
###......
###......
.........
.. ##.....
.. ##.....
......###
......###
......###

Exemple d’entrée 2

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

Exemple de sortie 2

1 1

Exemple d’entrée 3

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

Exemple de sortie 3

Il se peut qu’aucune région ne satisfasse les conditions d’un code TaK.

Takahashi a inventé le code Tak, un code bidimensionnel.  Un code Tak satisfait toutes les conditions suivantes :

- C'est une région constituée de neuf lignes horizontales et neuf colonnes verticales.
- Les 18 cellules dans les régions trois par trois en haut à gauche et en bas à droite sont noires.
- Les 14 cellules adjacentes (horizontalement, verticalement ou en diagonale) à la région trois par trois en haut à gauche ou en bas à droite sont blanches.

Il n'est pas permis de faire tourner un code Tak.
On vous donne une grille avec N lignes horizontales et M colonnes verticales.
L'état de la grille est décrit par N chaînes, S_1,\ldots, et S_N, chacune de longueur M.  La cellule à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche est noire si le j-ème caractère de S_i est #, et blanche si c'est ..
Trouvez toutes les régions de neuf par neuf, entièrement contenues dans la grille, qui satisfont les conditions d'un code Tak.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N M
S_1
\vdots
S_N

Sortie

Pour toutes les paires (i,j) telles que la région de neuf par neuf, dont la cellule en haut à gauche est à la i-ème ligne depuis le haut et j-ème colonne depuis la gauche, satisfait les conditions d'un code Tak, affichez une ligne contenant i, un espace, et j dans cet ordre.
Les paires doivent être triées dans l'ordre lexicographique croissant ; c'est-à-dire, i doit être dans l'ordre croissant, et pour un même i, j doit être dans l'ordre croissant.

Contraintes

- 9 \leq N,M \leq 100
- N et M sont des entiers.
- S_i est une chaîne de longueur M composée de . et #.

Exemple d'entrée 1

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

Exemple de sortie 1

1 1
1 10
7 7
10 2

Un code Tak ressemble à ce qui suit, où # est une cellule noire, . est une cellule blanche, et ? peut être soit noire, soit blanche.
###.?????
###.?????
###.?????
....?????
?????????
?????....
?????.###
?????.###
?????.###

Dans la grille donnée en entrée, la région de neuf par neuf, dont la cellule en haut à gauche est à la 10ème ligne depuis le haut et 2ème colonne depuis la gauche, satisfait les conditions d'un code Tak, comme montré ci-dessous.
###......
###......
###......
.........
..##.....
..##.....
......###
......###
......###

Exemple d'entrée 2

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

Exemple de sortie 2

1 1

Exemple d'entrée 3

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

Exemple de sortie 3

Il peut n'y avoir aucune région satisfaisant les conditions du code Tak.


Il y a N vendeurs et M acheteurs sur un marché de pommes.
Le i-ème vendeur peut vendre une pomme pour A_i yens ou plus (le yen est la devise au Japon).
Le i-ème acheteur peut acheter une pomme pour B_i yens ou moins.
Trouvez l'entier minimal X qui satisfait la condition suivante.
Condition : Le nombre de personnes qui peuvent vendre une pomme pour X yens est supérieur ou égal au nombre de personnes qui peuvent acheter une pomme pour X yens.

Entrée

L'entrée est donnée depuis l'entrée standard au format suivant :
N M
A_1 \ldots A_N
B_1 \ldots B_M

Sortie

Affichez la réponse.

Contraintes

- 1 \leq N,M \leq 2\times 10^5
- 1\leq A_i,B_i \leq 10^9
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'Entrée 1

3 4
110 90 120
100 80 120 10000

Exemple de Sortie 1

110

Deux vendeurs, le 1er et le 2ème, peuvent vendre une pomme pour 110 yens ; deux acheteurs, le 3ème et le 4ème, peuvent acheter une pomme pour 110 yens. Ainsi, 110 satisfait la condition.
Puisqu'un entier inférieur à 110 ne satisfait pas la condition, c'est la réponse.

Exemple d'Entrée 2

5 2
100000 100000 100000 100000 100000
100 200

Exemple de Sortie 2

201

Exemple d'Entrée 3

3 2
100 100 100
80 120

Exemple de Sortie 3

100

Il y a N vendeurs et M acheteurs sur un marché de pommes.
Le i-ème vendeur peut vendre une pomme pour A_i yens ou plus (le yen est la devise au Japon).
Le i-ème acheteur peut acheter une pomme pour B_i yens ou moins.
Trouvez l'entier minimal X qui satisfait la condition suivante.
Condition : Le nombre de personnes qui peuvent vendre une pomme pour X yens est supérieur ou égal au nombre de personnes qui peuvent acheter une pomme pour X yens.

Entrée

L'entrée est donnée depuis l'entrée standard au format suivant :
N M
A_1 \ldots A_N
B_1 \ldots B_M

Sortie

Affichez la réponse.

Contraintes

- 1 \leq N,M \leq 2\times 10^5
- 1\leq A_i,B_i \leq 10^9
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'Entrée 1

3 4
110 90 120
100 80 120 10000

Exemple de Sortie 1

110

Deux vendeurs, le 1er et le 2ème, peuvent vendre une pomme pour 110 yens ; deux acheteurs, le 3ème et le 4ème, peuvent acheter une pomme pour 110 yens. Donc, 110 satisfait la condition.
Puisqu'un entier inférieur à 110 ne satisfait pas la condition, ceci est la réponse.

Exemple d'Entrée 2

5 2
100000 100000 100000 100000 100000
100 200

Exemple de Sortie 2

201

Exemple d'Entrée 3

3 2
100 100 100
80 120

Exemple de Sortie 3

100

Il y a N vendeurs et M acheteurs sur un marché aux pommes.
Le i-ème vendeur peut vendre une pomme pour A_i yens ou plus (le yen est la monnaie au Japon).
Le i-ème acheteur peut acheter une pomme pour B_i yens ou moins.
Trouvez l'entier minimum X qui satisfait la condition suivante.
Condition : Le nombre de personnes qui peuvent vendre une pomme pour X yens est supérieur ou égal au nombre de personnes qui peuvent acheter une pomme pour X yens.

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
N M
A_1 \ldots A_N
B_1 \ldots B_M

Sortie

Imprimez la réponse.

Contraintes

- 1 \leq N,M \leq 2\times 10^5
- 1\leq A_i,B_i \leq 10^9
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

3 4
110 90 120
100 80 120 10000

Exemple de sortie 1

110

Deux vendeurs, le 1er et le 2e, peuvent vendre une pomme pour 110 yens ; deux acheteurs, le 3e et le 4e, peuvent acheter une pomme pour 110 yens. Ainsi, 110 satisfait la condition.
Puisqu'un entier inférieur à 110 ne satisfait pas la condition, voici la réponse.

Exemple d'entrée 2

5 2
100000 100000 100000 100000 100000
100 200

Exemple de sortie 2

201

Exemple d'entrée 3

3 2
100 100 100
80 120

Exemple de sortie 3

100


On vous donne une chaîne non vide S composée de (, ) et ?.
Il existe 2^x façons d'obtenir une nouvelle chaîne en remplaçant chaque ? dans S par ( et ), où x est le nombre d'occurrences de ? dans S. Parmi elles, trouvez le nombre, modulo 998244353, de façons d'obtenir une chaîne entre parenthèses.
Une chaîne est dite chaîne entre parenthèses si l'une des conditions suivantes est satisfaite.

- C'est une chaîne vide.
- C'est une concaténation de (, A et ), pour une chaîne entre parenthèses A.
- C'est une concaténation de A et B, pour certaines chaînes entre parenthèses non vides A et B.

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
S

Sortie

Imprimez la réponse.

Contraintes

- S est une chaîne non vide d'une longueur maximale de 3000 composée de (, ) et ?.

Exemple d'entrée 1

(???(?

Exemple de sortie 1

2

Le remplacement de S par ()()() ou (())() génère une chaîne de parenthèses.
Les autres remplacements ne génèrent pas de chaîne de parenthèses, donc 2 doit être imprimé.

Exemple d'entrée 2

)))))

Exemple de sortie 2

0

Exemple d'entrée 3

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

Exemple de sortie 3

603032273

Imprimer le nombre modulo 998244353.

On vous donne une chaîne de caractères non vide S composée de (, ) et ?.
Il existe 2^x façons d'obtenir une nouvelle chaîne en remplaçant chaque ? dans S par ( et ), où x est le nombre d'occurrences de ? dans S. Parmi elles, trouvez le nombre, modulo 998244353, de façons qui forment une chaîne de parenthèses.
Une chaîne est dite chaîne de parenthèses si l'une des conditions suivantes est satisfaite.

- C'est une chaîne vide.
- C'est une concaténation de (, A et ), pour une chaîne de parenthèses A.
- C'est une concaténation de A et B, pour des chaînes de parenthèses non vides A et B.

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
S

Sortie

Affichez la réponse.

Contraintes

- S est une chaîne non vide de longueur au plus 3000 composée de (, ) et ?.

Exemple d'entrée 1

(???(?

Exemple de sortie 1

2

Remplacer S par ()()() ou (())() donne une chaîne de parenthèses.
Les autres remplacements ne donnent pas de chaîne de parenthèses, donc 2 doit être affiché.

Exemple d'entrée 2

)))))

Exemple de sortie 2

0

Exemple d'entrée 3

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

Exemple de sortie 3

603032273

Affichez le compte modulo 998244353.

On vous donne une chaîne non vide S composée de (, ) et ?.
Il existe 2^x façons d'obtenir une nouvelle chaîne en remplaçant chaque ? dans S par ( et ), où x est le nombre d'occurrences de ? dans S. Parmi elles, trouvez le nombre, modulo 998244353, de façons qui forment une chaîne de parenthèses.
Une chaîne est dite chaîne de parenthèses si l'une des conditions suivantes est satisfaite.

- C'est une chaîne vide.
- C'est une concaténation de (, A et ), pour une chaîne de parenthèses A.
- C'est une concaténation de A et B, pour des chaînes de parenthèses non vides A et B.

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
S

Sortie

Affichez la réponse.

Contraintes

- S est une chaîne non vide de longueur au plus 3000 composée de (, ) et ?.

Exemple d'entrée 1

(???(?

Exemple de sortie 1

2

Remplacer S par ()()() ou (())() donne une chaîne de parenthèses.
Les autres remplacements ne donnent pas de chaîne de parenthèses, donc 2 doit être affiché.

Exemple d'entrée 2

)))))

Exemple de sortie 2

0

Exemple d'entrée 3

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

Exemple de sortie 3

603032273

Affichez le compte modulo 998244353.


Il y a N parallélépipèdes rectangles dans un espace tridimensionnel.
Ces parallélépipèdes ne se chevauchent pas. Formellement, pour deux parallélépipèdes différents parmi eux, leur intersection a un volume de 0.
La diagonale du i-ème parallélépipède est un segment qui relie deux points (X_{i,1},Y_{i,1},Z_{i,1}) et (X_{i,2},Y_{i,2},Z_{i,2}), et ses arêtes sont toutes parallèles à l'un des axes de coordonnées.
Pour chaque parallélépipède, trouvez le nombre d'autres parallélépipèdes qui partagent une face avec lui.
Formellement, pour chaque i, trouvez le nombre de j avec 1\leq j \leq N et j\neq i tel que l'intersection des surfaces des i-ème et j-ème parallélépipèdes ait une aire positive.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
X_{1,1} Y_{1,1} Z_{1,1} X_{1,2} Y_{1,2} Z_{1,2}
\vdots
X_{N,1} Y_{N,1} Z_{N,1} X_{N,2} Y_{N,2} Z_{N,2}

Sortie

Affichez la réponse.

Contraintes

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Les parallélépipèdes n'ont pas d'intersection avec un volume positif.
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

1
1
0
0

Les 1er et 2e parallélépipèdes partagent un rectangle dont la diagonale est le segment reliant deux points (0,0,1) et (1,1,1).
Les 1er et 3e parallélépipèdes partagent un point (1,1,1), mais ne partagent pas de surface.

Exemple d'entrée 2

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

Exemple de sortie 2

2
1
1

Exemple d'entrée 3

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

Exemple de sortie 3

3
3
3
3
3
3
3
3

On a N parallélépipèdes rectangles dans un espace tridimensionnel.
Ces parallélépipèdes ne se chevauchent pas. Formellement, pour deux parallélépipèdes différents parmi eux, leur intersection a un volume de 0.
La diagonale du i-ème parallélépipède est un segment qui relie deux points (X_{i,1},Y_{i,1},Z_{i,1}) et (X_{i,2},Y_{i,2},Z_{i,2}), et ses arêtes sont toutes parallèles à l'un des axes de coordonnées.
Pour chaque parallélépipède, trouvez le nombre d'autres parallélépipèdes qui partagent une face avec lui.
Formellement, pour chaque i, trouvez le nombre de j avec 1\leq j \leq N et j\neq i tel que l'intersection des surfaces des i-ème et j-ème parallélépipèdes ait une aire positive.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
X_{1,1} Y_{1,1} Z_{1,1} X_{1,2} Y_{1,2} Z_{1,2}
\vdots
X_{N,1} Y_{N,1} Z_{N,1} X_{N,2} Y_{N,2} Z_{N,2}

Sortie

Affichez la réponse.

Contraintes

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Les parallélépipèdes n'ont pas d'intersection avec un volume positif.
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

1
1
0
0

Les 1er et 2e parallélépipèdes partagent un rectangle dont la diagonale est le segment reliant deux points (0,0,1) et (1,1,1).
Les 1er et 3e parallélépipèdes partagent un point (1,1,1), mais ne partagent pas de surface.

Exemple d'entrée 2

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

Exemple de sortie 2

2
1
1

Exemple d'entrée 3

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

Exemple de sortie 3

3
3
3
3
3
3
3
3

Il y a N cuboïdes rectangulaires dans un espace tridimensionnel.
Ces cuboïdes ne se chevauchent pas.  Formellement, pour deux cuboïdes différents parmi eux, leur intersection a un volume de 0.
La diagonale du i-ième cuboïde est un segment qui relie deux points (X_{i,1},Y_{i,1},Z_{i,1}) et (X_{i,2},Y_{i,2},Z_{i,2}), et ses bords sont tous parallèles à l’un des axes de coordonnées.
Pour chaque cuboïde, trouvez le nombre d’autres cuboïdes qui partagent un visage avec lui.
Formellement, pour chaque i, déterminez le nombre de j avec 1\leq j \leq N et j\neq i de telle sorte que l’intersection des surfaces des i-ème et j-ème cuboïdes ait une aire positive.

Entrée

L’entrée est fournie à partir de l’entrée standard au format suivant :
N
X_{1,1} Y_{1,1} Z_{1,1} X_{1,2} Y_{1,2} Z_{1,2}
\vdots
X_{N,1} Y_{N,1} Z_{N,1} X_{N,2} Y_{N,2} Z_{N,2}

Sortie

Imprimez la réponse.

Contraintes

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Les cuboïdes n’ont pas d’intersection avec un volume positif.
- Toutes les valeurs d’entrée sont des entiers.

Exemple d’entrée 1

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

Sortie de l’échantillon 1

1
1
0
0

Les 1er et 2e cuboïdes partagent un rectangle dont la diagonale est le segment reliant deux points (0,0,1) et (1,1,1).
Les 1er et 3e cuboïdes partagent un point (1,1,1), mais ne partagent pas de surface.

Exemple d’entrée 2

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

Exemple de sortie 2

2
1
1

Exemple d’entrée 3

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

Exemple de sortie 3

3
3
3
3
3
3
3
3


Il y a N objets.
Chacun d'eux est soit une canette à languette, une canette classique, soit un ouvre-boîte.
Le i-ème objet est décrit par un couple d'entiers (T_i, X_i) comme suit :

- Si T_i = 0, le i-ème objet est une canette à languette ; si vous l'obtenez, vous obtenez un bonheur de X_i.
- Si T_i = 1, le i-ème objet est une canette classique ; si vous l'obtenez et utilisez un ouvre-boîte pour l'ouvrir, vous obtenez un bonheur de X_i.
- Si T_i = 2, le i-ème objet est un ouvre-boîte ; il peut être utilisé pour ouvrir jusqu'à X_i canettes.

Trouvez le bonheur total maximal que vous pouvez obtenir en obtenant M objets parmi N.

Entrée

L'entrée est donnée depuis l'entrée standard sous le format suivant :
N M
T_1 X_1
T_2 X_2
\vdots
T_N X_N

Sortie

Affichez la réponse sous forme d'entier.

Contraintes

- 1 \leq M \leq N \leq 2 \times 10^5
- T_i est 0, 1 ou 2.
- 1 \leq X_i \leq 10^9
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

27

Si vous obtenez les 1er, 2ème, 5ème et 7ème objets, et utilisez le 7ème objet (un ouvre-boîte) sur le 5ème objet, vous obtiendrez un bonheur de 6 + 6 + 15 = 27.
Il n'y a pas de manière d'obtenir des objets pour atteindre un bonheur de 28 ou plus, mais vous pouvez toujours obtenir un bonheur de 27 en obtenant le 6ème ou 8ème objet au lieu du 7ème dans la combinaison ci-dessus.

Exemple d'entrée 2

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

Exemple de sortie 2

0

Exemple d'entrée 3

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

Exemple de sortie 3

30

On considère N objets.
Chacun d'eux est soit une canette à languette, une canette classique, soit un ouvre-boîte.
Le i-ème objet est décrit par un couple d'entiers (T_i, X_i) comme suit :

- Si T_i = 0, le i-ème objet est une canette à languette ; si vous l'obtenez, vous obtenez un bonheur de X_i.
- Si T_i = 1, le i-ème objet est une canette classique ; si vous l'obtenez et utilisez un ouvre-boîte pour l'ouvrir, vous obtenez un bonheur de X_i.
- Si T_i = 2, le i-ème objet est un ouvre-boîte ; il peut être utilisé pour ouvrir jusqu'à X_i canettes.

Trouvez le bonheur total maximal que vous pouvez obtenir en obtenant M objets parmi N.

Entrée

L'entrée est donnée depuis l'entrée standard sous le format suivant :
N M
T_1 X_1
T_2 X_2
\vdots
T_N X_N

Sortie

Affichez la réponse sous forme d'entier.

Contraintes

- 1 \leq M \leq N \leq 2 \times 10^5
- T_i est 0, 1 ou 2.
- 1 \leq X_i \leq 10^9
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

27

Si vous obtenez les 1er, 2ème, 5ème et 7ème objets, et utilisez le 7ème objet (un ouvre-boîte) sur le 5ème objet, vous obtiendrez un bonheur de 6 + 6 + 15 = 27.
Il n'y a pas de manière d'obtenir des objets pour atteindre un bonheur de 28 ou plus, mais vous pouvez toujours obtenir un bonheur de 27 en obtenant le 6ème ou 8ème objet au lieu du 7ème dans la combinaison ci-dessus.

Exemple d'entrée 2

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

Exemple de sortie 2

0

Exemple d'entrée 3

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

Exemple de sortie 3

30

Il y a N articles.
Chacun d'entre eux est une boîte de conserve à languette, une boîte de conserve ordinaire ou un ouvre-boîte.
Le i-ième objet est décrit par une paire d'entiers (T_i, X_i) comme suit :

- Si T_i = 0, le i-ième élément est une boîte de conserve à languette ; si vous l'obtenez, vous obtenez un bonheur de X_i.
- Si T_i = 1, le i-ième objet est une boîte de conserve normale ; si vous l'obtenez et que vous utilisez un ouvre-boîte contre elle, vous obtenez un bonheur de X_i.
- Si T_i = 2, le i-ième objet est un ouvre-boîte ; il peut être utilisé contre au plus X_i boîtes de conserve.

Trouvez le bonheur total maximum que vous obtenez en obtenant M objets sur N.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N M
T_1 X_1
T_2 X_2
\vdots
T_N X_N

Sortie

Imprime la réponse sous la forme d'un nombre entier.

Contraintes

- 1 \leq M \leq N \leq 2 \times 10^5
- T_i est 0, 1 ou 2.
- 1 \leq X_i \leq 10^9
- Toutes les valeurs d'entrée sont des nombres entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

27

Si vous obtenez les 1e, 2e, 5e et 7e objets, et que vous utilisez le 7e objet (un ouvre-boîte) contre le 5e, vous obtiendrez un bonheur de 6 + 6 + 15 = 27.
Il n'y a aucune façon d'obtenir des objets pour obtenir un bonheur de 28 ou plus, mais vous pouvez toujours obtenir un bonheur de 27 en obtenant le 6ème ou le 8ème objet au lieu du 7ème dans la combinaison ci-dessus.

Exemple d'entrée 2

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

Exemple de sortie 2

0

Exemple d'entrée 3

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

Exemple de sortie 3

30


Il y a N personnes numérotées de 1 à N.
Chaque personne a un score entier appelé aptitude à la programmation ; l'aptitude à la programmation de la personne i est de P_i points.
Combien de points de plus la personne 1 a-t-elle besoin pour devenir la plus forte ?
En d'autres termes, quel est le minimum d'un entier non négatif x tel que P_1 + x > P_i pour tout i \neq 1 ?

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
P_1 P_2 \dots P_N

Sortie

Imprimez la réponse sous forme d'un nombre entier.

Contraintes

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

4
5 15 2 10

Exemple de sortie 1

11

La personne 1 devient la plus forte lorsque ses compétences en programmation atteignent au moins 16 points,
donc la réponse est 16-5=11.

Exemple d'entrée 2

4
15 5 2 10

Exemple de sortie 2

0

La personne 1 est déjà la plus forte, donc elle n'a besoin d'aucune compétence supplémentaire en programmation.

Exemple d'entrée 3

3
100 100 100

Exemple de sortie 3

1

Il y a N personnes numérotées de 1 à N.
Chaque personne a un score au format entier appelé aptitude à la programmation ; l'aptitude à la programmation de la personne i est de P_i points.
De combien de points de plus la personne 1 a-t-elle besoin pour devenir la plus forte ?
En d'autres termes, quel est le minimum d'un entier non négatif x tel que P_1 + x > P_i pour tout i \neq 1 ?

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
P_1 P_2 \dots P_N

Sortie

Affichez la réponse sous forme d'entier.

Contraintes

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

4
5 15 2 10

Exemple de sortie 1

11

La personne 1 devient la plus forte lorsque ses compétences en programmation atteignent au moins 16 points,
donc la réponse est 16-5=11.

Exemple d'entrée 2

4
15 5 2 10

Exemple de sortie 2

0

La personne 1 est déjà la plus forte, donc elle n'a besoin d'aucune compétence supplémentaire en programmation.

Exemple d'entrée 3

3
100 100 100

Exemple de sortie 3

1

Il y a N personnes numérotées de 1 à N.
Chaque personne a un score entier appelé capacité de programmation ; la capacité de programmation de la personne i est de P_i points.
De combien de points supplémentaires la personne 1 a-t-elle besoin pour devenir la plus forte ?
En d'autres termes, quel est le nombre entier non négatif minimum x tel que P_1 + x > P_i pour tout i \neq 1 ?

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
N
P_1 P_2 \dots P_N

Sortie

Imprimez la réponse sous forme d'entier.

Contraintes

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

4
5 15 2 10

Exemple de sortie 1

11

La personne 1 devient la plus forte lorsque sa compétence en programmation est de 16 points ou plus,
donc la réponse est 16-5=11.

Exemple d'entrée 2

4
15 5 2 10

Exemple de sortie 2

0

La personne 1 est déjà la plus forte, donc aucune compétence supplémentaire en programmation n'est nécessaire.

Exemple d'entrée 3

3
100 100 100

Exemple de sortie 3

1


Il y a N programmeurs compétitifs numérotés personne 1, personne 2, \ldots, et personne N.
Il existe une relation appelée supériorité entre les programmeurs.  Pour toutes les paires de programmeurs distincts (personne X, personne Y), l'une des deux relations suivantes est valable : « la personne X est plus forte que la personne Y » ou “la personne Y est plus forte que la personne X”.
La supériorité est transitive.  En d'autres termes, pour tous les triplets de programmeurs distincts (personne X, personne Y, personne Z), il est vrai que :

- si la personne X est plus forte que la personne Y et que la personne Y est plus forte que la personne Z, alors la personne X est plus forte que la personne Z.

On dit qu'une personne X est le programmeur le plus fort si la personne X est plus forte que la personne Y pour toutes les personnes Y autres que la personne X. (Sous les contraintes ci-dessus, nous pouvons prouver qu'il y a toujours exactement une telle personne).
Vous disposez de M informations sur leur supériorité.  La i-ième d'entre elles est que « la personne A_i est plus forte que la personne B_i ».
Pouvez-vous déterminer le programmeur le plus fort parmi les N sur la base de ces informations ?
Si c'est le cas, indiquez le numéro de la personne.  Sinon, c'est-à-dire s'il y a plusieurs programmeurs les plus forts possibles, affichez -1.

Entrée

L'entrée est fournie par l'entrée standard dans le format suivant :
N M
A_1 B_1
A_2 B_2
\vdots
A_M B_M

Sortie

Si vous pouvez déterminer de façon unique le programmeur le plus fort, imprimez le numéro de la personne ; sinon, imprimez -1.

Contraintes

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- If i \neq j, then (A_i, B_i) \neq (A_j, B_j).
- Il existe au moins une façon de déterminer les supériorités pour toutes les paires de programmeurs distincts, qui est cohérente avec les informations données.

Exemple d'entrée 1

3 2
1 2
2 3

Exemple de sortie 1

1

Vous disposez de deux informations : "la personne 1 est plus forte que la personne 2" et “la personne 2 est plus forte que la personne 3”.
Par transitivité, vous pouvez également déduire que " la personne 1 est plus forte que la personne 3 ", donc la personne 1 est le programmeur le plus fort.

Exemple d'entrée 2

3 2
1 3
2 3

Exemple de sortie 2

-1

La personne 1 et la personne 2 peuvent toutes deux être le programmeur le plus fort.  Comme vous ne pouvez pas déterminer de façon unique lequel est le plus fort, vous devez imprimer -1.

Exemple d'entrée 3

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

Exemple de sortie 3

-1

Il y a N programmeurs compétitifs numérotés personne 1, personne 2, \ldots, et personne N.
Il existe une relation appelée supériorité entre les programmeurs. Pour toutes les paires de programmeurs distincts (personne X, personne Y), exactement une des deux relations suivantes est vraie : "personne X est plus forte que personne Y" ou "personne Y est plus forte que personne X."
La supériorité est transitive. En d'autres termes, pour tous les triplets de programmeurs distincts (personne X, personne Y, personne Z), il est vrai que :

- si personne X est plus forte que personne Y et personne Y est plus forte que personne Z, alors personne X est plus forte que personne Z.

Une personne X est dite le programmeur le plus fort si personne X est plus forte que personne Y pour toutes les personnes Y autres que personne X. (Sous les contraintes ci-dessus, on peut prouver qu'il y a toujours exactement une telle personne.)
Vous avez M informations sur leur supériorité. La i-ème de celles-ci est que "personne A_i est plus forte que personne B_i."
Pouvez-vous déterminer le programmeur le plus fort parmi les N d'après les informations ?
Si vous pouvez, affichez le numéro de la personne. Sinon, c'est-à-dire s'il y a plusieurs programmeurs possibles les plus forts, affichez -1.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N M
A_1 B_1
A_2 B_2
\vdots
A_M B_M

Sortie

Si vous pouvez déterminer de manière unique le programmeur le plus fort, affichez le numéro de la personne ; sinon, affichez -1.

Contraintes

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- Si i \neq j, alors (A_i, B_i) \neq (A_j, B_j).
- Il existe au moins une façon de déterminer les supériorités pour toutes les paires de programmeurs distincts, qui est cohérente avec les informations données.

Exemple d'entrée 1

3 2
1 2
2 3

Exemple de sortie 1

1

Vous avez deux informations : "personne 1 est plus forte que personne 2" et "personne 2 est plus forte que personne 3."
Par transitivité, vous pouvez également déduire que "personne 1 est plus forte que personne 3," donc personne 1 est le programmeur le plus fort.

Exemple d'entrée 2

3 2
1 3
2 3

Exemple de sortie 2

-1

Les personnes 1 et 2 peuvent être le programmeur le plus fort. Comme vous ne pouvez pas déterminer de manière unique qui est le plus fort, vous devez afficher -1.

Exemple d'entrée 3

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

Exemple de sortie 3

-1

Il y a N programmeurs compétitifs numérotés personne 1, personne 2, \ldots, et personne N.
Il existe une relation appelée supériorité entre les programmeurs.  Pour toutes les paires de programmeurs distincts (personne X, personne Y), exactement une des deux relations suivantes est vraie : "personne X est plus forte que personne Y" ou "personne Y est plus forte que personne X."
La supériorité est transitive.  En d'autres termes, pour tous les triplets de programmeurs distincts (personne X, personne Y, personne Z), il est vrai que :

- si personne X est plus forte que personne Y et personne Y est plus forte que personne Z, alors personne X est plus forte que personne Z.

Une personne X est dite le programmeur le plus fort si personne X est plus forte que personne Y pour toutes les personnes Y autres que personne X.  (Dans les contraintes ci-dessus, on peut prouver qu'il y a toujours exactement une telle personne.)
Vous avez M informations sur leur supériorité. La i-ème de celles-ci est que "personne A_i est plus forte que personne B_i."
Pouvez-vous déterminer le programmeur le plus fort parmi les N d'après les informations ?
Si vous le pouvez, affichez le numéro de la personne. Sinon, c'est-à-dire s'il y a plusieurs programmeurs possibles les plus forts, affichez -1.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N M
A_1 B_1
A_2 B_2
\vdots
A_M B_M

Sortie

Si vous pouvez déterminer de manière unique le programmeur le plus fort, affichez le numéro de la personne ; sinon, affichez -1.

Contraintes

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- Si i \neq j, alors (A_i, B_i) \neq (A_j, B_j).
- Il existe au moins une façon de déterminer les supériorités pour toutes les paires de programmeurs distincts, qui est cohérente avec les informations données.

Exemple d'entrée 1

3 2
1 2
2 3

Exemple de sortie 1

1

Vous avez deux informations : "personne 1 est plus forte que personne 2" et "personne 2 est plus forte que personne 3."
Par transitivité, vous pouvez également déduire que "personne 1 est plus forte que personne 3," donc personne 1 est le programmeur le plus fort.

Exemple d'entrée 2

3 2
1 3
2 3

Exemple de sortie 2

-1

Les personnes 1 et 2 peuvent toutes les deux être le programmeur le plus fort.  Comme vous ne pouvez pas déterminer de manière unique qui est le plus fort, vous devez afficher -1.

Exemple d'entrée 3

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

Exemple de sortie 3

-1


On vous donne une séquence d'entiers A=(A_1,A_2,\dots,A_N).
Vous pouvez effectuer l'opération suivante un nombre quelconque de fois (éventuellement zéro).

- Choisissez des entiers i et j avec 1\leq i,j\leq N. Diminuez A_i d'une unité et augmentez A_j d'une unité.

Trouvez le nombre minimum d'opérations nécessaires pour que la différence entre les valeurs minimum et maximum de A soit au plus égale à un.

Entrée

L'entrée est fournie par l'entrée standard dans le format suivant :
N
A_1 A_2 \dots A_N

Sortie

Affiche la réponse sous la forme d'un nombre entier.

Contraintes

- 1\leq N \leq 2\times 10^5
- 1\leq A_i \leq 10^9
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

4
4 7 3 7

Exemple de sortie 1

3

Par les trois opérations suivantes, la différence entre les valeurs minimale et maximale de A devient au plus égale à un.

- Choisissez i=2 et j=3 pour obtenir A=(4,6,4,7).
- Choisir i=4 et j=1 pour faire A=(5,6,4,6).
- Choisissez i=4 et j=3 pour faire A=(5,6,5,5).

La différence entre les valeurs maximale et minimale de A ne peut pas être supérieure à un par moins de trois opérations, la réponse est donc 3.

Exemple d'entrée 2

1
313

Exemple de sortie 2

0

Exemple d'entrée 3

10
999999997 999999999 4 3 2 4 999999990 8 999999991 999999993

Exemple de sortie 3

2499999974

Vous avez une séquence d'entiers A=(A_1,A_2,\dots,A_N).
Vous pouvez effectuer l'opération suivante un nombre quelconque de fois (éventuellement zéro).

- Choisissez des entiers i et j tels que 1 \leq i,j \leq N. Diminuez A_i de un et augmentez A_j de un.

Trouvez le nombre minimum d'opérations nécessaires pour que la différence entre les valeurs minimale et maximale de A soit d'au plus un.

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N
A_1 A_2 \dots A_N

Sortie

Imprimez la réponse sous forme d’un entier.

Contraintes

- 1 \leq N \leq 2\times 10^5
- 1 \leq A_i \leq 10^9
- Toutes les valeurs d’entrée sont des entiers.

Exemple d'entrée 1

4
4 7 3 7

Exemple de sortie 1

3

Par les trois opérations suivantes, la différence entre les valeurs minimale et maximale de A devient d'au plus un.

- Choisissez i=2 et j=3 pour obtenir A=(4,6,4,7).
- Choisissez i=4 et j=1 pour obtenir A=(5,6,4,6).
- Choisissez i=4 et j=3 pour obtenir A=(5,6,5,5).

Vous ne pouvez pas rendre la différence entre les valeurs maximale et minimale de A d'au plus un en moins de trois opérations, donc la réponse est 3.

Exemple d'entrée 2

1
313

Exemple de sortie 2

0

Exemple d'entrée 3

10
999999997 999999999 4 3 2 4 999999990 8 999999991 999999993

Exemple de sortie 3

2499999974

Vous avez une séquence d'entiers A=(A_1,A_2,\dots,A_N).
Vous pouvez effectuer l'opération suivante un nombre quelconque de fois (éventuellement zéro).

- Choisissez des entiers i et j tels que 1 \leq i,j \leq N. Diminuez A_i de un et augmentez A_j de un.

Trouvez le nombre minimum d'opérations nécessaires pour que la différence entre les valeurs minimale et maximale de A soit d'au maximum un.

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N
A_1 A_2 \dots A_N

Sortie

Imprimez la réponse sous forme d’un entier.

Contraintes

- 1 \leq N \leq 2\times 10^5
- 1 \leq A_i \leq 10^9
- Toutes les valeurs d’entrée sont des entiers.

Exemple d'entrée 1

4
4 7 3 7

Exemple de sortie 1

3

Par les trois opérations suivantes, la différence entre les valeurs minimale et maximale de A devient d'au maximum un.

- Choisissez i=2 et j=3 pour obtenir A=(4,6,4,7).
- Choisissez i=4 et j=1 pour obtenir A=(5,6,4,6).
- Choisissez i=4 et j=3 pour obtenir A=(5,6,5,5).

Vous ne pouvez pas faire en sorte que la différence entre les valeurs maximale et minimale de A soit d'au maximum un en moins de trois opérations, donc la réponse est 3.

Exemple d'entrée 2

1
313

Exemple de sortie 2

0

Exemple d'entrée 3

10
999999997 999999999 4 3 2 4 999999990 8 999999991 999999993

Exemple de sortie 3

2499999974


Le nombre pi jusqu'à la 100ème décimale est
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
On vous donne un entier N entre 1 et 100, inclus.
Affichez la valeur de pi jusqu'à la N-ième décimale.
Plus précisément, tronquez la valeur de pi aux N décimales et affichez le résultat sans supprimer les zéros finaux.

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N

Sortie

Affichez la valeur de pi jusqu'à la N-ième décimale sur une seule ligne.

Contraintes

- 1\leq N\leq 100
- N est un entier.

Exemple d'entrée 1

2

Exemple de sortie 1

3.14

Tronquer la valeur de pi à 2 décimales donne 3.14. Ainsi, vous devez afficher 3.14.

Exemple d'entrée 2

32

Exemple de sortie 2

3.14159265358979323846264338327950

Ne supprimez pas les zéros finaux.

Exemple d'entrée 3

100

Exemple de sortie 3

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Le nombre pi à la 100e décimale est
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
On vous donne un entier N compris entre 1 et 100, inclus.
Imprimez la valeur de pi à la N-ième décimale.
Plus précisément, tronquez la valeur de pi à N décimales et imprimez le résultat sans supprimer les 0 de fin.

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
N

Sortie

Imprimez la valeur de pi à la N-ième décimale sur une seule ligne.

Contraintes

- 1\leq N\leq 100
- N est un entier.

Exemple d'entrée 1

2

Exemple de sortie 1

3.14

La troncature de la valeur de pi à 2 décimales donne 3.14. Vous devez donc imprimer 3.14.

Exemple d'entrée 2

32

Exemple de sortie 2

3.14159265358979323846264338327950

Ne supprimez pas les 0 de fin.

Exemple d'entrée 3

100

Exemple de sortie 3

3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Le nombre pi jusqu'à la 100ème décimale est
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
On vous donne un entier N entre 1 et 100, inclus.
Affichez la valeur de pi jusqu'à la N-ième décimale.
Plus précisément, tronquez la valeur de pi aux N décimales et affichez le résultat sans supprimer les zéros finaux.

Entrée

L'entrée est donnée depuis l'entrée standard dans le format suivant :
N

Sortie

Affichez la valeur de pi jusqu'à la N-ième décimale sur une seule ligne.

Contraintes

- 1\leq N\leq 100
- N est un entier.

Exemple d'entrée 1

2

Exemple de sortie 1

3.14

Tronquer la valeur de pi à 2 décimales donne 3.14. Ainsi, vous devez affichez 3.14.

Exemple d'entrée 2

32

Exemple de sortie 2

3.14159265358979323846264338327950

Ne supprimez pas les zéros finaux.

Exemple d'entrée 3

100

Exemple de sortie 3

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679


N personnes, personne 1, personne 2, \ldots, personne N, jouent à la roulette.
Le résultat d'un tour est l'un des 37 entiers de 0 à 36.
Pour chaque i = 1, 2, \ldots, N, la personne i a parié sur C_i des 37 résultats possibles : A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
La roue a tourné et le résultat est X.
Imprimer les numéros de toutes les personnes qui ont parié sur X avec le moins de paris, par ordre croissant.
Plus formellement, imprimez tous les entiers i entre 1 et N, inclus, qui satisfont les deux conditions suivantes, par ordre croissant :

- La personne i a parié sur X.
- Pour chaque j = 1, 2, \ldots, N, si la personne j a parié sur X, alors C_i \leq C_j.

Notez qu'il peut n'y avoir aucun nombre à imprimer (voir Entrée Exemple 2).

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
C_1
A_{1, 1} A_{1, 2} \ldots A_{1, C_1}
C_2
A_{2, 1} A_{2, 2} \ldots A_{2, C_2}
\vdots
C_N
A_{N, 1} A_{N, 2} \ldots A_{N, C_N}
X

Sortie

Soit B_1, B_2, \ldots, B_K la séquence de numéros à imprimer par ordre croissant.
En utilisant le format suivant, imprimez le nombre de numéros à imprimer, K, sur la première ligne,
et B_1, B_2, \ldots, B_K séparés par des espaces sur la deuxième ligne :
K
B_1 B_2 \ldots B_K

Contraintes

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} sont tous différents pour chaque i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- Toutes les valeurs d'entrée sont des entiers.

Entrée Exemple 1

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

Sortie Exemple 1

2
1 4

La roue a tourné et le résultat est 19.
Les personnes qui ont parié sur 19 sont la personne 1, la personne 2, et la personne 4, et le nombre de leurs paris est de 3, 4, et 3, respectivement.
Par conséquent, parmi les personnes qui ont parié sur 19, celles avec le moins de paris sont la personne 1 et la personne 4.

Entrée Exemple 2

3
1
1
1
2
1
3
0

Sortie Exemple 2

0

La roue a tourné et le résultat est 0, mais personne n'a parié sur 0, donc il n'y a aucun nombre à imprimer.

N personnes, personne 1, personne 2, \ldots, personne N, jouent à la roulette.
Le résultat d'un tour est l'un des 37 entiers de 0 à 36.
Pour chaque i = 1, 2, \ldots, N, la personne i a misé sur C_i des 37 résultats possibles : A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
La roue a été lancée et le résultat est X.
Imprimez les numéros de toutes les personnes qui ont misé sur X avec le moins de paris, par ordre croissant.
Plus formellement, imprimez tous les entiers i compris entre 1 et N, inclus, qui satisfont aux deux conditions suivantes, par ordre croissant :

- La personne i a misé sur X.
- Pour chaque j = 1, 2, \ldots, N, si la personne j a misé sur X, alors C_i \leq C_j.

Notez qu'il peut n'y avoir aucun numéro à imprimer (voir Exemple d'entrée 2).

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
N
C_1
A_{1, 1} A_{1, 2} \ldots A_{1, C_1}
C_2
A_{2, 1} A_{2, 2} \ldots A_{2, C_2}
\vdots
C_N
A_{N, 1} A_{N, 2} \ldots A_{N, C_N}
X

Sortie

Soit B_1, B_2, \ldots, B_K la séquence de nombres à imprimer dans l'ordre croissant.
En utilisant le format suivant, imprimez le nombre de nombres à imprimer, K, sur la première ligne,
et B_1, B_2, \ldots, B_K séparés par des espaces sur la deuxième ligne :
K
B_1 B_2 \ldots B_K

Contraintes

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} sont tous différents pour chaque i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- Toutes les valeurs d'entrée sont des entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

2
1 4

La roue a été lancée et le résultat est 19.
Les personnes qui ont parié sur 19 sont la personne 1, la personne 2 et la personne 4, et le nombre de leurs paris est respectivement 3, 4 et 3.
Par conséquent, parmi les personnes qui ont parié sur 19, celles qui ont le moins parié sont la personne 1 et la personne 4.

Exemple d'entrée 2

3
1
1
1
2
1
3
0

Exemple de sortie 2

0

La roue a été lancée et le résultat est 0, mais personne n'a parié sur 0, il n'y a donc pas de nombre à imprimer.

N personnes, personne 1, personne 2, \ldots, personne N, jouent à la roulette.
Le résultat d'un tour est l'un des 37 entiers compris entre 0 à 36.
Pour chaque i = 1, 2, \ldots, N, la personne i a parié sur C_i des 37 résultats possibles : A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
La roue a été tournée et le résultat est X.
Afficher les numéros de toutes les personnes qui ont parié sur X avec le moins de paris, en ordre croissant.
Plus formellement, affichez tous les entiers i entre 1 et N, inclus, qui satisfont les deux conditions suivantes, par ordre croissant :

- La personne i a parié sur X.
- Pour chaque j = 1, 2, \ldots, N, si la personne j a parié sur X, alors C_i \leq C_j.

Notez qu'il peut n'y avoir aucun nombre à imprimer (voir Entrée Exemple 2).

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N
C_1
A_{1, 1} A_{1, 2} \ldots A_{1, C_1}
C_2
A_{2, 1} A_{2, 2} \ldots A_{2, C_2}
\vdots
C_N
A_{N, 1} A_{N, 2} \ldots A_{N, C_N}
X

Sortie

Soit B_1, B_2, \ldots, B_K la séquence de numéros à afficher par ordre croissant.
En utilisant le format suivant, imprimez le nombre de numéros à afficher, K, sur la première ligne,
et B_1, B_2, \ldots, B_K séparés par des espaces sur la deuxième ligne :
K
B_1 B_2 \ldots B_K

Contraintes

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} sont tous différents pour chaque i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- Toutes les valeurs d'entrée sont des entiers.

Entrée Exemple 1

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

Sortie Exemple 1

2
1 4

La roue a été tournée et le résultat est 19.
Les personnes qui ont parié sur 19 sont la personne 1, la personne 2, et la personne 4, et le nombre de leurs paris est respectivement de 3, 4, et 3.
Par conséquent, parmi les personnes qui ont parié sur 19, celles avec le moins de paris sont la personne 1 et la personne 4.

Entrée Exemple 2

3
1
1
1
2
1
3
0

Sortie Exemple 2

0

La roue a été tournée et le résultat est 0, mais personne n'a parié sur 0, donc il n'y a aucun nombre à afficher.


On vous donne une chaîne S de longueur N composée de lettres minuscules anglaises.
Chaque caractère de S est peint dans l'une des M couleurs : couleur 1, couleur 2, ..., couleur M ; pour chaque i = 1, 2, \ldots, N, le i-ème caractère de S est peint dans la couleur C_i.
Pour chaque i = 1, 2, \ldots, M dans cet ordre, effectuons l'opération suivante.

- Effectuons un décalage circulaire à droite de 1 sur la partie de S peinte dans la couleur i.
C'est-à-dire que si les p_1-ème, p_2-ème, p_3-ème, \ldots, p_k-ème caractères sont peints dans la couleur i de gauche à droite, alors remplaçons simultanément les p_1-ème, p_2-ème, p_3-ème, \ldots, p_k-ème caractères de S par les p_k-ème, p_1-ème, p_2-ème, \ldots, p_{k-1}-ème caractères de S, respectivement.

Imprimez le S final après les opérations ci-dessus.
Les contraintes garantissent qu'au moins un caractère de S est peint dans chacune des couleurs M.

Entrée

L'entrée est donnée à partir de l'entrée standard au format suivant :
N M
S
C_1 C_2 \ldots C_N

Sortie

Imprimez la réponse.

Contraintes

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq C_i \leq M
- N, M et C_i sont tous des entiers.
- S est une chaîne de longueur N composée de lettres minuscules anglaises.
- Pour chaque entier 1 \leq i \leq M, il existe un entier 1 \leq j \leq N tel que C_j = i.

Exemple d'entrée 1

8 3
apzbqrcs
1 2 3 1 2 2 1 2

Exemple de sortie 1

cszapqbr

Au départ, S = apzbqrcs.

- Pour i = 1, effectuez un décalage circulaire à droite de 1 sur la partie de S formée par les 1er, 4e et 7e caractères, ce qui donne S = cpzaqrbs.
- Pour i = 2, effectuez un décalage circulaire à droite de 1 sur la partie de S formée par les 2e, 5e, 6e et 8e caractères, ce qui donne S = cszapqbr.
- Pour i = 3, effectuez un décalage circulaire à droite de 1 sur la partie de S formée par le 3e caractère, ce qui donne S = cszapqbr (ici, S n'est pas modifié).

Ainsi, vous devez imprimer cszapqbr, le S final.

Exemple d'entrée 2

2 1
aa
1 1

Exemple de sortie 2

aa

Vous avez une chaîne S de longueur N composée de lettres minuscules anglaises. Chaque caractère de S est peint dans l'une des M couleurs : couleur 1, couleur 2, ..., couleur M ; pour chaque i = 1, 2, \ldots, N, le i-ème caractère de S est peint dans la couleur C_i. Pour chaque i = 1, 2, \ldots, M dans cet ordre, effectuons l'opération suivante.

- Effectuer un décalage circulaire vers la droite de 1 sur la partie de S peinte en couleur i.
  C'est-à-dire, si les caractères p_1-ème, p_2-ème, p_3-ème, \ldots, p_k-ème sont peints en couleur i de gauche à droite, remplacez simultanément les caractères p_1-ème, p_2-ème, p_3-ème, \ldots, p_k-ème de S par les caractères p_k-ème, p_1-ème, p_2-ème, \ldots, p_{k-1}-ème de S, respectivement.

Affichez le S final après les opérations ci-dessus. Les contraintes garantissent qu'au moins un caractère de S est peint dans chacune des M couleurs.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N M
S
C_1 C_2 \ldots C_N

Sortie

Affichez la réponse.

Contraintes

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq C_i \leq M
- N, M et C_i sont tous des entiers.
- S est une chaîne de longueur N composée de lettres minuscules anglaises.
- Pour chaque entier 1 \leq i \leq M, il existe un entier 1 \leq j \leq N tel que C_j = i.

Exemple d'entrée 1

8 3
apzbqrcs
1 2 3 1 2 2 1 2

Exemple de sortie 1

cszapqbr

Initialement, S = apzbqrcs.

- Pour i = 1, effectuez un décalage circulaire vers la droite de 1 sur la partie de S formée par les 1-er, 4-ème, 7-ème caractères, ce qui donne S = cpzaqrbs.
- Pour i = 2, effectuez un décalage circulaire vers la droite de 1 sur la partie de S formée par les 2-ème, 5-ème, 6-ème, 8-ème caractères, ce qui donne S = cszapqbr.
- Pour i = 3, effectuez un décalage circulaire vers la droite de 1 sur la partie de S formée par le 3-ème caractère, ce qui donne S = cszapqbr (ici, S ne change pas).

Ainsi, vous devez affichez cszapqbr, le S final.

Exemple d'entrée 2

2 1
aa
1 1

Exemple de sortie 2

aa

Vous avez une chaîne S de longueur N composée de lettres minuscules anglaises.
Chaque caractère de S est peint dans l'une des M couleurs : couleur 1, couleur 2, ..., couleur M ; pour chaque i = 1, 2, \ldots, N, le i-ème caractère de S est peint dans la couleur C_i.
Pour chaque i = 1, 2, \ldots, M dans cet ordre, effectuons l'opération suivante.

- Effectuer une rotation circulaire à droite de 1 sur la partie de S peinte en couleur i.
  C'est-à-dire, si les p_1-ème, p_2-ème, p_3-ème, \ldots, p_k-ème caractères sont peints en couleur i de gauche à droite, remplacez simultanément les p_1-ème, p_2-ème, p_3-ème, \ldots, p_k-ème caractères de S par les p_k-ème, p_1-ème, p_2-ème, \ldots, p_{k-1}-ème caractères de S, respectivement.

Affichez le S final après les opérations ci-dessus.
Les contraintes garantissent qu'au moins un caractère de S est peint dans chacune des M couleurs.

Entrée

L'entrée est donnée à partir de l'entrée standard dans le format suivant :
N M
S
C_1 C_2 \ldots C_N

Sortie

Affichez la réponse.

Contraintes

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq C_i \leq M
- N, M et C_i sont tous des entiers.
- S est une chaîne de longueur N composée de lettres minuscules anglaises.
- Pour chaque entier 1 \leq i \leq M, il existe un entier 1 \leq j \leq N tel que C_j = i.

Exemple d'entrée 1

8 3
apzbqrcs
1 2 3 1 2 2 1 2

Exemple de sortie 1

cszapqbr

Initialement, S = apzbqrcs.

- Pour i = 1, effectuez une rotation circulaire à droite de 1 sur la partie de S formée par les 1-er, 4-ème, 7-ème caractères, ce qui donne S = cpzaqrbs.
- Pour i = 2, effectuez une rotation circulaire à droite de 1 sur la partie de S formée par les 2-ème, 5-ème, 6-ème, 8-ème caractères, ce qui donne S = cszapqbr.
- Pour i = 3, effectuez une rotation circulaire à droite de 1 sur la partie de S formée par le 3-ème caractère, ce qui donne S = cszapqbr (ici, S ne change pas).

Ainsi, vous devez afficher cszapqbr, le S final.

Exemple d'entrée 2

2 1
aa
1 1

Exemple de sortie 2

aa


On vous donne une chaîne S de longueur N composée de lettres anglaises majuscules et minuscules.
Effectuons Q opérations sur la chaîne S.
La i-ème opération (1\leq i\leq Q) est représentée par un triplet (t _ i,x _ i,c _ i) de deux entiers et un caractère, comme suit.

- Si t _ i=1, changez le x _ i-ème caractère de S en c _ i.
- Si t _ i=2, convertissez toutes les lettres majuscules de S en minuscules (n'utilisez pas x _ i,c _ i pour cette opération).
- Si t _ i=3, convertissez toutes les lettres minuscules de S en majuscules (n'utilisez pas x _ i,c _ i pour cette opération).

Affichez S après les Q opérations.

Entrée

L'entrée est fournie à partir de l'entrée standard dans le format suivant :
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Sortie

Affichez la réponse sur une seule ligne.

Contraintes

- 1\leq N\leq5\times10^5
- S est une chaîne de longueur N composée de lettres anglaises majuscules et minuscules.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Si t _ i=1, alors 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i est une lettre anglaise majuscule ou minuscule.
- Si t _ i\neq 1, alors x _ i=0 et c _ i= 'a'.
- N,Q,t _ i,x _ i sont tous des entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

atcYber

Initialement, la chaîne S est AtCoder.

- La première opération change le 4-ème caractère en i, modifiant ainsi S en AtCider.
- La deuxième opération convertit toutes les lettres minuscules en majuscules, modifiant ainsi S en ATCIDER.
- La troisième opération change le 5-ème caractère en b, modifiant ainsi S en ATCIbER.
- La quatrième opération convertit toutes les lettres majuscules en minuscules, modifiant ainsi S en atciber.
- La cinquième opération change le 4-ème caractère en Y, modifiant ainsi S en atcYber.

Après les opérations, la chaîne S est atcYber, donc affichez atcYber.

Exemple d'entrée 2

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

Exemple de sortie 2

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG

On vous donne une chaîne S de longueur N composée de lettres anglaises majuscules et minuscules.
Effectuons des opérations Q sur la chaîne S.
La ième opération (1\leq i\leq Q) est représentée par un tuple (t _ i,x _ i,c _ i) de deux entiers et d’un caractère, comme suit.

- Si t _ i=1, changez le caractère x _ i-i-ième de S en c _ i.
- Si t _ i=2, convertissez toutes les lettres majuscules en S en minuscules (n’utilisez pas x _ i,c _ i pour cette opération).
- Si t _ i=3, convertissez toutes les lettres minuscules de S en majuscules (n’utilisez pas x _ i,c _ i pour cette opération).

Imprimez le S après les opérations Q.

Entrée

L’entrée est fournie à partir de l’entrée standard au format suivant :
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Sortie

Imprimez la réponse sur une seule ligne.

Contraintes

- 1\leq N\leq5\times10^5
- S est une chaîne de longueur N composée de lettres anglaises majuscules et minuscules.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3 \(1\leq i\leq Q)
- Si t _ i=1, alors 1\leq x _ ileq N\ (1\leq i\leq Q).
- c _ i est une lettre anglaise majuscule ou minuscule.
- Si t _ i\neq 1, alors x _ i=0 et c _ i= 'a'.
- N,Q,t _ i,x _ i sont tous des entiers.

Exemple d’entrée 1

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

Sortie de l’échantillon 1

atcYber

Initialement, la chaîne S est AtCoder.

- La première opération change le 4ème caractère en i, changeant S en AtCider.
- La deuxième opération convertit toutes les lettres minuscules en majuscules, en changeant S en ATCIDER.
- La troisième opération change le 5ème caractère en b, changeant S en ATCIbER.
- La quatrième opération convertit toutes les lettres majuscules en minuscules, en remplaçant S par atciber.
- La cinquième opération change le 4ème caractère en Y, changeant S en atcYber.

Après les opérations, la chaîne S est atcYber, donc imprime atcYber.

Exemple d’entrée 2

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

Exemple de sortie 2

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG

Vous avez une chaîne S de longueur N composée de lettres anglaises majuscules et minuscules.
Effectuons Q opérations sur la chaîne S.
La i-ème opération (1\leq i\leq Q) est représentée par un triplet (t _ i,x _ i,c _ i) de deux entiers et un caractère, comme suit.

- Si t _ i=1, changez le x _ i-ème caractère de S en c _ i.
- Si t _ i=2, convertissez toutes les lettres majuscules de S en minuscules (n'utilisez pas x _ i,c _ i pour cette opération).
- Si t _ i=3, convertissez toutes les lettres minuscules de S en majuscules (n'utilisez pas x _ i,c _ i pour cette opération).

Affichez S après les Q opérations.

Entrée

L'entrée est fournie à partir de l'entrée standard dans le format suivant :
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Sortie

Affichez la réponse sur une seule ligne.

Contraintes

- 1\leq N\leq5\times10^5
- S est une chaîne de longueur N composée de lettres anglaises majuscules et minuscules.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Si t _ i=1, alors 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i est une lettre anglaise majuscule ou minuscule.
- Si t _ i\neq 1, alors x _ i=0 et c _ i= 'a'.
- N,Q,t _ i,x _ i sont tous des entiers.

Exemple d'entrée 1

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

Exemple de sortie 1

atcYber

Initialement, la chaîne S est AtCoder.

- La première opération change le 4-ème caractère en i, changeant S en AtCider.
- La deuxième opération convertit toutes les lettres minuscules en majuscules, changeant S en ATCIDER.
- La troisième opération change le 5-ème caractère en b, changeant S en ATCIbER.
- La quatrième opération convertit toutes les lettres majuscules en minuscules, changeant S en atciber.
- La cinquième opération change le 4-ème caractère en Y, changeant S en atcYber.

Après les opérations, la chaîne S est atcYber, donc imprimez atcYber.

Exemple d'entrée 2

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

Exemple de sortie 2

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG