Число \( n \) называется хорошим, если и только если сумма его положительных делителей делится на 3.
Даны два положительных целых числа \( N \) и \( M \). Найдите число, по модулю 998244353, последовательностей длины \( M \) из положительных целых чисел, таких, что произведение элементов в последовательности является хорошим числом, не превосходящим \( N \).

Ввод

Ввод задается с стандартного потока ввода в следующем формате:
\( N \) \( M \)

Вывод

Выведите ответ.

Ограничения

- \( 1 \leq N \leq 10^{10} \)
- \( 1 \leq M \leq 10^5 \)
- \( N \) и \( M \) — целые числа.

Пример ввода 1

10 1

Пример вывода 1

5

Существует пять последовательностей, удовлетворяющих условиям:

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

Пример ввода 2

4 2

Пример вывода 2

2

Существует две последовательности, удовлетворяющие условиям:

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

Пример ввода 3

370 907

Пример вывода 3

221764640

Пример ввода 4

10000000000 100000

Пример вывода 4

447456146

Положительное целое число n называется хорошим целым числом тогда и только тогда, когда сумма его положительных делителей делится на 3.
Вам даны два целых положительных числа N и M. Найдите количество, по модулю 998244353, последовательностей A длиной M из целых положительных чисел, таких, что произведение элементов в A является хорошим целым числом, не превышающим N.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N M

Вывод

Выведите ответ.

Ограничения

- 1 \leq N \leq 10^{10}
- 1 \leq M \leq 10^5
- N и M являются целыми числами.

Пример ввода 1

10 1

Пример вывода 1

5

Есть пять последовательностей, удовлетворяющих этим условиям:

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

Пример ввода 2

4 2

Пример вывода 2

2

Существуют две последовательности, удовлетворяющие условиям:

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

Пример ввода 3

370 907

Пример вывода 3

221764640

Пример ввода 4

10000000000 100000

Пример вывода 4

447456146

Мы называем целое положительное число n хорошим целым числом тогда и только тогда, когда сумма его положительных делителей делится на 3.
Вам даны два натуральных числа N и M. Найдите по модулю 998244353 количество последовательностей A длины M таких натуральных чисел, что произведение элементов в A является хорошим целым числом, не превышающим N.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N M

Вывод

Выведите ответ.

Ограничения

- 1 \leq N \leq 10^{10}
- 1 \leq M \leq 10^5
- N и M являются целыми числами.

Пример ввода 1

10 1

Пример вывода 1

5

Есть пять последовательностей, удовлетворяющих этим условиям:

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

Пример ввода 2

4 2

Пример вывода 2

2

Имеются две последовательности, удовлетворяющие условиям:

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

Пример ввода 3

370 907

Пример вывода 3

221764640

Пример ввода 4

10000000000 100000

Пример вывода 4

447456146


Вам даны две строки S и T, состоящие из строчных английских букв. Здесь S и T имеют одинаковую длину.
Пусть X будет пустым массивом, и повторяйте следующую операцию, пока S не станет равной T:

- Измените один символ в S и добавьте S в конец X.

Найдите массив строк X с минимальным числом элементов, полученный таким образом. Если существует несколько таких массивов с минимальным числом элементов, найдите лексикографически наименьший из них.
Что такое лексикографический порядок на массивах строк?
Строка S = S_1 S_2 \ldots S_N длины N лексикографически меньше строки T = T_1 T_2 \ldots T_N длины N, если существует такое целое число 1 \leq i \leq N, что выполняются оба следующих условия:

-  S_1 S_2 \ldots S_{i-1} = T_1 T_2 \ldots T_{i-1}
-  S_i идет раньше, чем T_i, в алфавитном порядке.

Массив строк X = (X_1,X_2,\ldots,X_M) с M элементами лексикографически меньше массива строк Y = (Y_1,Y_2,\ldots,Y_M) с M элементами, если существует такое целое число 1 \leq j \leq M, что выполняются оба следующих условия:

-  (X_1,X_2,\ldots,X_{j-1}) = (Y_1,Y_2,\ldots,Y_{j-1})
-  X_j лексикографически меньше Y_j.

Ввод

Ввод дается из стандартного ввода в следующем формате:
S
T

Вывод

Пусть M — количество элементов в искомом массиве. Выведите M + 1 строку.
Первая строка должна содержать значение M.
(i + 1)-я строка (1 \leq i \leq M) должна содержать i-й элемент массива.

Ограничения

- S и T — строки, состоящие из строчных английских букв длиной от 1 до 100 включительно.
- Длины S и T равны.

Пример ввода 1

adbe
bcbc

Пример вывода 1

3
acbe
acbc
bcbc

Изначально, S = adbe.
Можно получить X = (acbe, acbc, bcbc), выполняя следующие операции:

- Измените S на acbe и добавьте acbe в конец X.

- Измените S на acbc и добавьте acbc в конец X.

- Измените S на bcbc и добавьте bcbc в конец X.

Пример ввода 2

abcde
abcde

Пример вывода 2

0

Пример ввода 3

afwgebrw
oarbrenq

Пример вывода 3

8
aawgebrw
aargebrw
aarbebrw
aarbebnw
aarbebnq
aarbeenq
aarbrenq
oarbrenq

Вам даны две строки S и T, состоящие из строчных английских букв. Здесь S и T имеют одинаковую длину.
Пусть X это пустой массив, и повторяйте следующую операцию, пока S не станет равным T:

- Измените один символ в S и добавьте S в конец X.

Найдите полученный таким образом массив строк X с минимальным количеством элементов. Если таких массивов с минимальным числом элементов несколько, найти среди них лексикографически наименьший.
 Что такое лексикографический порядок массивов строк?
Строка S = S_1 S_2 \ldots S_N длины N лексикографически меньше строки T = T_1 T_2 \ldots T_N длины N, если существует целое число 1 \leq i \leq N такое, что выполняются оба следующих условия:

-  S_1 S_2 \ldots S_{i-1} = T_1 T_2 \ldots T_{i-1}
-  S_i стоит раньше, чем T_i в алфавитном порядке.

Массив строк X = (X_1,X_2,\ldots,X_M) с элементами M лексикографически меньше, чем массив строк Y = (Y_1,Y_2,\ldots,Y_M) с элементами M, если существует целое число 1 \leq j \leq M такой, что выполняются оба следующих условия:

-  (X_1,X_2,\ldots,X_{j-1}) = (Y_1,Y_2,\ldots,Y_{j-1})
-  X_j лексикографически меньше, чем Y_j.

Вход

Входные данные передаются из стандартного ввода в следующем формате:
S
T

Выход

Пусть M это количество элементов в желаемом массиве. Выведите M + 1 строк.
Первая строка должна содержать значение M.
i + 1-я строка (1 \leq i \leq M) должна содержать i-й элемент массива.

Ограничения

- S и T это строки, состоящие из строчных английских букв длиной от 1 до 100, включительно.
- Длины S и T равны.

Пример ввода 1

adbe
bcbc

Пример вывода 1

3
acbe
acbc
bcbc

Изначально S = adbe.
Мы можем получить  X = ( acbe , acbc , bcbc ) выполнив следующие операции:

-
Замените S на acbe и добавьте acbe в конец X.

-
Замените S на acbc и добавьте acbc в конец X.

-
Замените S на bcbc и добавьте bcbc в конец X.

Пример ввода 2

abcde
abcde

Пример вывода 2

0

Пример ввода 3

afwgebrw
oarbrenq

Пример вывода 3

8
aawgebrw
aargebrw
aarbebrw
aarbebnw
aarbebnq
aarbeenq
aarbrenq
oarbrenq

Вам даны две строки S и T, состоящие из строчных английских букв. Здесь S и T имеют одинаковую длину.
Пусть X будет пустым массивом, и повторяйте следующую операцию, пока S не станет равной T:

- Измените один символ в S и добавьте S в конец X.

Найдите массив строк X с минимальным числом элементов, полученный таким образом. Если существует несколько таких массивов с минимальным числом элементов, найдите лексикографически наименьший из них.
 Что такое лексикографический порядок на массивах строк?
Строка S = S_1 S_2 \ldots S_N длины N лексикографически меньше строки T = T_1 T_2 \ldots T_N длины N, если существует такое целое число 1 \leq i \leq N, что выполняются оба следующих условия:

-  S_1 S_2 \ldots S_{i-1} = T_1 T_2 \ldots T_{i-1}
-  S_i идет раньше, чем T_i, в алфавитном порядке.

Массив строк X = (X_1,X_2,\ldots,X_M) с M элементами лексикографически меньше массива строк Y = (Y_1,Y_2,\ldots,Y_M) с M элементами, если существует такое целое число 1 \leq j \leq M, что выполняются оба следующих условия:

-  (X_1,X_2,\ldots,X_{j-1}) = (Y_1,Y_2,\ldots,Y_{j-1})
-  X_j лексикографически меньше Y_j.

Ввод

Ввод дается из стандартного ввода в следующем формате:
S
T

Вывод

Пусть M — количество элементов в искомом массиве. Выведите M + 1 строку.
Первая строка должна содержать значение M.
(i + 1)-я строка (1 \leq i \leq M) должна содержать i-й элемент массива.

Ограничения

- S and T are strings consisting of lowercase English letters with length between 1 and 100, inclusive.
- The lengths of S and T are equal.

Пример ввода 1

adbe
bcbc

Пример вывода 1

3
acbe
acbc
bcbc

Изначально, S = adbe.
Можно получить X = (acbe, acbc, bcbc), выполняя следующие операции:

-
Измените S на acbe и добавьте acbe в конец X.

-
Измените S на acbc и добавьте acbc в конец X.

-
Измените S на bcbc и добавьте bcbc в конец X.

Пример ввода 2

abcde
abcde

Пример вывода 2

0

Пример ввода 3

afwgebrw
oarbrenq

Пример вывода 3

8
aawgebrw
aargebrw
aarbebrw
aarbebnw
aarbebnq
aarbeenq
aarbrenq
oarbrenq


На сетке H строк и W столбцов. Пусть (i, j) обозначает ячейку в i-й строке сверху и j-й столбец слева.
Изначально в каждой ячейке есть одна стена.
После обработки Q запросов, описанных ниже в указанном порядке, найдите количество оставшихся стен.
В q-м запросе даны два целых числа R_q и C_q.
Вы размещаете бомбу в (R_q, C_q) для уничтожения стен. В результате происходит следующий процесс.

- Если в (R_q, C_q) есть стена, уничтожьте эту стену и завершите процесс.
- Если в (R_q, C_q) нет стены, уничтожьте первые стены, которые появляются, если смотреть вверх, вниз, влево и вправо от (R_q, C_q). Более точно, происходят следующие четыре процесса одновременно:
- Если существует i \lt R_q такая, что стена существует в (i, C_q) и стены нет для всех i \lt k \lt R_q, уничтожьте стену в (i, C_q).
- Если существует i \gt R_q такая, что стена существует в (i, C_q) и стены нет для всех R_q \lt k \lt i, уничтожьте стену в (i, C_q).
- Если существует j \lt C_q такая, что стена существует в (R_q, j) и стены нет для всех j \lt k \lt C_q, уничтожьте стену в (R_q, j).
- Если существует j \gt C_q такая, что стена существует в (R_q, j) и стены нет для всех C_q \lt k \lt j, уничтожьте стену в (R_q, j).

Входные данные

Входные данные вводятся из стандартного ввода в следующем формате:
H W Q
R_1 C_1
R_2 C_2
\vdots
R_Q C_Q

Выходные данные

Выведите количество оставшихся стен после обработки всех запросов.

Ограничения

- 1 \leq H, W
- H \times W \leq 4 \times 10^5
- 1 \leq Q \leq 2 \times 10^5
- 1 \leq R_q \leq H
- 1 \leq C_q \leq W
- Все значения входных данных — целые числа.

Пример входных данных 1

2 4 3
1 2
1 2
1 3

Пример выходных данных 1

2

Процесс обработки запросов можно объяснить следующим образом:

- В 1-м запросе, (R_1, C_1) = (1, 2). В (1, 2) есть стена, поэтому стена в (1, 2) уничтожается.
- Во 2-м запросе, (R_2, C_2) = (1, 2). В (1, 2) нет стены, поэтому уничтожаются стены в (2,2), (1,1), (1,3), которые являются первыми стенами, появляющимися при взгляде вверх, вниз, влево и вправо от (1, 2).
- В 3-м запросе, (R_3, C_3) = (1, 3). В (1, 3) нет стены, поэтому уничтожаются стены в (2,3), (1,4), которые являются первыми стенами, появляющимися при взгляде вверх, вниз, влево и вправо от (1, 3).

После обработки всех запросов остаются две стены, в (2, 1) и (2, 4).

Пример входных данных 2

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

Пример выходных данных 2

10

Пример входных данных 3

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

Пример выходных данных 3

2

Есть сетка с H строками и W столбцами. Пусть (i, j) обозначает клетку в i-й строке сверху и j-м столбце слева.
Сначала в каждой камере по одной стене.
После обработки запросов Q, описанных ниже, в Том порядке, в котором они даны, найдите количество оставшихся стен.
В q-м запросе вам задаются два целых числа R_q и C_q.
Вы устанавливаете бомбу в (R_q, C_q), чтобы уничтожить стены. В результате происходит следующий процесс.

- если есть стена в (R_q, C_q), уничтожить эту стену и закончить процесс.
- если нет стены в (R_q, C_q), уничтожьте первые стены, которые появляются при просмотре вверх, вниз, влево и вправо от (R_q, C_q). Точнее говоря, одновременно происходят следующие четыре процесса:
- если существует i \lt R_q таким образом, что стена существует в (i, C_q) и нет стены в (k, C_q) для всех i \lt k \lt R_q, уничтожить стену в (i, C_q).
- если существует i \gt R_q таким образом, что стена существует в (i, C_q) и нет стены в (k, C_q) для всех R_q \lt k \lt i, уничтожьте стену в (i, C_q).
- если существует j \lt C_q таким образом, что стена существует в (R_q, j) и нет стены в (R_q, k) для всех j \lt k \lt C_q, уничтожьте стену в (R_q, j).
- если существует j \gt C_q, что стена существует в (R_q, j) и нет стены в (R_q, k) для всех C_q \lt k \lt j, уничтожить стену в (R_q, j).

Входные данные

Ввод осуществляется из стандартного ввода в следующем формате:
H W Q
R_1 C_1
R_2 C_2
\vdots
R_Q C_Q

Выходные данные

Выведите количество оставшихся стен после обработки всех запросов.

Ограничения

- 1 \leq H, W
- H \times W \leq 4 \times 10^5
- 1 \leq Q \leq 2 \times 10^5
- 1 \leq R_q \leq H
- 1 \leq C_q \leq W
- все входные значения являются числами.

Пример ввода 1

2 4 3
1 2
1 2
1 3

Пример вывода 1

2

Процесс обработки запросов можно объяснить следующим образом:

- в первом запросе (R_1, C_1) = (1,2).
- во втором запросе,(R_2, C_2) = (1,2). Нет стены в (1,2), поэтому стены в (2,2),(1,1),(1,3), которые являются первыми стенками, которые появляются при просмотре вверх, вниз, слева и справа от (1,2), уничтожаются.
- в третьем запросе,(R_3, C_3) = (1,3). Нет стены в (1,3), поэтому стены в (2,3),(1,4), которые являются первыми стенками, которые появляются при просмотре вверх, вниз, влево и вправо от (1,3), уничтожаются.

После обработки всех запросов остались две стены в (2, 1) и (2, 4).

Вход в выборку 2

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

Выходной сигнал выборки 2

10

Вход в выборку 3

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

Выходной сигнал выборки 3

2

Существует сетка с H строками и W столбцами. Пусть (i, j) обозначает ячейку в i-й строке сверху и j-м столбце слева.
Изначально в каждой ячейке имеется одна стена.
После обработки Q-запросов, описанных ниже, в том порядке, в котором они заданы, найдите количество оставшихся стен.
В q-м запросе вам даны два целых числа R_q и C_q.
Вы помещаете бомбу в точку (R_q, C_q), чтобы разрушить стены. В результате происходит следующий процесс.

- Если в точке (R_q, C_q) есть стена, разрушьте эту стену и завершите процесс.
- Если в точке (R_q, C_q) нет стены, разрушьте первые стены, которые появляются при взгляде вверх, вниз, влево и вправо из (R_q, C_q). Точнее, одновременно происходят следующие четыре процесса:
- Если существует i \lt R_q такой, что в точке (i, C_q) существует стена, а в точке (k, C_q) нет стены для всех i \lt k \lt R_q, разрушьте стену в точке (i, C_q).
- Если существует i \gt R_q такой, что стена существует в точке (i, C_q) и не существует стены в точке (k, C_q) для всех R_q \lt k \lt i, разрушить стену в точке (i, C_q).
- Если существует j \lt C_q такой, что в точке (R_q, j) существует стена, а в точке (R_q, k) нет стены для всех j \lt k \lt C_q, разрушьте стену в точке (R_q, j).
- Если существует j \gt C_q такой, что в точке (R_q, j) существует стена, а в точке (R_q, k) нет стены для всех C_q \lt k \lt j, разрушьте стену в точке (R_q, j).

Вход

Входные данные передаются из стандартного ввода в следующем формате:
H W Q
R_1 C_1
R_2 C_2
\vdots
R_Q C_Q

Выход

Распечатайте количество оставшихся стен после обработки всех запросов.

Ограничения

- 1 \leq H, W
- H \times W \leq 4 \times 10%5
- 1 \leq Q \leq 2 \times 10%5
- 1 \leq R_q \leq H
- 1 \leq C_q \leq W
- Все входные значения являются целыми числами.

Пример ввода 1

2 4 3
1 2
1 2
1 3

Пример вывода 1

2

Процесс обработки запросов можно объяснить следующим образом:

- В 1-м запросе (R_1, C_1) = (1, 2). В точке (1, 2) есть стена, поэтому стена в точке (1, 2) разрушена.
- Во втором запросе (R_2, C_2) = (1, 2). Стены в точке (1, 2) нет, поэтому стены в точках (2,2),(1,1),(1,3) являются первыми стенами, которые появляются при взгляде вверх, вниз, влево и вправо из (1, 2), уничтожаются.
- В третьем запросе (R_3, C_3) = (1, 3). Стены в точке (1, 3) нет, поэтому стены в точках (2,3),(1,4) являются первыми стенами, которые появляются при взгляде вверх, вниз, влево и вправо из (1, 3), уничтожены.

После обработки всех запросов остались две стены: (2, 1) и (2, 4).

Пример ввода 2

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

Пример вывода 2

10

Пример ввода 3

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

Пример вывода 3

2


Дана последовательность A = (A_1, A_2, \dots, A_N) длиной N и целое число K.
Существует 2^{N-1} способов разбить A на несколько непрерывных подпоследовательностей. Сколько из этих разбиений не имеют подпоследовательностей, сумма элементов которых равна K? Найди количество по модулю 998244353.
Здесь "разбить A на несколько непрерывных подпоследовательностей" означает следующую процедуру.

- Произвольно выбери количество k (1 \leq k \leq N) подпоследовательностей и последовательность целых чисел (i_1, i_2, \dots, i_k, i_{k+1}), удовлетворяющую 1 = i_1 \lt i_2 \lt \dots \lt i_k \lt i_{k+1} = N+1.
- Для каждого 1 \leq n \leq k, n-я подпоследовательность формируется путем взятия элементов с i_n по (i_{n+1} - 1) из A с сохранением их порядка.

Вот несколько примеров разбиений для A = (1, 2, 3, 4, 5):

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

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
N K
A_1 A_2 \dots A_N

Вывод

Выведи количество по модулю 998244353.

Ограничения

- 1 \leq N \leq 2 \times 10^5
- -10^{15} \leq K \leq 10^{15}
- -10^9 \leq A_i \leq 10^9
- Все входные значения являются целыми числами.

Пример ввода 1

3 3
1 2 3

Пример вывода 1

2

Возможны два разбиения, удовлетворяющие условию в постановке задачи:

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

Пример ввода 2

5 0
0 0 0 0 0

Пример вывода 2

0

Пример ввода 3

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

Пример вывода 3

428

Вам дана последовательность A = (A_1, A_2, \dots, A_N) длины N и целое число K.
Существует 2^{N-1} способов разделить A на несколько смежных подпоследовательностей. Сколько из этих делений не имеют подпоследовательности, элементы которой в сумме дают K? Найдите количество по модулю 998244353.
Здесь «разделить A на несколько смежных подпоследовательностей» означает следующую процедуру.

- Свободно выберите число k (1 \leq k \leq N) подпоследовательностей и целочисленную последовательность (i_1, i_2, \dots, i_k, i_{k+1}), удовлетворяющую 1 = i_1 \lt i_2 \lt \dots \lt i_k \lt i_{k+1} = N+1.
- Для каждого 1 \leq n \leq k n-я подпоследовательность формируется путем взятия i_n-го по (i_{n+1} - 1)-й элементы A, сохраняя их порядок.

Вот несколько примеров делений для A = (1, 2, 3, 4, 5):

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

Входные данные

Входные данные даются из стандартного ввода в следующем формате:
N K
A_1 A_2 \dots A_N

Выходные данные

Выведите счет по модулю 998244353.

Ограничения

- 1 \leq N \leq 2 \times 10^5
- -10^{15} \leq K \leq 10^{15}
- -10^9 \leq A_i \leq 10^9
- Все входные значения являются целыми числами.

Пример ввода 1

3 3
1 2 3

Пример вывода 1

2

Есть два деления, которые удовлетворяют условию в условии задачи:

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

Пример ввода 2

5 0
0 0 0 0 0

Пример вывода 2

0

Пример ввода 3

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

Пример вывода 3

428


Существует N типов элементов с номерами 1, 2, \ldots, N.
Элементы можно комбинировать друг с другом. Когда элементы i и j объединены, они превращаются в элемент A_{i, j}, если i \geq j, и в элемент A_{j, i}, если i < j.
Начиная с элемента 1, объедините его с элементами 1, 2, \ldots, N в указанном порядке. Найдите полученный итоговый элемент.

Ввод

Входные данные подаются из Стандартного ввода в следующем формате:
N
A_{1, 1}
A_{2, 1} A_{2, 2}
\vdots
A_{N, 1} A_{N, 2} \ldots A_{N, N}

Выпуск

Выведите число, представляющее собой итоговый полученный элемент.

Ограничения целостности

- 1 \leq N \leq 100
- 1 \leq A_{i, j} \leq N
- Все входные значения являются целыми числами.

Пример входных данных 1

4
3
2 4
3 1 2
2 1 2 4

Пример выходных данных 1

2

-
Объединение элемента 1 с элементом 1 приводит к получению элемента 3.

-
Объединение элемента 3 с элементом 2 приводит к получению элемента 1.

-
Объединение элемента 1 с элементом 3 приводит к получению элемента 3.

-
Объединение элемента 3 с элементом 4 приводит к получению элемента 2.

Следовательно, выводимое значение равно 2.

Пример входных данных 2

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

Пример выходных данных 2

5

Пример входных данных 3

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

Пример выходных данных 3

5

Существует N типов элементов, пронумерованных 1, 2, \ldots, N.
Элементы можно комбинировать друг с другом. Когда элементы i и j объединяются, они преобразуются в элемент A_{i, j}, если i \geq j, и в элемент A_{j, i}, если i < j.
Начиная с элемента 1, объедините его с элементами 1, 2, \ldots, N в этом порядке. Найдите полученный конечный элемент.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N
A_{1, 1}
A_{2, 1} A_{2, 2}
\vdots
A_{N, 1} A_{N, 2} \ldots A_{N, N}

Вывод

Выведите число, представляющее полученный конечный элемент.

Ограничения

- 1 \leq N \leq 100
- 1 \leq A_{i, j} \leq N
- Все входные значения являются целыми числами.

Пример ввода 1

4
3
2 4
3 1 2
2 1 2 4

Пример вывода 1

2

-
Объединение элемента 1 с элементом 1 дает элемент 3.

-
Объединение элемента 3 с элементом 2 дает элемент 1.

-
Объединение элемента 1 с элементом 3 дает элемент 3.

-
Объединение элемента 3 с элементом 4 дает элемент 2.

Следовательно, значение для печати равно 2.

Пример ввода 2

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

Пример вывода 2

5

Пример ввода 3

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

Пример вывода 3

5

У вас есть N типов элементов, пронумерованных от 1 до N.
Элементы можно комбинировать друг с другом. При комбинировании элементов i и j они трансформируются в элемент A_{i, j}, если i \geq j, и в элемент A_{j, i} если i < j.
Начиная с элемента 1, объедините его с элементами 1, 2, \ldots, N в этом порядке. Найдите последний полученный элемент.

Ввод

Ввод предоставляется из стандартного ввода в следующем формате:
N
A_{1, 1}
A_{2, 1} A_{2, 2}
\vdots
A_{N, 1} A_{N, 2} \ldots A_{N, N}

Вывод

Выведите число, представляющее последний полученный элемент.

Ограничения

- 1 \leq N \leq 100
- 1 \leq A_{i, j} \leq N
- Все входные значения — целые числа.

Пример ввода 1

4
3
2 4
3 1 2
2 1 2 4

Пример вывода 1

2

-
Комбинирование элемента 1 с элементом 1 даёт элемент 3.

-
Комбинирование элемента 3 с элементом 2 даёт элемент 1.

-
Комбинирование элемента 1 с элементом 3 даёт элемент 3.

-
Комбинирование элемента 3 с элементом 4 даёт элемент 2.

Таким образом, выводится значение 2.

Пример ввода 2

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

Пример вывода 2

5

Пример ввода 3

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

Пример вывода 3

5


Круглый торт разделен на N кусков линиями разреза. Каждая линия разреза — это отрезок, соединяющий центр круга с точкой на дуге.
Куски и линии разреза пронумерованы 1, 2, \ldots, N по часовой стрелке, и кусок i имеет массу A_i. Кусок 1 также называется куском N + 1.
Линия разреза i находится между кусками i и i + 1, и они расположены по часовой стрелке в следующем порядке: кусок 1, линия разреза 1, кусок 2, линия разреза 2, \ldots, кусок N, линия разреза N.
Мы хотим разделить этот торт между K людьми при следующих условиях. Пусть w_i — сумма масс кусков, полученных i-м человеком.

- Каждый человек получает один или несколько последовательных кусков.
- Нет кусков, которые никто не получает.
- При соблюдении вышеуказанных двух условий, \min(w_1, w_2, \ldots, w_K) максимизируется.

Найдите значение \min(w_1, w_2, \ldots, w_K) в разделении, которое удовлетворяет условиям, и число линий разреза, которые никогда не разрезаются в разделениях, удовлетворяющих условиям. Здесь линия разреза i считается разрезанной, если куски i и i + 1 даны разным людям.

Ввод

Ввод предоставляется со стандартного ввода в следующем формате:
N K
A_1 A_2 \ldots A_N

Вывод

Пусть x будет значением \min(w_1, w_2, \ldots, w_K) в разделении, которое удовлетворяет условиям, а y будет числом линий разреза, которые никогда не разрезаются. Выведите x и y в этом порядке, разделенные пробелом.

Ограничения

- 2 \leq K \leq N \leq 2 \times 10^5
- 1 \leq A_i \leq 10^4
- Все входные значения — целые числа.

Пример ввода 1

5 2
3 6 8 6 4

Пример вывода 1

13 1

Следующие разделения удовлетворяют условиям:

- Дайте куски 2, 3 одному человеку и куски 4, 5, 1 другому. Куски 2, 3 имеют общую массу 14, и куски 4, 5, 1 имеют общую массу 13.
- Дайте куски 3, 4 одному человеку и куски 5, 1, 2 другому. Куски 3, 4 имеют общую массу 14, и куски 5, 1, 2 имеют общую массу 13.

Значение \min(w_1, w_2) в разделениях, удовлетворяющих условиям, равно 13, и есть одна линия разреза, которая не разрезается в любом из разделений: линия разреза 5.

Пример ввода 2

6 3
4 7 11 3 9 2

Пример вывода 2

11 1

Пример ввода 3

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

Пример вывода 3

17 4

Имеется круглый торт, разделенный на N частей линиями разреза. Каждая линия разреза представляет собой отрезок, соединяющий центр круга с точкой на дуге.
Куски и линии разреза пронумерованы 1, 2, \ldots, N по часовой стрелке, а кусок i имеет массу A_i. Кусок 1 также называется куском N + 1.
Линия разреза i проходит между кусками i и i + 1, и они расположены по часовой стрелке в следующем порядке: кусок 1, линия разреза 1, кусок 2, линия разреза 2, \ldots, кусок N, линия разреза N.
Мы хотим разделить этот торт между K людьми при следующих условиях. Пусть w_i будет суммой масс кусков, полученных i-м человеком.

- Каждый человек получает один или несколько последовательных кусков.
- Нет кусков, которые никто не получает.
- При двух вышеуказанных условиях \min(w_1, w_2, \ldots, w_K) максимизируется.

Найдите значение \min(w_1, w_2, \ldots, w_K) в разделе, который удовлетворяет условиям, и количество линий разреза, которые никогда не разрезаются в разделах, которые удовлетворяют условиям. Здесь линия разреза i считается разрезанной, если части i и i + 1 отдаются разным людям.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N K
A_1 A_2 \ldots A_N

Вывод

Пусть x будет значением \min(w_1, w_2, \ldots, w_K) в разделе, который удовлетворяет условиям, а y будет количеством линий разреза, которые никогда не разрезаются. Выведите x и y в этом порядке, разделив пробелом.

Ограничения

- 2 \leq K \leq N \leq 2 \times 10^5
- 1 \leq A_i \leq 10^4
- Все входные значения являются целыми числами.

Образец ввода 1

5 2
3 6 8 6 4

Образец вывода 1

13 1

Следующие деления удовлетворяют условиям:

- Дайте части 2, 3 одному человеку, а части 4, 5, 1 другому. Части 2, 3 имеют общую массу 14, а части 4, 5, 1 имеют общую массу 13.
- Дайте части 3, 4 одному человеку, а части 5, 1, 2 другому. Части 3, 4 имеют общую массу 14, а части 5, 1, 2 имеют общую массу 13.

Значение \min(w_1, w_2) в делениях, удовлетворяющих условиям, равно 13, и есть одна линия разреза, которая не разрезана ни в одном делении: линия разреза 5.

Пример ввода 2

6 3
4 7 11 3 9 2

Пример вывода 2

11 1

Пример ввода 3

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

Пример вывода 3

17 4


В Королевстве АтКодер старшему сыну всегда дают имя Таро. Никто другой не получает имя Таро. Старший сын — это первый родившийся мальчик в каждой семье. В Королевстве N семей, и родилось M младенцев. До рождения этих M младенцев ни в одной из N семей не было детей. Информация о младенцах дана в хронологическом порядке их рождения. i-й младенец родился в семье A_i, и младенец мужского пола, если B_i равно M, и женского, если равно F. Определите для каждого из M младенцев, было ли дано имя Таро.

Ввод

Ввод осуществляется с стандартного ввода в следующем формате:
N M
A_1 B_1
\vdots
A_M B_M

Вывод

Выведите M строк. i-я строка (1\leq i \leq M) должна содержать Yes, если данное имя младенцу — Таро, и No в противном случае.

Ограничения

- 1\leq N,M\leq 100
- 1\leq A_i\leq N
- B_i равно M или F.
- Все числа во вводе являются целыми.

Пример ввода 1

2 4
1 M
1 M
2 F
2 M

Пример вывода 1

Yes
No
No
Yes

Первый младенец — первый рожденный мальчик в семье 1, поэтому его зовут Таро. Второй младенец — не первый рожденный мальчик в семье 1, поэтому его не зовут Таро. Третий младенец — девочка, поэтому её не зовут Таро. Четвертый младенец — первый рожденный мальчик в семье 2, поэтому его зовут Таро. Заметьте, что третий младенец также родился в семье 2, но имя Таро дается первому рожденному мальчику.

Пример ввода 2

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

Пример вывода 2

Yes
Yes
No
No
No
No
No

В Королевстве AtCoder старшему сыну всегда дают имя Таро. Больше никому не дано имя Таро.
Старший сын это самый ранний ребёнок мужского пола в каждой семье.
В Королевстве N семей, и родилось M детей.  До рождения детей М ни в одной из семей N не было детей.
Информация о детях дана в хронологическом порядке их рождения.
В семье A_i родился i-й ребёнок, причём ребёнок мужского пола, если B_i равен M, и девочки, если это F.
Определите для каждого из М младенцев, дали ли ему имя Таро.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N M
A_1 B_1
\vdots
A_M B_M

Вывод

Выведите M строк.
В i-й строке (1\leq i \leq M) должно быть указано Yes, если i-го ребёнка зовут Таро, и No в противном случае.

Ограничения

- 1\leq N,M\leq 100
- 1\leq A_i\leq N
- B_i это М или F.
- Все числа во входных данных являются целыми числами.

Пример ввода 1

2 4
1 M
1 M
2 F
2 M

Пример вывода 1

Yes
No
No
Yes

Первый ребёнок это самый ранний мальчик в семье 1, поэтому его зовут Таро.
Второй ребёнок это не самый ранний мальчик в семье 1, поэтому его не зовут Таро.
Третий ребёнок это девочка, поэтому её не зовут Таро.
Четвёртый ребёнок это самый ранний мальчик во второй семье, поэтому его назвали Таро. Отметим, что в семье 2 также рождается третий ребёнок, но это самый ранний мальчик, которого зовут Таро.

Пример ввода 2

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

Пример вывода 2

Yes
Yes
No
No
No
No
No


На числовой прямой расположены N деревень. i-я деревня находится на координате X_i и имеет P_i жителей.
Ответьте на Q запросов. i-й запрос задан в следующем формате:

- Даны целые числа L_i и R_i, найдите общее количество жителей, проживающих в деревнях, расположенных между координатами L_i и R_i включительно.

Входные данные

Входные данные задаются в следующем формате:
N
X_1 \ldots X_N
P_1 \ldots P_N
Q
L_1 R_1
\vdots
L_Q R_Q

Выходные данные

Выведите Q строк.
i-я строка (1 \leq i \leq Q) должна содержать ответ на i-й запрос.

Ограничения

- 1\leq N,Q\leq 2\times 10^5
- -10^9\leq X_1 < X_2 < \ldots < X_N \leq 10^9
- 1\leq P_i\leq 10^9
- -10^9\leq L_i \leq R_i \leq 10^9
- Все входные значения — целые числа.

Пример входных данных 1

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

Пример выходных данных 1

1
5
10
0

Рассмотрим первый запрос. Деревни между координатами 1 и 1 — это деревня на координате 1, с 1 жителем. Следовательно, ответ — 1.
Рассмотрим второй запрос. Деревни между координатами 2 и 6 — это деревни на координатах 3 и 5, с 2 и 3 жителями, соответственно. Следовательно, ответ — 2+3=5.

Пример входных данных 2

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

Пример выходных данных 2

26
15
7
26
18
28
26
11

На числовой прямой находится N деревень. i-я деревня расположена по координате X_i и имеет жителей P_i.
Ответьте на Q-запросы. i-й запрос имеет следующий формат:

- По целым числам L_i и R_i найти общее количество жителей деревень, проживающих в деревнях, расположенных между координатами L_i и R_i включительно.

Вход

Входные данные передаются из стандартного ввода в следующем формате:
N
X_1 \ldots X_N
P_1 \ldots P_N
Q
L_1 R_1
\vdots
L_Q R_Q

Выход

Напечатайте Q-строки.
i-я строка(1\leq i \leq Q) должна содержать ответ на i-й запрос.

Ограничения

- 1\leq N,Q\leq 2\times 10%5
- -10%9\leq X_1 < X_2 < \ldots < X_N \leq 10%9
- 1\leq P_i\leq 10%9
- -10%9\leq L_i \leq R_i \leq 10%9
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

1
5
10
0

Рассмотрим первый запрос. Деревни между координатами 1 и 1 это деревня с координатой 1, в которой проживает 1 житель. Следовательно, ответ 1.
Рассмотрим второй запрос. Деревни между координатами 2 и 6 это деревни с координатами 3 и 5, с 2 и 3 жителями соответственно. Следовательно, ответ 2+3=5.

Пример ввода 2

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

Пример вывода 2

26
15
7
26
18
28
26
11

Есть n деревень на числовой линииi-я деревня расположена в координате X_i  и имеет жители P_i.
Ответьте на Q запросов. i-й запрос находится в следующем формате:

- Учитывая целые числа L_i и R_i, найдите общее количество сельских жителей, живущих в деревнях, расположенных между координатами L_i и R_i, включительно.

Вход

Ввод приведен из стандартного ввода в следующем формате:
N
X_1 \ldots X_N
P_1 \ldots P_N
Q.
L_1 R_1
\ vdots
L_Q R_Q

Выход

Выведите Q строк.
i-я строка (1 \leq i \leq Q) должна содержать ответ на i-й запрос.

Ограничения

- 1 \leq N,Q \leq 2 \times 10^5
-10^9 \leq X_1 < X_2 < \ldots < X_N \leq 10^9
-1 \leq P_i \leq 10^9
-10^9 \leq L_i \leq R_i \leq 10^9
- Все входные значения являются целыми числами.

Пример входа 1

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

Пример вывода 1

1
5
10
0

Рассмотрим первый запрос. Деревни между координатами 1 и 1 являются деревней в координате 1, с 1 деревенским жителем. Следовательно, ответ 1.
Рассмотрим второй запрос. Деревни между координатами 2 и 6 являются деревнями в координатах 3 и 5 с 2 и 3 сельскими жителями соответственно. Следовательно, ответ 2+3 = 5.

Пример входа 2

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

Пример вывода 2

26
15
7
26
18
28
26
11


Даны перестановки P = (P_1, P_2, \ldots, P_N) и A = (A_1, A_2, \ldots, A_N) из (1,2,\ldots,N). Вы можете выполнить следующую операцию любое количество раз, возможно, ноль:

- заменить A_i на A_{P_i} одновременно для всех i=1,2,\ldots,N.

Выведите лексикографически наименьшее A, которое можно получить.
Что такое лексикографический порядок?
Для последовательностей длины N, A = (A_1, A_2, \ldots, A_N) и B = (B_1, B_2, \ldots, B_N), A лексикографически меньше, чем B, если и только если:

- существует такой целый i\ (1\leq i\leq N), что A_i < B_i, и A_j = B_j для всех 1\leq j < i.

Ввод

Ввод осуществляется из стандартного ввода в следующем формате:
N
P_1 P_2 \ldots P_N
A_1 A_2 \ldots A_N

Вывод

Пусть (A_1, A_2, \ldots, A_N) – лексикографически наименьшее A, которое можно получить. Выведите A_1, A_2, \ldots, A_N в этом порядке, разделенные пробелами, в одну строку.

Ограничения

- 1\leq N\leq2\times10^5
- 1\leq P_i\leq N\ (1\leq i\leq N)
- P_i\neq P_j\ (1\leq i<j\leq N)
- 1\leq A_i\leq N\ (1\leq i\leq N)
- A_i\neq A_j\ (1\leq i<j\leq N)
- Все входные значения – целые числа.

Пример ввода 1

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

Пример вывода 1

1 4 2 5 3 6

Изначально A = (4, 3, 1, 6, 2, 5).
Повторяющиеся операции дают следующее.

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

После этого A вернется к исходному состоянию каждые четыре операции.
Следовательно, выведите лексикографически наименьшее среди них, что будет 1 4 2 5 3 6.

Пример ввода 2

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

Пример вывода 2

1 2 3 4 5 6 7 8

Вы можете не выполнять операции.

Пример ввода 3

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

Пример вывода 3

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

Вам даны перестановки P = (P_1, P_2, \ldots, P_N) и A = (A_1, A_2, \ldots, A_N) из (1,2,\ldots,N).
Вы можете выполнить следующую операцию любое количество раз, возможно, ноль:

- замените A_i на A_{P_i} одновременно для всех i=1,2,\ldots,N.

Выведите лексикографически наименьшее A, которое можно получить.
Что такое лексикографический порядок?
Для последовательностей длины N, A = (A_1, A_2, \ldots, A_N) и B = (B_1, B_2, \ldots, B_N), A лексикографически меньше B тогда и только тогда, когда:

- существует целое число i\ (1\leq i\leq N) такое, что A_i < B_i, и A_j = B_j для всех 1\leq j < i.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N
P_1 P_2 \ldots P_N
A_1 A_2 \ldots A_N

Вывод

Пусть (A_1, A_2, \ldots, A_N) будет лексикографически наименьшим A, которое может быть получено. Выведите A_1, A_2, \ldots, A_N в этом порядке, разделённые пробелами, в одну строку.

Ограничения

- 1\leq N\leq2\times10^5
- 1\leq P_i\leq N\ (1\leq i\leq N)
- P_i\neq P_j\ (1\leq i<j\leq N)
- 1\leq A_i\leq N\ (1\leq i\leq N)
- A_i\neq A_j\ (1\leq i<j\leq N)
- Все входные значения являются целыми числами.

Пример входных данных 1

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

Пример выходных данных 1

1 4 2 5 3 6

Изначально, A = (4, 3, 1, 6, 2, 5).
Повторение операции дает следующее.

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

После этого A будет возвращаться в исходное состояние каждые четыре операции.
Поэтому выведите лексикографически наименьшее из них, а именно 1 4 2 5 3 6.

Пример ввода 2

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

Пример вывода 2

1 2 3 4 5 6 7 8

Вы можете не выполнять никаких операций.

Пример ввода 3

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

Пример вывода 3

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

Вам даны перестановки P = (P_1, P_2, \ldots, P_N) и A = (A_1, A_2, \ldots, A_N) of (1,2,\ldots,N).
Вы можете осуществлять следующие действия сколько угодно раз, возможно ноль:

- поменяйте местами A_i с A_{P_i} одновременно для всех i=1,2,\ldots,N.

Выведите лексикографически наименьшую A, которая может быть получена.
Что такое лексикографический порядок?
Для последовательности длиной N, A = (A_1, A_2, \ldots, A_N) и B = (B_1, B_2, \ldots, B_N), A является лексикографически меньшей, нежели B, если и только:

- существует целое число i\ (1\leq i\leq N) такое, что A_i < B_i, и A_j = B_j для всех 1\leq j < i.

Input

The input is given from Standard Input in the following format:
N
P_1 P_2 \ldots P_N
A_1 A_2 \ldots A_N

Output

Let (A_1, A_2, \ldots, A_N) be the lexicographically smallest A that can be obtained. Print A_1, A_2, \ldots, A_N in this order, separated by spaces, in one line.

Constraints

- 1\leq N\leq2\times10^5
- 1\leq P_i\leq N\ (1\leq i\leq N)
- P_i\neq P_j\ (1\leq i<j\leq N)
- 1\leq A_i\leq N\ (1\leq i\leq N)
- A_i\neq A_j\ (1\leq i<j\leq N)
- All input values are integers.

Sample Input 1

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

Sample Output 1

1 4 2 5 3 6

Initially, A = (4, 3, 1, 6, 2, 5).
Repeating the operation yields the following.

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

After this, A will revert to the original state every four operations.
Therefore, print the lexicographically smallest among these, which is 1 4 2 5 3 6.

Sample Input 2

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

Sample Output 2

1 2 3 4 5 6 7 8

You may choose to perform no operations.

Sample Input 3

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

Sample Output 3

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


Дорога простирается на восток и запад, и на ней находится N человек.
Дорога простирается бесконечно в обе стороны от точки, называемой началом.
i-й человек (1\leq i\leq N) находится изначально на позиции X_i метров к востоку от начала.
Люди могут двигаться по дороге на восток или запад.
В частности, они могут выполнять следующее движение любое количество раз.

- Выберите одного человека. Если на конечной точке нет другого человека, передвиньте выбранного человека на 1 метр на восток или запад.

У них есть Q задачи в общей сложности, и i-я задача (1\leq i\leq Q) следующая.

- T_i-й человек прибывает в координату G_i.

Найдите минимальное общее количество движений, необходимых для выполнения всех Q задач по порядку.

Ввод

Ввод предоставляется со стандартного ввода в следующем формате:
N
X_1 X_2 \ldots X_N
Q
T_1 G_1
T_2 G_2
\vdots
T_Q G_Q

Вывод

Выведите ответ.

Ограничения

- 1\leq N\leq2\times10^5
- 0\leq X_1 < X_2 < \dotsb < X_N \leq10^8
- 1\leq Q\leq2\times10^5
- 1\leq T_i\leq N\ (1\leq i\leq Q)
- 0\leq G_i\leq10^8\ (1\leq i\leq Q)
- Все значения ввода — целые числа.

Пример ввода 1

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

Пример вывода 1

239

Оптимальная последовательность движений для людей следующая (положение людей не обязательно соответствует масштабу):

Для каждой задачи люди перемещаются так:

- 4-й человек перемещается на 6 шагов на восток, и 3-й человек перемещается на 15 шагов на восток.
- 2-й человек перемещается на 2 шага на запад, 3-й человек перемещается на 26 шагов на запад, и 4-й человек перемещается на 26 шагов на запад.
- 4-й человек перемещается на 18 шагов на восток, 3-й человек перемещается на 18 шагов на восток, 2-й человек перемещается на 18 шагов на восток, и 1-й человек перемещается на 25 шагов на восток.
- 5-й человек перемещается на 13 шагов на восток, 4-й человек перемещается на 24 шага на восток, 3-й человек перемещается на 24 шага на восток, и 2-й человек перемещается на 24 шага на восток.

Общее количество движений составляет 21+54+79+85=239.
Вы не можете выполнить все задачи с общим количеством движений 238 или меньше, поэтому выведите 239.

Пример ввода 2

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

Пример вывода 2

4294967297

Обратите внимание, что некоторые люди могут перемещаться западнее начала или более чем на 10^8 метров на восток от него.
Также обратите внимание, что ответ может превышать 2^{32}.

Пример ввода 3

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

Пример вывода 3

89644

На восток и запад протянулась дорога, по которой находятся N человек.
Дорога тянется бесконечно далеко на восток и запад от точки, называемой исходной точкой.
i-й человек (1\leq i\leq N) изначально находится на расстоянии X_i метров к востоку от начала координат.
Лица могут двигаться по дороге на восток или на запад.
В частности, они могут выполнять следующее движение любое количество раз.

- Выберите одного человека. Если в пункте назначения нет другого человека, переместите выбранного человека на 1 метр на восток или запад.

Всего у них Q задач, а i-я задача (1\leq i\leq Q) выглядит следующим образом.

- T_i-й человек прибывает на координату G_i.

Найдите минимальное общее количество движений, необходимое для выполнения всех задач Q по порядку.

Ввод

Входные данные подаются из Стандартного ввода в следующем формате:
N
X_1 X_2 \ldots X_N
Q
T_1 G_1
T_2 G_2
\vdots
T_Q G_Q

Выпуск

Распечатайте ответ.

Ограничения целостности

- 1\leq N\leq2\times10^5
- 0\leq X_1 < X_2 < \dotsb < X_N \leq10^8
- 1\leq Q\leq2\times10^5
- 1\leq T_i\leq N\ (1\leq i\leq Q)
- 0\leq G_i\leq10^8\ (1\leq i\leq Q)
- Все входные значения являются целыми числами.

Пример входных данных 1

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

Пример выходных данных 1

239

Оптимальная последовательность движений персон выглядит следующим образом (положение персон не обязательно прорисовывается в масштабе):

Для выполнения каждой задачи лица перемещаются следующим образом.

- 4-й человек перемещается на 6 шагов на восток, а 3-й человек на 15 шагов на восток.
- 2-й человек перемещается на 2 шага на запад, 3-й человек — на 26 шагов на запад, а 4-й — на 26 шагов на запад.
- 4-й человек перемещается на 18 шагов на восток, 3-й человек перемещается на 18 шагов на восток, 2-й человек перемещается на 18 шагов на восток, а 1-й человек перемещается на 25 шагов на восток.
- 5-й человек перемещается на 13 шагов на восток, 4-й человек перемещается на 24 шага на восток, 3-й человек перемещается на 24 шага на восток, а 2-й человек перемещается на 24 шага на восток.

Общее количество движений 21+54+79+85=239.
Вы не можете выполнить все задачи с общим числом движений 238 или меньше, поэтому выведите 239.

Пример входных данных 2

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

Пример выходных данных 2

4294967297

Обратите внимание, что некоторым лицам может потребоваться переместиться к западу от начала координат или более чем на 10^8 метров к востоку от него.
Также обратите внимание, что ответ может превышать 2^{32}.

Пример входных данных 3

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

Пример выходных данных 3

89644

Есть дорога, простирающаяся на восток и запад, и на дороге находятся N человек.
Дорога простирается бесконечно долго на восток и запад от точки, называемой началом координат.
i-й человек (1\leq i\leq N) изначально находится в позиции X_i метров к востоку от начала координат.
Люди могут двигаться по дороге на восток или запад.
В частности, они могут выполнять следующее движение любое количество раз.

- Выберите одного человека. Если в пункте назначения нет другого человека, переместите выбранного человека на 1 метр на восток или запад.

Всего у них Q задач, и i-я задача (1\leq i\leq Q) выглядит следующим образом.

- T_i-й человек прибывает в координату G_i.

Найдите минимальное общее количество движений, необходимых для выполнения всех Q задач по порядку.

Ввод

Вводные данные даются из стандартного ввода в следующем формате:
N
X_1 X_2 \ldots X_N
Q
T_1 G_1
T_2 G_2
\vdots
T_Q G_Q

Вывод

Выведите ответ.

Ограничения

- 1\leq N\leq2\times10^5
- 0\leq X_1 < X_2 < \dotsb < X_N \leq10^8
- 1\leq Q\leq2\times10^5
- 1\leq T_i\leq N\ (1\leq i\leq Q)
- 0\leq G_i\leq10^8\ (1\leq i\leq Q)
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

239

Оптимальная последовательность движений для людей выглядит следующим образом (позиции людей не обязательно изображены в масштабе):

Для каждой задачи люди двигаются следующим образом.

- 4-й человек делает 6 шагов на восток, а 3-й человек делает 15 шагов на восток.
- 2-й человек делает 2 шага на запад, 3-й человек делает 26 шагов на запад, а 4-й человек делает 26 шагов на запад.
- 4-й человек делает 18 шагов на восток, 3-й человек делает 18 шагов на восток, 2-й человек делает 18 шагов на восток, а 1-й человек делает 25 шагов на восток.
- 5-й человек делает 13 шагов на восток, 4-й человек делает 24 шага на восток, 3-й человек делает 24 шага на восток, а 2-й человек делает 24 шага на восток.

Общее количество перемещений равно 21+54+79+85=239.
Вы не можете выполнить все задачи с общим количеством перемещений 238 или меньше, поэтому выведите 239.

Пример ввода 2

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

Пример вывода 2

4294967297

Обратите внимание, что некоторым людям может потребоваться переместиться на запад от исходной точки или более чем на 10^8 метров к востоку от нее.
Также обратите внимание, что ответ может превышать 2^{32}.

Пример ввода 3

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

Пример вывода 3

89644


Вам даны простые неориентированные графы G и H, каждый с N вершинами: вершины 1, 2, \ldots, N. Граф G имеет M_G рёбер, и его i-е ребро (1\leq i\leq M_G) соединяет вершины u_i и v_i. Граф H имеет M_H рёбер, и его i-е ребро (1\leq i\leq M_H) соединяет вершины a_i и b_i. Вы можете выполнять следующую операцию на графе H любое количество раз, возможно, ноль.

- Выберите пару целых чисел (i,j), удовлетворяющих 1\leq i<j\leq N. Заплатите A_{i,j} йен, и, если между вершинами i и j в H нет ребра, добавьте его; если есть, удалите его.

Найдите минимальную общую стоимость, необходимую для того, чтобы графы G и H стали изоморфными.

Что такое простой неориентированный граф? Простой неориентированный граф — это граф без петель и кратных рёбер, где рёбра не имеют направления.

Что означает, что графы изоморфны? Два графа G и H с N вершинами изоморфны тогда и только тогда, когда существует перестановка (P_1,P_2,\ldots,P_N) из (1,2,\ldots,N) такая, что для всех 1\leq i<j\leq N:

- ребро существует между вершинами i и j в G тогда и только тогда, когда ребро существует между вершинами P_i и P_j в H.

Ввод

Ввод даётся из стандартного ввода в следующем формате:
N
M _ G
u _ 1 v _ 1
u _ 2 v _ 2
\vdots
u _ {M _ G} v _ {M _ G}
M _ H
a _ 1 b _ 1
a _ 2 b _ 2
\vdots
a _ {M _ H} b _ {M _ H}
A _ {1,2} A _ {1,3} \ldots A _ {1,N}
A _ {2,3} \ldots A _ {2,N}
\vdots
A _ {N-1,N}

Вывод

Выведите ответ.

Ограничения

- 1\leq N\leq8
- 0\leq M _ G\leq\dfrac{N(N-1)}2
- 0\leq M _ H\leq\dfrac{N(N-1)}2
- 1\leq u _ i\lt v _ i\leq N\ (1\leq i\leq M _ G)
- (u _ i,v _ i)\neq(u _ j,v _ j)\ (1\leq i\lt j\leq M _ G)
- 1\leq a _ i\lt b _ i\leq N\ (1\leq i\leq M _ H)
- (a _ i,b _ i)\neq(a _ j,b _ j)\ (1\leq i\lt j\leq M _ H)
- 1\leq A _ {i,j}\leq 10 ^ 6\ (1\leq i\lt j\leq N)
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

9

Даны графы:

Например, вы можете выполнить следующие четыре операции на H, чтобы сделать его изоморфным графу G при стоимости 9 йен.

- Выберите (i,j)=(1,3). Между вершинами 1 и 3 в H есть ребро, поэтому заплатите 1 йену, чтобы удалить его.
- Выберите (i,j)=(2,5). Между вершинами 2 и 5 в H нет ребра, поэтому заплатите 2 йены, чтобы добавить его.
- Выберите (i,j)=(1,5). Между вершинами 1 и 5 в H есть ребро, поэтому заплатите 1 йену, чтобы удалить его.
- Выберите (i,j)=(3,5). Между вершинами 3 и 5 в H нет ребра, поэтому заплатите 5 йен, чтобы добавить его.

После этих операций H становится:

Вы не можете сделать графы G и H изоморфными с меньшей стоимостью, чем 9 йен, поэтому выведите 9.

Пример ввода 2

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

Пример вывода 2

3

Например, выполнение операций (i,j)=(2,3),(2,4),(3,4) на H сделает его изоморфным графу G.

Пример ввода 3

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

Пример вывода 3

5

Например, выполнение операции (i,j)=(4,5) один раз сделает графы G и H изоморфными.

Пример ввода 4

2
0
0
371

Пример вывода 4

0

Заметьте, что G и H могут не иметь рёбер. Также возможно, что операции не требуются.

Пример ввода 5

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

Пример вывода 5

21214

Вам даны простые неориентированные графы G и H, каждый из которых имеет N вершин: вершины 1, 2, \ldots, N.
Граф G имеет M_G ребер, и его i-е ребро (1\leq i\leq M_G) соединяет вершины u_i и v_i.
Граф H имеет M_H ребер, и его i-е ребро (1\leq i\leq M_H) соединяет вершины a_i и b_i.
Вы можете выполнить следующую операцию на графе H любое количество раз, возможно, ноль.

- Выберите пару целых чисел (i,j), удовлетворяющих 1\leq i<j\leq N. Заплатите A_{i,j} иен, и если между вершинами i и j в H нет ребра, добавьте одно; если есть, удалите его.

Найдите минимальную общую стоимость, необходимую для того, чтобы сделать G и H изоморфными.
Что такое простой неориентированный граф?
Простой неориентированный граф — это граф без петель и множественных ребер, где ребра не имеют направления.

Что означает изоморфность графов?
Два графа G и H с N вершинами изоморфны тогда и только тогда, когда существует перестановка (P_1,P_2,\ldots,P_N) графа (1,2,\ldots,N) такая, что для всех 1\leq i\lt j\leq N:

- ребро существует между вершинами i и j в G тогда и только тогда, когда ребро существует между вершинами P_i и P_j в H.

Входные данные

Входные данные даются из стандартного ввода в следующем формате:
N
M _ G
u _ 1 v _ 1
u _ 2 v _ 2
\vdots
u _ {M _ G} v _ {M _ G}
M _ H
a _ 1 b _ 1
a _ 2 b _ 2
\vdots
a _ {M _ H} b _ {M _ H}
A _ {1,2} A _ {1,3} \ldots A _ {1,N}
A _ {2,3} \ldots A _ {2,N}
\vdots
A _ {N-1,N}

Вывод

Выведите ответ.

Ограничения

- 1\leq N\leq8
- 0\leq M _ G\leq\dfrac{N(N-1)}2
- 0\leq M _ H\leq\dfrac{N(N-1)}2
- 1\leq u _ i\lt v _ i\leq N\ (1\leq i\leq M _ G)
- (u _ i,v _ i)\neq(u _ j,v _ j)\ (1\leq i\lt j\leq M _ G)
- 1\leq a _ i\lt b _ i\leq N\ (1\leq i\leq M _ H)
- (a _ i,b _ i)\neq(a _ j,b _ j)\ (1\leq i\lt j\leq M _ H)
- 1\leq A _ {i,j}\leq 10 ^ 6\ (1\leq i\lt j\leq N)
- Все входные значения являются целыми числами.

Пример входных данных 1

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

Пример выходных данных 1

9

Даны следующие графы:

Например, вы можете выполнить следующие четыре операции над H, чтобы сделать его изоморфным G, заплатив 9 иен.

- Выберите (i,j)=(1,3). Между вершинами 1 и 3 в H есть ребро, поэтому заплатите 1 иену, чтобы удалить его.
- Выберите (i,j)=(2,5). Между вершинами 2 и 5 в H нет ребра, поэтому заплатите 2 иены, чтобы добавить его.
- Выберите (i,j)=(1,5). Между вершинами 1 и 5 в H есть ребро, поэтому заплатите 1 иену, чтобы удалить его.
- Выберите (i,j)=(3,5). Между вершинами 3 и 5 в H нет ребра, поэтому заплатите 5 иен, чтобы добавить его.

После этих операций H становится:

Вы не можете сделать G и H изоморфными по цене менее 9 иен, поэтому выведите 9.

Пример ввода 2

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

Пример вывода 2

3

Например, выполнение операций (i,j)=(2,3),(2,4),(3,4) над H сделает его изоморфным G.

Пример ввода 3

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

Пример вывода 3

5

Например, выполнение операции (i,j)=(4,5) один раз сделает G и H изоморфны.

Пример ввода 4

2
0
0
371

Пример вывода 4

0

Обратите внимание, что G и H могут не иметь ребер.
Кроме того, возможно, что не требуется никаких операций.

Пример ввода 5

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

Пример вывода 5

21214


Дана последовательность целых чисел A = (A_1, A_2, \ldots, A_N) длины N.
Определим f(l, r) как:

- количество различных значений в подпоследовательности (A_l, A_{l+1}, \ldots, A_r).

Вычислите следующее выражение:

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

Ввод

Ввод поступает через Standard Input в следующем формате:
N
A_1 \ldots A_N

Вывод

Выведите ответ.

Ограничения

- 1\leq N\leq 2\times 10^5
- 1\leq A_i\leq N
- Все входные значения — целые числа.

Пример ввода 1

3
1 2 2

Пример вывода 1

8

Рассмотрим f(1,2). Подпоследовательность (A_1, A_2) = (1,2) содержит 2 различных значения, поэтому f(1,2)=2.
Рассмотрим f(2,3). Подпоследовательность (A_2, A_3) = (2,2) содержит 1 различное значение, поэтому f(2,3)=1.
Сумма f равна 8.

Пример ввода 2

9
5 4 2 2 3 2 4 4 1

Пример вывода 2

111

Вам дана последовательность целых чисел A = (A_1, A_2, \ldots, A_N) длиной N.
                    Define f(l, r) as:

- число различных значений в подпоследовательности (A_l, A_{l+1}, \ldots, A_r).

Вычислите следующее выражение:

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

Input

The input is given from Standard Input in the following format:
N
A_1 \ldots A_N

Output

Print the answer.

Constraints

- 1\leq N\leq 2\times 10^5
- 1\leq A_i\leq N
- All input values are integers.

Sample Input 1

3
1 2 2

Sample Output 1

8

Consider f(1,2). The subsequence (A_1, A_2) = (1,2) contains 2
                    distinct values, so f(1,2)=2.
Consider f(2,3). The subsequence (A_2, A_3) = (2,2) contains 1
                    distinct value, so f(2,3)=1.
The sum of f is 8.

Sample Input 2

9
5 4 2 2 3 2 4 4 1

Sample Output 2

111

Вам дана последовательность целых чисел A = (A_1, A_2, \ldots, A_N) длины N.
                    Определите f(l, r) как:

- количество различных значений в подпоследовательности (A_l, A_{l+1}, \ldots, A_r).

Оцените следующее выражение:

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

Вход

Входные данные передаются из стандартного ввода в следующем формате:
N
A_1 \ldots A_N

Выход

Распечатайте ответ.

Ограничения

- 1\leq N\leq 2\times 10%5
- 1\leq A_i\leq N
- Все входные значения являются целыми числами.

Пример ввода 1

3
1 2 2

Пример вывода 1

8

Рассмотрим f(1,2). Подпоследовательность (A_1, A_2) = (1,2) содержит 2
                    разные значения, поэтому f(1,2)=2.
Рассмотрим f(2,3). Подпоследовательность (A_2, A_3) = (2,2) содержит 1
                    отдельное значение, поэтому f(2,3)=1.
Сумма f равна 8.

Пример ввода 2

9
5 4 2 2 3 2 4 4 1

Пример вывода 2

111


Есть три брата по имени A, B и C. Возрастные соотношения между ними задаются тремя символами S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}}, которые означают следующее:

- Если S_{\mathrm{AB}} равен <, то A моложе B; если он равен >, то A старше B.
- Если S_{\mathrm{AC}} равен <, то A моложе C; если он равен >, то A старше C.
- Если S_{\mathrm{BC}} равен <, то B моложе C; если он равен >, то B старше C.

Кто средний брат, то есть второй по старшинству из трех?

Ввод

Вводные данные даются из стандартного ввода в следующем формате:
S_{\mathrm{AB}} S_{\mathrm{AC}} S_{\mathrm{BC}}

Вывод

Выведите имя среднего брата, то есть второго по старшинству из трех.

Ограничения

- Каждый из S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}} является < или >.
- Вводные данные не содержат противоречий; то есть всегда существует возрастное соотношение, которое удовлетворяет всем заданным неравенствам.

Пример ввода 1

< < <

Пример вывода 1

B

Поскольку A моложе B, а B моложе C, мы можем определить, что C является старшим, B является средним, а A является младшим. Следовательно, ответ B.

Пример ввода 2

< < >

Пример вывода 2

C

Есть три брата по имени A, B и C. Возрастные отношения между ними заданы тремя символами S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}}, которые означают следующее:

- Если S_{\mathrm{AB}} — это <, то A младше B; если это >, то A старше B.
- Если S_{\mathrm{AC}} — это <, то A младше C; если это >, то A старше C.
- Если S_{\mathrm{BC}} — это <, то B младше C; если это >, то B старше C.

Кто из них является средним братом, то есть вторым по старшинству?

Ввод

Ввод дается из стандартного ввода в следующем формате:
S_{\mathrm{AB}} S_{\mathrm{AC}} S_{\mathrm{BC}}

Вывод

Выведите имя среднего брата, то есть второго по старшинству среди трех.

Ограничения

- Каждый из S_{\mathrm{AB}}, S_{\mathrm{AC}}, S_{\mathrm{BC}} является < или >.
- Ввод не содержит противоречий; то есть всегда существуют возрастные отношения, удовлетворяющие всем данным неравенствам.

Пример ввода 1

< < <

Пример вывода 1

B

Поскольку A младше B, и B младше C, мы можем определить, что C самый старший, B средний, а A самый младший. Таким образом, ответ — B.

Пример ввода 2

< < >

Пример вывода 2

C


Дан неориентированный граф с N вершинами и 0 рёбрами. Вершины пронумерованы от 1 до N. Вам даны Q запросов, которые необходимо обработать по порядку. Каждый запрос одного из двух типов:

- Тип 1: Данный в формате 1 u v. Добавить ребро между вершинами u и v.
- Тип 2: Данный в формате 2 v k. Напечатать k-й наибольший номер вершины среди вершин, соединённых с вершиной v. Если соединённых вершин меньше, чем k, напечатать -1.

Ввод

Ввод подаётся из стандартного ввода в следующем формате:
N Q
\mathrm{query}_1
\mathrm{query}_2
\vdots
\mathrm{query}_Q

Здесь \mathrm{query}_i — i-й запрос и он дан в одном из следующих форматов:
1 u v

2 v k

Вывод

Пусть q — количество запросов типа 2. Напечатать q строк.
i-я строка должна содержать ответ на i-й запрос типа 2.

Ограничения

- 1 \leq N, Q \leq 2 \times 10^5
- В запросе типа 1, 1 \leq u < v \leq N.
- В запросе типа 2, 1 \leq v \leq N, 1 \leq k \leq 10.
- Все входные значения — целые числа.

Пример ввода 1

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

Пример вывода 1

2
1
-1
4
2
-1

- В первом запросе добавляется ребро между вершинами 1 и 2.
- Во втором запросе две вершины соединены с вершиной 1: 1 и 2. Среди них 1-я наибольшая вершина — 2, её и следует напечатать.
- В третьем запросе две вершины соединены с вершиной 1: 1 и 2. Среди них 2-я наибольшая вершина — 1, её и следует напечатать.
- В четвёртом запросе две вершины соединены с вершиной 1: 1 и 2, что меньше, чем 3, поэтому напечатать -1.
- В пятом запросе добавляется ребро между вершинами 1 и 3.
- В шестом запросе добавляется ребро между вершинами 2 и 3.
- В седьмом запросе добавляется ребро между вершинами 3 и 4.
- В восьмом запросе четыре вершины соединены с вершиной 1: 1, 2, 3, 4. Среди них 1-я наибольшая вершина — 4, её и следует напечатать.
- В девятом запросе четыре вершины соединены с вершиной 1: 1, 2, 3, 4. Среди них 3-я наибольшая вершина — 2, её и следует напечатать.
- В десятом запросе четыре вершины соединены с вершиной 1: 1, 2, 3, 4, что меньше, чем 5, поэтому напечатать -1.

Пример ввода 2

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

Пример вывода 2

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

Есть неориентированный граф с N вершинами и 0 ребрами. Вершины пронумерованы от 1 до N.
Вам дано Q запросов для обработки по порядку. Каждый запрос относится к одному из следующих двух типов:

- Тип 1: дан в формате 1 u v. Добавьте ребро между вершинами u и v.
- Тип 2: дан в формате 2 v k. Выведите k-й по величине номер вершины среди вершин, соединенных с вершиной v. Если с v соединено меньше k вершин, выведите -1.

Ввод

Вводные данные подаются из стандартного ввода в следующем формате:
N Q
\mathrm{query}_1
\mathrm{query}_2
\vdots
\mathrm{query}_Q

Здесь \mathrm{query}_i — это i-й запрос, который задается в одном из следующих форматов:
1 u v

2 v k

Вывод

Пусть q будет количеством запросов типа 2. Выведите q строк.
i-я строка должна содержать ответ на i-й запрос типа 2.

Ограничения

- 1 \leq N, Q \leq 2 \times 10^5
- В запросе типа 1, 1 \leq u < v \leq N.
- В запросе типа 2, 1 \leq v \leq N, 1 \leq k \leq 10.
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

2
1
-1
4
2
-1

- В первом запросе добавляется ребро между вершинами 1 и 2.
- Во втором запросе две вершины соединены с вершиной 1: 1 и 2. Среди них 1-й по величине номер вершины — 2, который следует вывести.
- В третьем запросе две вершины соединены с вершиной 1: 1 и 2. Среди них 2-й по величине номер вершины — 1, который следует вывести.
- В четвертом запросе две вершины соединены с вершиной 1: 1 и 2, что меньше 3, поэтому выведите -1.
- В пятом запросе ребро добавляется между вершинами 1 и 3.
- В шестом запросе ребро добавляется между вершинами 2 и 3.
- В седьмом запросе ребро добавляется между вершинами 3 и 4.
- В восьмом запросе четыре вершины соединены с вершиной 1: 1,2,3,4. Среди них 1-й по величине номер вершины равен 4, что следует вывести.
- В девятом запросе четыре вершины соединены с вершиной 1: 1,2,3,4. Среди них 3-й по величине номер вершины равен 2, что следует вывести.
- В десятом запросе четыре вершины соединены с вершиной 1: 1,2,3,4, что меньше 5, поэтому выведите -1.

Пример ввода 2

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

Пример вывода 2

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


Дана строка S длины N. Также дано Q запросов, которые необходимо обработать по порядку.
i-й запрос имеет следующий вид:

- Дано целое число X_i и символ C_i, замените X_i-й символ строки S на C_i. Затем выведите количество вхождений подстроки ABC в строку S.

Здесь подстрока S — это строка, полученная удалением нуля или более символов с начала и нуля или более символов с конца S. Например, ab является подстрокой abc, но ac не является подстрокой abc.

Ввод

Ввод поступает с стандартного ввода в следующем формате:
N Q
S
X_1 C_1
X_2 C_2
\vdots
X_Q C_Q

Вывод

Выведите Q строк.
i-я строка (1 \le i \le Q) должна содержать ответ на i-й запрос.

Ограничения

- 3 \le N \le 2 \times 10^5
- 1 \le Q \le 2 \times 10^5
- S — строка длины N, состоящая из заглавных английских букв.
- 1 \le X_i \le N
- C_i — заглавная английская буква.

Пример ввода 1

7 4
ABCDABC
4 B
3 A
5 C
4 G

Пример вывода 1

2
1
1
0

После обработки каждого запроса строка S становится следующей.

- После первого запроса: S = ABCBABC. В этой строке ABC появляется дважды как подстрока.
- После второго запроса: S = ABABABC. В этой строке ABC появляется один раз как подстрока.
- После третьего запроса: S = ABABCBC. В этой строке ABC появляется один раз как подстрока.
- После четвертого запроса: S = ABAGCBC. В этой строке ABC появляется ноль раз как подстрока.

Пример ввода 2

3 3
ABC
1 A
2 B
3 C

Пример вывода 2

1
1
1

Есть случаи, когда строка S не изменяется при обработке запроса.

Пример ввода 3

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

Пример вывода 3

0
0
0
0
1
1
2
2
1
1

Вам дана строка длины N. Вам также дают запросы Q, которые вы должны обрабатывать по порядку.
i-й запрос выглядит следующим образом:

- Учитывая целое число X_iи символ C_i, замените символ X_i-th S на  C_i. Затем распечатайте количество раз, когда строка ABC появляется как подстрока в S.

Здесь подстрока S - это строка, полученная путем удаления ноль или более символов с самого начала и нуля или более символов из конца S.
Например, ab является подстрокой abc, но ac не является подстрокой abc.
Вход

Ввод приведен из стандартного ввода в следующем формате:
N Q.
S
X_1 C_1
X_2 C_2
\ vdots
X_Q C_Q

Выход

Печать Q Lines.
i-th Line (1 \le i \le Q)  должна содержать ответ на i-th запрос.

Ограничения

- 3 \le N \le 2 \times 10^5
-1 \le Q \le 2 \times 10^5
-S — строка длины N, состоящая из заглавных английских букв.
-1 \le X_i \le N
-C_i — заглавная английская буква.

Пример входа 1

7 4
ABCDABC
4 B
3 A
5 C
4 G

Образец вывода 1

2
1
1
0

После обработки каждого запроса S становится следующим образом.

- После первого запроса:  S = ABCBABC. В этой строке ABC появляется в два раза как подстрока.
- После второго запроса: S = ABABABC. В этой строке ABC появляется один раз как подстрока.
- После третьего запроса: S = ABABCBC. В этой строке ABC появляется один раз как подстрока.
- После четвертого запроса: S = ABAGCBC. В этой строке ABC появляется в нулевом случае как подстрока.

Пример входа 2

3 3
ABC
1 A
2 B
3 C

Образец вывода 2

1
1
1

Есть случаи, когда S не меняется путем обработки запроса.

Образец ввода 3

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

Образец вывода 3

0
0
0
0
1
1
2
2
1
1


Есть N зданий, Здание 1, Здание 2, \ldots, Здание N, расположенных в ряд в этом порядке. Высота здания i (1 \leq i \leq N) равна H_i.
Для каждого i = 1, 2, \ldots, N найдите количество целых чисел j (i < j \leq N), удовлетворяющих следующему условию:

- Между зданиями i и j нет здания выше здания j.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N
H_1 H_2 \ldots H_N

Вывод

Для каждого i = 1, 2, \ldots, N пусть c_i будет количеством j, удовлетворяющих условию. Выведите c_1, c_2, \ldots, c_N по порядку, разделив пробелами.

Ограничения

- 1 \leq N \leq 2 \times 10^5
- 1 \leq H_i \leq N
- H_i\neq H_j\ (i\neq j)
- Все входные значения являются целыми числами.

Пример входных данных 1

5
2 1 4 3 5

Пример выходных данных 1

3 2 2 1 0

Для i=1 целые числа j, удовлетворяющие условию, равны 2, 3 и 5: их три. (Между зданиями 1 и 4 есть здание выше здания 4, которое является зданием 3, поэтому j=4 не удовлетворяет условию.) Следовательно, первое число в выходных данных — 3.

Пример ввода 2

4
1 2 3 4

Пример вывода 2

3 2 1 0

Пример ввода 3

10
1 9 6 5 2 7 10 4 8 3

Пример вывода 3

2 3 3 3 2 1 2 1 1 0

Дано N зданий, Здание 1, Здание 2, \ldots, Здание N, расположенных в ряд в данном порядке. Высота Здания i (1 \leq i \leq N) равна H_i.
Для каждого i = 1, 2, \ldots, N, найди количество целых чисел j (i < j \leq N), удовлетворяющих следующему условию:

- Между зданиями i и j нет здания выше, чем Здание j.

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
N
H_1 H_2 \ldots H_N

Вывод

Для каждого i = 1, 2, \ldots, N, пусть c_i будет количество j, удовлетворяющих условию. Выведи c_1, c_2, \ldots, c_N в порядке возрастания, разделяя их пробелами.

Ограничения

- 1 \leq N \leq 2 \times 10^5
- 1 \leq H_i \leq N
- H_i\neq H_j\ (i\neq j)
- Все входные значения являются целыми числами.

Пример ввода 1

5
2 1 4 3 5

Пример вывода 1

3 2 2 1 0

Для i=1, целые числа j, удовлетворяющие условию, равны 2, 3 и 5: их три. (Между Зданиями 1 и 4 есть здание выше, чем Здание 4. Это Здание 3, поэтому j=4 не удовлетворяет условию.) Таким образом, первое число в выводе — 3.

Пример ввода 2

4
1 2 3 4

Пример вывода 2

3 2 1 0

Пример ввода 3

10
1 9 6 5 2 7 10 4 8 3

Пример вывода 3

2 3 3 3 2 1 2 1 1 0

Дано N зданий, Здание 1, Здание 2, \ldots, Здание N, расположенных в линию в этом порядке. Высота Здания i (1 \leq i \leq N) равна H_i.
Для каждого i = 1, 2, \ldots, N, найдите количество целых чисел j (i < j \leq N), удовлетворяющих следующему условию:

- Между зданиями i и j нет здания выше, чем Здание j.

Ввод

Ввод выполняется с помощью стандартного ввода в следующем формате:
N
H_1 H_2 \ldots H_N

Вывод

Для каждого i = 1, 2, \ldots, N, пусть c_i будет количество j, удовлетворяющих условию. Выведите c_1, c_2, \ldots, c_N в порядке возрастания, разделенных пробелами.

Ограничения

- 1 \leq N \leq 2 \times 10^5
- 1 \leq H_i \leq N
- H_i\neq H_j\ (i\neq j)
- Все входные значения являются целыми числами.

Пример Ввода 1

5
2 1 4 3 5

Пример Вывода 1

3 2 2 1 0

Для i=1, целые числа j, удовлетворяющие условию: 2, 3 и 5: их три. (Между Зданиями 1 и 4 есть здание выше, чем Здание 4, это Здание 3, поэтому j=4 не удовлетворяет условию.) Таким образом, первое число в выводе — это 3.

Пример Ввода 2

4
1 2 3 4

Пример Вывода 2

3 2 1 0

Пример Ввода 3

10
1 9 6 5 2 7 10 4 8 3

Пример Вывода 3

2 3 3 3 2 1 2 1 1 0


Вам даны три последовательности положительных целых чисел длиной N: A=(A_1,A_2,\ldots,A_N), B=(B_1,B_2,\ldots,B_N) и C=(C_1,C_2,\ldots,C_N).
Найдите количество пар положительных целых чисел (x, y), удовлетворяющих следующему условию:

- A_i \times x + B_i \times y < C_i для всех 1 \leq i \leq N.

Можно доказать, что количество таких пар положительных целых чисел, удовлетворяющих условию, конечно.
Вам даны T тестовых случаев, каждый из которых должен быть решен.

Входные данные

Входные данные даются из стандартного ввода в следующем формате. Здесь \mathrm{case}_i относится к i-му тестовому случаю.
T
\mathrm{case}_1
\mathrm{case}_2
\vdots
\mathrm{case}_T

Каждый тестовый случай представлен в следующем формате:
N
A_1 B_1 C_1
A_2 B_2 C_2
\vdots
A_N B_N C_N

Вывод

Выведите T строк. i-я строка (1 \leq i \leq T) должна содержать ответ для \mathrm{case}_i.

Ограничения

- 1 \leq T \leq 2 \times 10^5
- 1 \leq N \leq 2 \times 10^5
- 1 \leq A_i, B_i, C_i \leq 10^9
- The sum of N over all test cases is at most 2 \times 10^5.
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

2
0

В первом тестовом случае есть две допустимые пары целых чисел: (x, y) = (1, 1), (2,1). Таким образом, первая строка должна содержать 2.
Во втором тестовом случае нет допустимых пар целых чисел. Таким образом, вторая строка должна содержать 0.

Пример ввода 2

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

Пример вывода 2

660
995
140

Даны три последовательности положительных целых чисел длиной N: A=(A_1,A_2,\ldots,A_N), B=(B_1,B_2,\ldots,B_N) и C=(C_1,C_2,\ldots,C_N).
Найди количество пар положительных целых чисел (x, y), которые удовлетворяют следующему условию:

- A_i \times x + B_i \times y < C_i для всех 1 \leq i \leq N.

Можно доказать, что количество таких пар положительных целых чисел, удовлетворяющих условию, конечно.
Даны T тестовых случаев, каждый из которых нужно решить.

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате. Здесь \mathrm{case}_i относится к i-му тесту.
T
\mathrm{case}_1
\mathrm{case}_2
\vdots
\mathrm{case}_T

Каждый тестовый случай дается в следующем формате:
N
A_1 B_1 C_1
A_2 B_2 C_2
\vdots
A_N B_N C_N

Вывод

Выведи T строк. i-я строка (1 \leq i \leq T) должна содержать ответ для \mathrm{case}_i.

Ограничения

- 1 \leq T \leq 2 \times 10^5
- 1 \leq N \leq 2 \times 10^5
- 1 \leq A_i, B_i, C_i \leq 10^9
- Сумма N для всех тестов не превышает 2 \times 10^5.
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

2
0

В первом тестовом случае есть две допустимые пары чисел: (x, y) = (1, 1), (2,1). Таким образом, первая строка должна содержать 2.
Во втором тестовом случае нет допустимых пар чисел. Таким образом, вторая строка должна содержать 0.

Пример ввода 2

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

Пример вывода 2

660
995
140

Вам даны три последовательности положительных целых чисел длины N: A=(A_1,A_2,\ldots,A_N), B=(B_1,B_2,\ldots,B_N), и C=(C_1,C_2,\ldots,C_N).
Найдите количество пар натуральных чисел (x, y), удовлетворяющих следующему условию:

- A_i \times x + B_i \times y < C_i for all 1 \leq i \leq N.

Можно доказать, что число таких пар целых положительных чисел, удовлетворяющих условию, конечно.
Вам даны T тестовых случаев, каждый из которых необходимо решить.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате. Здесь \mathrm{case}_i относится к i-му тестовому примеру.
T
\mathrm{case}_1
\mathrm{case}_2
\vdots
\mathrm{case}_T

Каждый тестовый пример задается в следующем формате:
N
A_1 B_1 C_1
A_2 B_2 C_2
\vdots
A_N B_N C_N

Вывод

Выведите Т-линии. i-я строка (1 \leq i \leq T) должна содержать ответ на \mathrm{case}_i.

Ограничения

- 1 \leq T \leq 2 \times 10^5
- 1 \leq N \leq 2 \times 10^5
- 1 \leq A_i, B_i, C_i \leq 10^9
- Сумма N по всем тестам не превышает 2 \times 10^5.
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

2
0

В первом тестовом примере есть две допустимые пары целых чисел: (x, y) = (1, 1), (2,1). Таким образом, первая строка должна содержать 2.
Во втором тестовом примере нет допустимых пар целых чисел. Таким образом, вторая строка должна содержать 0.

Пример ввода 2

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

Пример вывода 2

660
995
140


Существует простой ориентированный граф G с N вершинами и ребрами N+M. Вершины нумеруются от 1 до N, а ребра от 1 до N+M.
Ребро i (1 \leq i \leq N) идет от вершины i к вершине i+1. (Здесь вершина N+1 рассматривается как вершина 1.)
Ребро N+i (1 \leq i \leq M) идет от вершины X_i к вершине Y_i.
Такахаши находится в вершине 1. В каждой вершине он может перемещаться к любой вершине, к которой есть исходящее ребро от текущей вершины.
Вычислите количество способов, которыми он может перемещаться ровно K раз.
То есть найдем количество последовательностей целых чисел (v_0, v_1, \dots, v_K) длины K+1, удовлетворяющих всем следующим трем условиям:

- 1 \leq v_i \leq N for i = 0, 1, \dots, K.
- v_0 = 1.
- Существует направленное ребро от вершины v_{i-1} к вершине v_i для i = 1, 2, \ldots, K.

Так как это число может быть очень большим, выведите его по модулю 998244353.

Input

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

Output

Print the count modulo 998244353.

Constraints

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

Sample Input 1

6 2 5
1 4
2 5

Sample Output 1

5

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

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

Sample Input 2

10 0 200000

Sample Output 2

1

Sample Input 3

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

Sample Output 3

451022766

Существует простой ориентированный граф G с N вершинами и N+M ребрами. Вершины пронумерованы от 1 до N, а ребра от 1 до N+M.
Ребро i (1 \leq i \leq N) идёт из вершины i в вершину i+1. (Здесь вершина N+1 считается вершиной 1.)
Ребро N+i (1 \leq i \leq M) идёт из вершины X_i в вершину Y_i.
Такахаши находится в вершине 1. В каждой вершине он может перейти в любую вершину, в которую есть выходящее ребро из текущей вершины.
Вычислите количество способов, которыми он может переместиться ровно K раз.
То есть найдите количество целочисленных последовательностей (v_0, v_1, \dots, v_K) длины K+1, удовлетворяющих всем следующим трём условиям:

- 1 \leq v_i \leq N for i = 0, 1, \dots, K.
- v_0 = 1.
- Существует направленное ребро из вершины v_{i-1} в вершину v_i для i = 1, 2, \ldots, K.

Поскольку это число может быть очень большим, выведите его по модулю 998244353.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N M K
X_1 Y_1
X_2 Y_2
\vdots
X_M Y_M

Вывод

Выведите число по модулю 998244353.

Ограничения

- 2 \leq N \leq 2 \times 10^5
- 0 \leq M \leq 50
- 1 \leq K \leq 2 \times 10^5
- 1 \leq X_i, Y_i \leq N, X_i \neq Y_i
- Все ребра, направленные N+M, различны.
- Все вводные значения являются целыми числами.

Пример ввода 1

6 2 5
1 4
2 5

Пример вывода 1

5

На рисунке выше представлен графика G. Такахаши может двигаться пятью способами:

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

Пример ввода 2

10 0 200000

Пример вывода 2

1

Пример ввода 3

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

Пример вывода 3

451022766

Существует простой направленный граф G с N вершинами и реброми N+M. Вершины пронумерованы от 1 до N, а ребро пронумерованы от 1 до N+M.
Edge I (1 \leq i \leq n) переходит от вершины I к вершине I+1. (Здесь вершина n+1 считается вершиной 1.)
Edge n+i (1 \leq i \leq m) переходит от вершины x_i к вершине y_i.
Такахаши находится в вершине 1. В каждой вершине он может перейти к любой вершине, к которой есть исходящее ребро от текущей вершины.
Вычислите количество способов, которыми он может двигаться ровно k раз.
То есть найдите количество целочисленных последовательностей (v_0, v_1, \dots, v_K) длины K+1, удовлетворяя все следующие три условия:

- 1 \leq v_i \leq Nдля i = 0, 1, \dots, k.
- V_0 = 1.
- Существует направленное ребро от вершины V_ {I-1} в вершину V_I для i = 1, 2, \ldots, K.

Поскольку это число может быть очень большим, печатать его модуль 998244353.

Вход

Ввод приведен из стандартного ввода в следующем формате:
N m k
X_1 Y_1
X_2 y_2
\vdots
X_M Y_M

выбор вывода

Распечатайте Count Modulo 998244353.

Ограничения

- 2 \leq N \leq 2 \times 10^5
-0 \leq M \leq 50
-1 \leq K \leq 2 \times 10^5
-1 \leq X_i, Y_i \leq N, X_i \neq Y_i
- Все направленные ребро N+M отличаются.
- Все входные значения являются целыми числами.

Пример входа 1

6 2 5
1 4
2 5

Выбор вывода 1

5

Приведенный выше рисунок представляет граф G. Есть пять способов движения Такахаши:

- Вершина 1 \to Вершина 2 \to Вершина 3 \to Вершина 4 \to Вершина 5 \to Вершина 6
-Вершина 1 \to Вершина 2 \to Вершина 5 \to Вершина 6 \to Вершина 1 \to Вершина 2
-Вершина 1 \to Вершина 2 \to Вершина 5 \to Вершина 6 \to Вершина 1 \to Вершина 4
-Вершина 1 \to Вершина 4 \to Вершина 5 \to Вершина 6 \to Вершина 1 \to Вершина 2
-Вершина 1 \to Вершина 4 \to Вершина 5 \to Вершина 6 \to Вершина 1 \to Вершина 4
Пример входа 2

10 0 200000

выбор вывода 2

1

Образец ввода 3

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

Выбор вывода 3

451022766


Вам дана строка S, состоящая из строчных английских букв и ..
Найдите строку, полученную после удаления всех . из S.

Ввод

Ввод передается через стандартный ввод в следующем формате:
S

Вывод

Выведите строку, полученную после удаления всех . из S.

Ограничения

- S — строка длиной от 1 до 100 включительно, состоящая из строчных английских букв и ..

Пример ввода 1

.v.

Пример вывода 1

v

Удаление всех . из .v. дает v, поэтому выведите v.

Пример ввода 2

chokudai

Пример вывода 2

chokudai

Есть случаи, когда S не содержит ..

Пример ввода 3

...

Пример вывода 3

Существуют также случаи, когда все символы в S — это ..

Вам дана строка S, состоящая из строчных английских букв и ..
Найдите строку, полученную путем удаления всех . из S.

Входные данные

Входные данные даются из стандартного ввода в следующем формате:
S

Выходные данные

Выведите строку, полученную путем удаления всех . из S.

Ограничения

- S — это строка длиной от 1 до 100 включительно, состоящая из строчных английских букв и ..

Пример ввода 1

.v.

Пример вывода 1

v

Удаление всех . из .v. дает v, поэтому выведите v.

Пример ввода 2

chokudai

Пример вывода 2

chokudai

Есть случаи, когда S не содержит ..

Пример ввода 3

...

Пример вывода 3

Также есть случаи, когда все символы в S являются ..


Даны 12 строк S_1, S_2, \ldots, S_{12}, состоящих из строчных английских букв.
Найдите количество целых чисел i (1 \leq i \leq 12), для которых выполняется, что длина S_i равна i.

Ввод

Ввод осуществляется из стандартного ввода в следующем формате:
S_1
S_2
\vdots
S_{12}

Вывод

Выведите количество целых чисел i (1 \leq i \leq 12), для которых длина S_i равна i.

Ограничения

- Каждая строка S_i имеет длину от 1 до 100 включительно и состоит из строчных английских букв. (1 \leq i \leq 12)

Пример ввода 1

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

Пример вывода 1

1

Существует только одно целое число i, для которого длина S_i равна i: 9. Таким образом, выведите 1.

Пример ввода 2

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

Пример вывода 2

2

Существует два целых числа i, для которых длина S_i равна i: 4 и 8. Таким образом, выведите 2.

Есть 12 строк S_1, S_2, \ldots, S_{12}, состоящих из строчных английских букв.
Найдите, сколько целых чисел i (1 \leq i \leq 12) удовлетворяют тому, что длина S_i равна i.

Ввод

Ввод дается из стандартного ввода в следующем формате:
S_1
S_2
\vdots
S_{12}

Вывод

Выведите количество целых чисел i (1 \leq i \leq 12) таких, что длина S_i равна i.

Ограничения

- Каждая S_i представляет собой строку длиной от 1 до 100 включительно, состоящую из строчных английских букв. (1 \leq i \leq 12)

Пример ввода 1

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

Пример вывода 1

1

Существует только одно целое число i, такое что длина S_i равна i: 9. Таким образом, выведите 1.

Пример ввода 2

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

Пример вывода 2

2

Существуют два целых числа i, такие что длина S_i равна i: 4 и 8. Таким образом, выведите 2.


Имеется клавиатура с 26 клавишами, расположенными на числовой оси.
Расположение этой клавиатуры представлено строкой S, которая является перестановкой ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Клавиша, соответствующая символу S_x, расположена в координате x (1 \leq x \leq 26). Здесь S_x обозначает x-й символ S.
Вы будете использовать эту клавиатуру для ввода ABCDEFGHIJKLMNOPQRSTUVWXYZ в этом порядке, набирая каждую букву ровно один раз правым указательным пальцем.
Чтобы ввести символ, вам нужно переместить палец в координату клавиши, соответствующей этому символу, и нажать клавишу.
Изначально ваш палец находится в координате клавиши, соответствующей A. Найдите минимально возможное общее расстояние, пройденное вашим пальцем от нажатия клавиши для A до нажатия клавиши для Z. Здесь нажатие клавиши не влияет на расстояние.

Ввод

Вводные данные даются из стандартного ввода в следующем формате:
S

Вывод

Выведите ответ.

Ограничения

- S является перестановкой ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Пример ввода 1

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Пример вывода 1

25

От нажатия клавиши для A до нажатия клавиши для Z вам нужно перемещать палец на 1 единицу за раз в положительном направлении, в результате чего общее пройденное расстояние составит 25. Невозможно нажать все клавиши с общим пройденным расстоянием менее 25, поэтому выведите 25.

Пример ввода 2

MGJYIZDKSBHPVENFLQURTCWOAX

Пример вывода 2

223

На числовой оси расположена клавиатура с 26 клавишами.
Расположение этой клавиатуры представлено строкой S, которая является перестановкой символов ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Клавиша, соответствующая символу S_x, расположена на координате x (1 \leq x \leq 26). Здесь S_x обозначает x-й символ строки S.
Ты будешь использовать эту клавиатуру, чтобы ввести ABCDEFGHIJKLMNOPQRSTUVWXYZ в заданном порядке, вводя каждую букву ровно один раз указательным пальцем правой руки.
Чтобы ввести символ, необходимо переместить палец на координату клавиши, соответствующей этому символу, и нажать клавишу.
Изначально палец находится на координате клавиши, соответствующей A. Найди минимально возможное общее пройденное расстояние пальца от нажатия клавиши A до нажатия клавиши Z. Здесь нажатие клавиши не влияет на расстояние.

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
S

Вывод

Выведи ответ.

Ограничения

- S является перестановкой символов ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Пример ввода 1

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Пример вывода 1

25

От нажатия клавиши A до нажатия клавиши Z палец перемещается на 1 единицу за раз в положительном направлении, в результате чего общее пройденное расстояние составляет 25. Невозможно нажать все клавиши с общим пройденным расстоянием менее 25, поэтому выведи 25.

Пример ввода 2

MGJYIZDKSBHPVENFLQURTCWOAX

Пример вывода 2

223

На линейке расположена клавиатура с 26 клавишами.
Расположение этой клавиатуры представлено строкой S, которая является перестановкой ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Клавиша, соответствующая символу S_x, расположена на координате x (1 \leq x \leq 26). Здесь S_x обозначает x-й символ строки S.
Вы будете использовать эту клавиатуру, чтобы ввести ABCDEFGHIJKLMNOPQRSTUVWXYZ в этом порядке, вводя каждую букву ровно один раз указательным пальцем правой руки.
Чтобы ввести символ, необходимо переместить палец на координату клавиши, соответствующей этому символу, и нажать клавишу.
Изначально ваш палец находится на координате клавиши, соответствующей A. Найдите минимально возможное общее пройденное расстояние пальца от нажатия клавиши для A до нажатия клавиши для Z. Здесь нажатие клавиши не вносит вклада в расстояние.

Вход

Входные данные поступают из стандартного ввода в следующем формате:
S

Выход

Выведите ответ.

Ограничения

- S является перестановкой ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Пример входных данных 1

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Пример выходных данных 1

25

От нажатия клавиши для A до нажатия клавиши для Z, вы перемещаете палец на 1 единицу за раз в положительном направлении, что приводит к общему пройденному расстоянию 25. Невозможно нажать все клавиши с общей пройденной дистанцией менее 25, поэтому выведите 25.

Пример входных данных 2

MGJYIZDKSBHPVENFLQURTCWOAX

Пример выходных данных 2

223


Даны N типов предметов. У i-го типа предмета вес w_i и ценность v_i. Каждого типа доступно 10^{10} предметов. Такаяси собирается выбрать несколько предметов и положить их в сумку с вместимостью W. Он хочет максимизировать ценность выбранных предметов, избегая выбора слишком большого количества предметов одного типа. Поэтому он определяет удовольствие от выбора k_i предметов типа i как k_i v_i - k_i^2. Он хочет выбрать предметы, чтобы максимизировать общее удовольствие по всем типам при условии, что общий вес не превышает W. Рассчитайте максимальное общее удовольствие, которое он может достичь.

Ввод

Ввод предоставляется со стандартного ввода в следующем формате:
N W
w_1 v_1
w_2 v_2
\vdots
w_N v_N

Вывод

Выведите ответ.

Ограничения

- 1 \leq N \leq 3000
- 1 \leq W \leq 3000
- 1 \leq w_i \leq W
- 1 \leq v_i \leq 10^9
- Все входные значения — целые числа.

Пример ввода 1

2 10
3 4
3 2

Пример вывода 1

5

Выбирая 2 предмета типа 1 и 1 предмет типа 2, общее удовольствие может быть равно 5, что является оптимальным.
Здесь удовольствие для типа 1 равно 2 \times 4 - 2^2 = 4, а удовольствие для типа 2 равно 1 \times 2 - 1^2 = 1.
Общий вес равен 9, что находится в пределах вместимости 10.

Пример ввода 2

3 6
1 4
2 3
2 7

Пример вывода 2

14

Пример ввода 3

1 10
1 7

Пример вывода 3

12


Дано 2N точек P_1,P_2,\ldots,P_N, Q_1,Q_2,\ldots,Q_N на плоскости.
Координаты точки P_i равны (A_i, B_i), и координаты точки Q_i равны (C_i, D_i).
Никакие три различные точки не лежат на одной прямой.
Определите, существует ли такая перестановка R = (R_1, R_2, \ldots, R_N) из (1, 2, \ldots, N), которая удовлетворяет следующему условию. Если такая R существует, найдите её.

- Для каждого целого числа i от 1 до N, пусть отрезок i — это отрезок, соединяющий P_i и Q_{R_i}. Тогда отрезок i и отрезок j (1 \leq i < j \leq N) никогда не пересекаются.

Ввод

Вводится с стандартного ввода в следующем формате:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N
C_1 D_1
C_2 D_2
\vdots
C_N D_N

Вывод

Если нет такой R, удовлетворяющей условию, выведите -1.
Если такая R существует, выведите R_1, R_2, \ldots, R_N, разделенные пробелами. Если существует несколько решений, вы можете вывести любое из них.

Ограничения

- 1 \leq N \leq 300
- 0 \leq A_i, B_i, C_i, D_i \leq 5000 (1 \leq i \leq N)
- (A_i, B_i) \neq (A_j, B_j) (1 \leq i < j \leq N)
- (C_i, D_i) \neq (C_j, D_j) (1 \leq i < j \leq N)
- (A_i, B_i) \neq (C_j, D_j) (1 \leq i, j \leq N)
- Никакие три различные точки не лежат на одной прямой.
- Все входные значения — целые числа.

Пример ввода 1

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

Пример вывода 1

2 1 3

Точки расположены, как показано на следующем рисунке.

При установке R = (2, 1, 3), три отрезка не пересекаются. Также, любые из R = (1, 2, 3), (1, 3, 2), (2, 3, 1) и (3, 1, 2) являются допустимыми ответами.

Пример ввода 2

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

Пример вывода 2

3 5 8 2 7 4 6 1

На двумерной плоскости имеется 2N точек P_1,P_2,\ldots,P_N, Q_1,Q_2,\ldots,Q_N.
Координаты P_i это (A_i, B_i), а координаты Q_i это (C_i, D_i).
Никакие три разные точки не лежат на одной прямой.
Определите, существует ли перестановка R = (R_1, R_2, \ldots, R_N) из (1, 2, \ldots, N), которая удовлетворяет следующему условию. Если такой R существует, найдите его.

- Для каждого целого числа i от 1 до N пусть сегмент i будет отрезком линии, соединяющей P_i и Q_{R_i}.  Тогда сегмент i и сегмент j (1 \leq  i < j \leq N) никогда не пересекаются.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N
A_1 B_1
A_2 B_2
\vdots
A_N B_N
C_1 D_1
C_2 D_2
\vdots
C_N D_N

Вывод

Если нет R, удовлетворяющего условию, выведите -1.
Если такой R существует, выведите R_1, R_2, \ldots, R_N через пробел. Если существует несколько решений, вы можете вывести любое из них.

Ограничения

- 1 \leq N \leq 300
- 0 \leq A_i, B_i, C_i, D_i \leq 5000 (1 \leq i \leq N)
- (A_i, B_i) \neq (A_j, B_j) (1 \leq i < j \leq N)
- (C_i, D_i) \neq (C_j, D_j) (1 \leq i < j \leq N)
- (A_i, B_i) \neq (C_j, D_j) (1 \leq i, j \leq N)
- Никакие три разные точки не лежат на одной прямой.
- Все входные значения являются целыми числами.

Пример ввода 1

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

Пример вывода 1

2 1 3

Точки расположены так, как показано на следующем рисунке.

Установив R = (2, 1, 3), три отрезка линии не пересекаются друг с другом. Кроме того, любое из R = (1, 2, 3), (1, 3, 2), (2, 3, 1), и (3, 1, 2) является допустимым ответом.

Пример ввода 2

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

Пример вывода 2

3 5 8 2 7 4 6 1


Вам даны две целочисленные последовательности A и B, каждая длиной N. Выберите целые числа i, j (1 \leq i, j \leq N), чтобы максимизировать значение A_i + B_j.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

Вывод

Выведите максимально возможное значение A_i + B_j.

Ограничения

- 1 \leq N \leq 5 \times 10^5
- |A_i| \leq 10^9 (i=1,2,\dots,N)
- |B_j| \leq 10^9 (j=1,2,\dots,N)
- Все входные значения являются целыми числами.

Пример ввода 1

2
-1 5
3 -7

Пример вывода 1

8

Для (i,j) = (1,1), (1,2), (2,1), (2,2) значения A_i + B_j равны 2, -8, 8, -2 соответственно, а (i,j) = (2,1) достигает максимального значения 8.

Пример ввода 2

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

Пример вывода 2

33

Даны две целочисленные последовательности A и B, каждая из которых имеет длину N. Выберите целые числа i, j (1 \leq i, j \leq N), чтобы максимизировать значение A_i + B_j.

Ввод

Входные данные подаются из Стандартного ввода в следующем формате:
N
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

Выпуск

Выведите максимально возможное значение A_i + B_j.

Ограничения целостности

- 1 \leq N \leq 5 \times 10^5
- |A_i| \leq 10^9 (i=1,2,\dots,N)
- |B_j| \leq 10^9 (j=1,2,\dots,N)
- Все входные значения являются целыми числами.

Пример входных данных 1

2
-1 5
3 -7

Пример выходных данных 1

8

Для (i,j) = (1,1), (1,2), (2,1), (2,2) значения A_i + B_j равны 2, -8, 8, -2 соответственно, и (i,j) = (2,1) достигает максимального значения 8.

Пример входных данных 2

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

Пример выходных данных 2

33