Есть N спортивных игроков.
Среди них есть M несовместимых пар. i-я несовместимая пара (1\leq i\leq M) — это A_i-й и B_i-й игроки.
Вы разделите игроков на T команд.
Каждый игрок должен принадлежать ровно одной команде, и в каждой команде должен быть один или несколько игроков.
Кроме того, для каждого i=1,2,\ldots,M, A_i-й и B_i-й игроки не должны находиться в одной команде.
Найдите количество способов удовлетворить этим условиям.
Здесь два деления считаются различными, если есть два игрока, которые находятся в одной команде в одном делении и в разных командах в другом.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N T M
A _ 1 B _ 1
A _ 2 B _ 2
\vdots
A _ M B _ M

Вывод

Выведите ответ в одной строке.

Ограничения

- 1\leq T\leq N\leq10
- 0\leq M\leq\dfrac{N(N-1)}2
- 1\leq A _ i\lt B _ i\leq N\ (1\leq i\leq M)
- (A _ i,B _ i)\neq (A _ j,B _ j)\ (1\leq i\lt j\leq M)
- Все входные значения являются целыми числами.

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

5 2 2
1 3
3 4

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

4

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

Никакое другое деление им не удовлетворяет, поэтому выведите 4.

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

5 1 2
1 3
3 4

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

0

Может не быть делений, которые удовлетворяют условиям.

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

6 4 0

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

65

Может не быть несовместимых пар.

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

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

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

8001

Дано N спортивных игроков.
Среди них есть M несовместимых пар. i-я несовместимая пара (1\leq i\leq M) — A_i-й и B_i-й игроки.
Раздели игроков на T команд.
Каждый игрок должен принадлежать ровно одной команде, в каждой команде должен быть один или несколько игроков.
Кроме того, для каждого i=1,2,\ldots,M, A_i-й и B_i-й игроки не должны находиться в одной команде.
Найди количество способов удовлетворить этим условиям.
Два разделения считаются разными, если два игрока находятся в одной команде в одном разделении, но в другом — в разных командах.

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
N T M
A _ 1 B _ 1
A _ 2 B _ 2
\vdots
A _ M B _ M

Вывод

Выведи ответ в одной строке.

Ограничения

- 1\leq T\leq N\leq10
- 0\leq M\leq\dfrac{N(N-1)}2
- 1\leq A _ i\lt B _ i\leq N\ (1\leq i\leq M)
- (A _ i,B _ i)\neq (A _ j,B _ j)\ (1\leq i\lt j\leq M)
- Все входные значения являются целыми числами.

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

5 2 2
1 3
3 4

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

4

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

Никакое другое разделение им не удовлетворяет, поэтому выведи 4.

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

5 1 2
1 3
3 4

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

0

Может не быть разделений, которые удовлетворяют условиям.

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

6 4 0

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

65

Может не быть несовместимых пар.

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

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

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

8001

Есть N игроков.
Среди них есть M несовместимых пар. i-я несовместимая пара (1\leq i\leq M) — это игроки A_i-го и B_i-го.
Вы разделите игроков на T команд.
Каждый игрок должен принадлежать ровно к одной команде, и в каждой команде должен быть один или несколько игроков.
Кроме того, для каждого i=1,2,\ldots,M игроки A_i-го и B_i-го не должны принадлежать к одной команде.
Найдите количество способов выполнить эти условия.
Здесь два дивизиона считаются разными, когда в одном дивизионе есть два игрока, которые принадлежат к одной команде, а в другом — к разным командам.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N T M
A _ 1 B _ 1
A _ 2 B _ 2
\vdots
A _ M B _ M

Вывод

Выведите ответ в одну строку.

Ограничения

- 1\leq T\leq N\leq10
- 0\leq M\leq\dfrac{N(N-1)}2
- 1\leq A _ i\lt B _ i\leq N\ (1\leq i\leq M)
- (A _ i,B _ i)\neq (A _ j,B _ j)\ (1\leq i\lt j\leq M)
- Все входные значения являются целыми числами.

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

5 2 2
1 3
3 4

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

4

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

Никакое другое деление им не удовлетворяет, поэтому выведите 4.

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

5 1 2
1 3
3 4

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

0

Не может быть ни одного деления, удовлетворяющего условиям.

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

6 4 0

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

65

Несовместимых пар может не быть.

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

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

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

8001


У вас есть строка S длины N, состоящая из 0 и 1.
Она описывает последовательность длины N, A=(A _ 1,A _ 2,\ldots,A _ N). Если i-й символ строки S (1\leq i\leq N) равен 0, тогда A _ i=0; если он равен 1, тогда A _ i=1.
Найдите следующее:
\[\sum _ {1\leq i\leq j\leq N}(\cdots((A _ i\barwedge A _ {i+1})\barwedge A _ {i+2})\barwedge\cdots\barwedge A _ j)\]
Более формально, найдите \displaystyle\sum _ {i=1} ^ {N}\sum _ {j=i} ^ Nf(i,j) для f(i,j)\ (1\leq i\leq j\leq N), определенной следующим образом:
\[f(i,j)=\left\{\begin{matrix} A _ i&(i=j)\\ f(i,j-1)\barwedge A _ j\quad&(i\lt j) \end{matrix}\right.\]

Здесь \barwedge, NAND, является бинарным оператором, который удовлетворяет следующему:
\[0\barwedge0=1,0\barwedge1=1,1\barwedge0=1,1\barwedge1=0.\]

Ввод

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

Вывод

Выведите ответ в одной строке.

Ограничения

- 1\leq N\leq10^6
- S — строка длины N, состоящая из 0 и 1.
- Все входные значения являются целыми числами.

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

5
00110

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

9

Здесь значения f(i,j) для пар (i,j), таких что 1\leq i\leq j\leq N:

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

Их сумма составляет 0+1+0+1+1+0+1+0+1+1+0+1+1+1+0=9, поэтому выводите 9.
Обратите внимание, что \barwedge не удовлетворяет свойству ассоциативности.
Например, (1\barwedge1)\barwedge0=0\barwedge0=1\neq0=1\barwedge1=1\barwedge(1\barwedge0).

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

30
101010000100101011010011000010

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

326


У нас есть N игральных костей.
Для каждого i = 1, 2, \ldots, N, когда бросается i-я игральная кость, она показывает случайное целое число от 1 до A_i включительно с равной вероятностью.
Определите вероятность по модулю 998244353 того, что следующее условие будет выполнено, когда N игральных костей будут брошены одновременно.

Существует способ выбрать некоторые (возможно, все) из N игральных костей так, чтобы сумма их результатов была равна 10.

Как найти вероятность по модулю 998244353
Можно доказать, что искомая вероятность всегда является рациональным числом. Кроме того, ограничения этой задачи гарантируют, что если искомая вероятность представлена в виде несократимой дроби \frac{y}{x}, то x не делится на 998244353. Здесь существует уникальное целое число z, такое что xz \equiv y \pmod{998244353}. Сообщите об этом z.

Ввод

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

Вывод

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

Ограничения

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

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

4
1 7 2 9

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

942786334

Например, если на первой, второй, третьей, и четвертой игральной кости выпало 1, 3, 2, и 7 соответственно, эти результаты удовлетворяют условию.
Фактически, если выбраны вторая, и четвертая кости, сумма их результатов равна 3 + 7 = 10.
В качестве альтернативы, если выбраны первая, третья, и четвертая кости, сумма их результатов равна 1 + 2 + 7 = 10.
С другой стороны, если первая, вторая, третья, и четвертая кости показывают 1, 6, 1, и 5 соответственно, нет возможности выбрать некоторые из них так, чтобы сумма их результатов была 10, поэтому условие не выполняется.
В этом примере ввода вероятность того, что результаты N костей удовлетворят условию, равна \frac{11}{18}.
Таким образом, выведите это значение по модулю 998244353, т. е. 942786334.

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

7
1 10 100 1000 10000 100000 1000000

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

996117877

У нас есть N кубиков.
Для каждого i = 1, 2, \ldots, N, когда выбрасывается i-й кубик, он показывает случайное целое число от 1 до A_i включительно с равной вероятностью.
Найдите вероятность, по модулю 998244353, что следующее условие выполнено, когда N кубиков выброшены одновременно.

Существует способ выбрать некоторые (возможно, все) из N кубиков так, чтобы сумма их результатов была равна 10.

Как найти вероятность по модулю 998244353
Доказывается, что искомая вероятность всегда является рациональным числом. Кроме того, ограничения этой задачи гарантируют, что если искомая вероятность представлена в виде несократимой дроби \frac{y}{x}, то x не делится на 998244353. Здесь существует уникальное целое число z такое, что xz \equiv y \pmod{998244353}. Сообщите это z.

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

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

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

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

Ограничения

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

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

4
1 7 2 9

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

942786334

Например, если первый, второй, третий и четвертый кубики показывают 1, 3, 2 и 7 соответственно, эти результаты удовлетворяют условию.
Фактически, если выбраны второй и четвертый кубики, сумма их результатов равна 3 + 7 = 10.
Альтернативно, если выбраны первый, третий и четвертый кубики, сумма их результатов равна 1 + 2 + 7 = 10.
С другой стороны, если первый, второй, третий и четвертый кубики показывают 1, 6, 1 и 5 соответственно, нет способа выбрать некоторые из них так, чтобы сумма их результатов была равна 10, поэтому условие не выполнено.
В случае этого примера, вероятность того, что результаты N кубиков удовлетворяют условию, равна \frac{11}{18}.
Таким образом, выведите это значение по модулю 998244353, то есть 942786334.

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

7
1 10 100 1000 10000 100000 1000000

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

996117877

У нас есть N игральных костей.
Для каждого i = 1, 2, \ldots, N, когда бросается i-я игральная кость, она показывает случайное целое число от 1 до A_i включительно с равной вероятностью.
Определите вероятность по модулю 998244353 того, что следующее условие будет выполнено, когда N игральных костей будут брошены одновременно.

Существует способ выбрать некоторые (возможно, все) из N игральных костей так, чтобы сумма их результатов была равна 10.

Как найти вероятность по модулю 998244353
Можно доказать, что искомая вероятность всегда является рациональным числом. Кроме того, ограничения этой задачи гарантируют, что если искомая вероятность представлена в виде несократимой дроби \frac{y}{x}, то x не делится на 998244353. Здесь существует уникальное целое число z, такое что xz \equiv y \pmod{998244353}. Сообщите об этом z.

Ввод

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

Вывод

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

Ограничения

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

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

4
1 7 2 9

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

942786334

Например, если на первой, второй, третьей и четвертой игральной кости выпало 1, 3, 2 и 7 соответственно, эти результаты удовлетворяют условию.
Фактически, если выбраны вторая и четвертая кости, сумма их результатов равна 3 + 7 = 10.
В качестве альтернативы, если выбраны первая, третья и четвертая кости, сумма их результатов равна 1 + 2 + 7 = 10.
С другой стороны, если первая, вторая, третья и четвертая кости показывают 1, 6, 1 и 5 соответственно, нет возможности выбрать некоторые из них так, чтобы сумма их результатов была 10, поэтому условие не выполняется.
В этом примере ввода вероятность того, что результаты N костей удовлетворят условию, равна \frac{11}{18}.
Таким образом, выведите это значение по модулю 998244353, то есть 942786334.

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

7
1 10 100 1000 10000 100000 1000000

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

996117877


Вам дана строка S, состоящая из A, B и C. Гарантируется, что S содержит все A, B и C.
Если проверять символы S по одному слева направо, сколько символов будет проверено, когда следующее условие выполнится в первый раз?

- Все A, B и C встретились хотя бы один раз.

Ввод

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

Вывод

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

Ограничения

- 3 \leq N \leq 100
- S — строка длины N, состоящая из A, B и C.
- S содержит все A, B и C.

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

5
ACABB

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

4

В первых четырёх символах слева A, B и C появляются дважды, один раз и один раз соответственно, удовлетворяя условию.
Условие не выполнено при проверке трёх или менее символов, поэтому ответ 4.

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

4
CABC

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

3

В первых трёх символах слева A, B и C появляются по одному разу, удовлетворяя условию.

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

30
AABABBBABABBABABCABACAABCBACCA

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

17

Вам дана строка S, состоящая из A, B и C. S гарантированно содержит все A, B и C.
Если символы S проверяются по одному слева, сколько символов будет проверено, когда следующее условие будет выполнено в первый раз?

- Все A, B и C появились хотя бы один раз.

Ввод

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

Вывод

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

Ограничения

- 3 \leq N \leq 100
- S — это строка длины N, состоящая из A, B и C.
- S содержит все A, B и C.

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

5
ACABB

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

4

В первых четырех символах слева A, B и C появляются дважды, один раз и один раз соответственно, что удовлетворяет условию.
Условие не выполняется при проверке трех или менее символов, поэтому ответ — 4.

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

4
CABC

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

3

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

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

30
AABABBBABABABABCABACAABCBACCA

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

17

Вам дают строкуS, состоящую из A, B и C. S, гарантированно содержит все A, B и C.
Если символы S проверяются один за другим слева, сколько символов будет проверено, когда следующее условие будет выполнено в первый раз?

- Все A, B и C появились хотя бы один раз.

Вход

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

Выход

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

Ограничения

- 3 \leq N \leq 100
-S — строка длины N, состоящая из A, B и C.
-S содержит все A, B и C.

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

5
ACABB

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

4

В первых четырех символах слева A, B и C появляются дважды, один раз и один раз, соответственно, удовлетворяя условию.
Условие не удовлетворяется проверкой трех или менее символов, поэтому ответ 4.

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

4
CABC

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

3

В первых трех символах слева каждый из A, B и C появляется один раз, удовлетворяя условию.

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

30
AABABBBABABBABABCABACAABCBACCA

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

17


Имеется N человек, пронумерованных от 1 до N.
Вам дано их расписание на следующие D дней. Расписание для человека i представлено строкой S_i длины D. Если j-й символ S_i — 'o', человек i свободен в j-й день; если это 'x', он занят в этот день.
Из этих D дней рассматривается возможность выбора некоторых последовательных дней, когда все люди свободны.
Сколько дней можно выбрать максимально? Если ни одного дня выбрать нельзя, укажите 0.

Ввод

Ввод предоставляется в следующем формате:
N D
S_1
S_2
\vdots
S_N

Вывод

Выведите максимальное количество дней, которое можно выбрать, или 0, если ни одного дня выбрать нельзя.

Ограничения

- 1 \leq N \leq 100
- 1 \leq D \leq 100
- N и D  — целые числа.
- S_i — строка длины D, состоящая из символов 'o' и 'x'.

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

3 5
xooox
oooxx
oooxo

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

2

Все люди свободны во второй и третий день, так что мы можем выбрать их.
Выбор этих двух дней максимально увеличит количество дней среди всех возможных вариантов выбора.

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

3 3
oxo
oxo
oxo

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

1

Обратите внимание, что выбранные дни должны быть последовательными. (Все люди свободны в первый и третий день, так что мы можем выбрать любой из них, но не оба.)

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

3 3
oox
oxo
xoo

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

0

Напечатайте 0, если ни один день не может быть выбран.

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

1 7
ooooooo

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

7

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

5 15
oxooooooooooooo
oxooxooooooooox
oxoooooooooooox
oxxxooooooxooox
oxooooooooxooox

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

5

Имеется N человек, пронумерованных от 1 до N.
Вам дано их расписание на следующие D дней. Расписание для человека i представлено строкой S_i длины D. Если j-й символ S_i - o, то человек i свободен в j-й день; если x, то он занят в этот день.
Из этих D дней выберите несколько последовательных дней, когда все люди свободны.
Сколько дней максимум можно выбрать? Если ни один день не может быть выбран, сообщите 0.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N D
S_1
S_2
\vdots
S_N

Вывод

Выведите максимальное количество дней, которое можно выбрать, или 0, если день выбрать невозможно.

Ограничения

- 1 \leq N \leq 100
- 1 \leq D \leq 100
- N и D являются целыми числами.
- S_i это строка длины D, состоящая из o и x.

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

3 5
xooox
oooxx
oooxo

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

2

Во второй и третий дни все люди свободны, поэтому мы можем их выбрать.
Выбор этих двух дней позволит максимально увеличить количество дней среди всех возможных вариантов.

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

3 3
oxo
oxo
oxo

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

1

Обратите внимание, что выбранные дни должны быть последовательными. (В первый и третий дни все люди свободны, поэтому мы можем выбрать любого из них, но не обоих.)

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

3 3
oox
oxo
xoo

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

0

Выведите 0, если день не может быть выбран.

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

1 7
ооооооо

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

7

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

5 15
oxooooooooooooo
oxooxooooooooox
oxoooooooooooox
oxxxooooooxooox
oxooooooooxooox

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

5


Дан направленный граф с N вершинами и N рёбрами.
i-е ребро идёт от вершины i к вершине A_i. (Ограничения гарантируют, что i \neq A_i.)
Найдите направленный цикл без повторяющихся вершин.
Можно показать, что решение существует при данных ограничениях задачи.

Заметки
Последовательность вершин B = (B_1, B_2, \dots, B_M) называется направленным циклом, если выполнены все следующие условия:

- M \geq 2
- Существует ребро из вершины B_i в вершину B_{i+1}. (1 \leq i \leq M-1)
- Существует ребро из вершины B_M в вершину B_1.
- Если i \neq j, то B_i \neq B_j.

Ввод

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

Вывод

Выведите решение в следующем формате:
M
B_1 B_2 \dots B_M

M — это количество вершин, а B_i — это i-я вершина в направленном цикле.
Должны быть выполнены следующие условия:

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

Если существует несколько решений, любое из них будет принято.

Ограничения

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

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

7
6 7 2 1 3 4 5

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

4
7 5 3 2

7 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 7 — это действительно направленный цикл.
Вот граф, соответствующий этому вводу:

Вот другие приемлемые выходы:
4
2 7 5 3

3
4 1 6

Обратите внимание, что граф может быть несвязным.

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

2
2 1

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

2
1 2

Этот случай содержит оба ребра 1 \rightarrow 2 и 2 \rightarrow 1.
В этом случае 1 \rightarrow 2 \rightarrow 1 — это действительно направленный цикл.
Вот граф, соответствующий этим входным данным, где 1 \leftrightarrow 2 представляет существование обоих 1 \rightarrow 2 и 2 \rightarrow 1:

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

8
3 7 4 7 3 3 8 2

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

3
2 7 8

Вот граф, соответствующий этому вводу:

BИмеется направленный граф с N вершинами и N ребрами.
i-е ребро идет из вершины i в вершину A_i. (Ограничения гарантируют, что i \neq A_i.)
Найдите направленный цикл без одной и той же вершины, встречающейся несколько раз.
Можно показать, что решение существует при ограничениях этой задачи.
Примечания
Последовательность вершин B = (B_1, B_2, \dots, B_M) называется направленным циклом, если выполняются все следующие условия:

- M \geq 2
- Ребро из вершины B_i в вершину B_{i+1} существует. (1 \leq i \leq M-1)
- Ребро из вершины B_M в вершину B_1 существует.
- Если i \neq j, то B_i \neq B_j.

Ввод

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

Вывод

Выведите решение в следующем формате:
M
B_1 B_2 \dots B_M

M — количество вершин, а B_i — i-я вершина в направленном цикле.

Должны быть выполнены следующие условия:

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

Если существует несколько решений, любое из них будет принято.

Ограничения

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

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

7
6 7 2 1 3 4 5

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

4
7 5 3 2

7 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 7 действительно является направленным циклом.

Вот граф, соответствующий этому вводу:

Вот другие допустимые выводы:
4
2 7 5 3

3
4 1 6

Обратите внимание, что граф может быть несвязным.

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

2
2 1

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

2
1 2

Этот случай содержит оба ребра 1 \rightarrow 2 и 2 \rightarrow 1.
В этом случае 1 \rightarrow 2 \rightarrow 1 действительно является направленным циклом.
Вот график, соответствующий этому входу, где 1 \leftrightarrow 2 представляет существование как 1 \rightarrow 2, так и 2 \rightarrow 1:

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

8
3 7 4 7 3 3 8 2

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

3
2 7 8

Вот график, соответствующий этому входу:


На сетке размером N \times M находится игрок.
Пусть (i,j) обозначает клетку в i-й строке сверху и j-й столбец слева на этой сетке.
Каждая клетка этой сетки — это лед или камень, представленный N строками S_1,S_2,\dots,S_N длины M следующим образом:

- если j-й символ S_i — ., клетка (i,j) — это лед;
- если j-й символ S_i — #, клетка (i,j) — это камень.

Внешняя периферия этой сетки (все клетки в 1-й строке, N-й строке, 1-м столбце, M-м столбце) состоит из камня.
Изначально игрок находится на клетке (2,2), которая является льдом.
Игрок может выполнять следующее движение ноль или более раз.

- Сначала указывается направление движения: вверх, вниз, влево или вправо.
- Затем, продолжать двигаться в этом направлении, пока игрок не натолкнется на камень. Формально, выполнять следующее:
- если следующая клетка в направлении движения — это лед, перейти на эту клетку и продолжать двигаться;
- если следующая клетка в направлении движения — это камень, остаться на текущей клетке и прекратить движение.

Найдите количество ледяных клеток, к которым игрок может прикоснуться (пройти или остановиться на).

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

Входные данные поступают из стандартного ввода в следующем формате:
N M
S_1
S_2
\vdots
S_N

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

Выведите ответ в виде целого числа.

Ограничения

- 3 \le N,M \le 200
- S_i — строка длины M, состоящая из # и ..
- Клетка (i, j) — это камень, если i=1, i=N, j=1, или j=M.
- Клетка (2,2) — это лед.

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

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

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

12

Например, игрок может остановиться на (5,5), продвигаясь следующим образом:

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

Игрок может пройти через (2,4), двигаясь следующим образом:

- (2,2) \rightarrow (2,5), проходя при этом через (2,4).

Игрок не может пройти или остановиться на (3,4).

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

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

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

215

Есть сетка размером N \times M и игрок, стоящий на ней.
Пусть (i,j) обозначает квадрат в i-й строке сверху и j-м столбце слева этой сетки.
Каждый квадрат этой сетки — лед или камень, который представлен N строками S_1,S_2,\dots,S_N длиной M следующим образом:

- если j-й символ S_i — ., квадрат (i,j) — лед;
- если j-й символ S_i — #, квадрат (i,j) — камень.

Внешняя периферия этой сетки (все квадраты в 1-й строке, N-й строке, 1-м столбце, M-м столбце) — камень.
Изначально игрок стоит на квадрате (2,2), который является льдом.
Игрок может сделать следующий ход ноль или более раз.

- Сначала укажите направление движения: вверх, вниз, влево или вправо.
- Затем продолжайте движение в этом направлении, пока игрок не упрется в камень. Формально продолжайте выполнять следующие действия:
- если следующий квадрат в направлении движения — лед, перейдите к этому квадрату и продолжайте движение;
- если следующий квадрат в направлении движения — камень, оставайтесь на текущем квадрате и прекратите движение.

Найдите количество ледяных квадратов, которых игрок может коснуться (пройти или отдохнуть).

Ввод

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

Вывод

Выведите ответ в виде целого числа.

Ограничения

- 3 \le N,M \le 200
- S_i — это строка длиной M, состоящая из # и ..
- Квадрат (i, j) — это камень, если i=1, i=N, j=1 или j=M.
- Квадрат (2,2) — это лед.

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

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

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

12

Например, игрок может остановиться на (5,5), переместившись следующим образом:

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

Игрок может пройти мимо (2,4), переместившись следующим образом:

- (2,2) \rightarrow (2,5), пройдя мимо (2,4) в процессе.

Игрок не может пройти мимо или остановиться на (3,4).

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

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

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

215


Дана сетка с H строками и W столбцами. Пусть (i, j) обозначает клетку на i-й строке сверху и j-м столбце слева от сетки.
Каждая клетка сетки является пробитой или нет. Всего есть N пробитых клеток: (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Когда тройка положительных целых чисел (i, j, n) удовлетворяет следующему условию, область сетки, где верхний левый угол (i, j) и нижний правый угол (i + n - 1, j + n - 1), называется неповрежденным квадратом.

- i + n - 1 \leq H.
- j + n - 1 \leq W.
- Для любой пары неотрицательных целых чисел (k, l) таких, что 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, клетка (i + k, j + l) не пробита.

Сколько всего неповрежденных квадратов в сетке?

Ввод

Ввод поступает из стандартного ввода в следующем формате:
H W N
a_1 b_1
a_2 b_2
\vdots
a_N b_N

Вывод

Выведите количество неповрежденных квадратов.

Ограничения

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min(H \times W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Все (a_i, b_i) попарно различны.
- Все входные значения целые числа.

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

2 3 1
2 3

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

6

Есть шесть неповрежденных квадратов, перечисленных ниже. Для первых пяти n = 1, и верхний левый и нижний правый углы — одна и та же клетка.

- Область сетки, где верхний левый и нижний правый углы (1, 1).
- Область сетки, где верхний левый и нижний правый углы (1, 2).
- Область сетки, где верхний левый и нижний правый углы (1, 3).
- Область сетки, где верхний левый и нижний правый углы (2, 1).
- Область сетки, где верхний левый и нижний правый углы (2, 2).
- Область сетки, где верхний левый угол (1, 1) и нижний правый угол (2, 2).

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

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

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

0

Может не быть неповрежденных квадратов.

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

1 1 0

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

1

Вся сетка может быть неповрежденным квадратом.

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

3000 3000 0

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

9004500500

Имеется сетка с H строк и W столбцов. Пусть (i, j) обозначает квадрат в i-й строке сверху и j-м столбце слева от сетки.
Каждый квадрат сетки имеет отверстия или нет. Имеется ровно N ячеек с отверстиями: (a_1, b_1), (a_2, b_2), \dots, (a_N, b_N).
Когда тройка натуральных чисел (i, j, n) удовлетворяет следующему условию, квадратная область, левый верхний угол которой равен (i, j), а правый нижний угол равен (i + n - 1, j + n - 1) называется бездырочным квадратом.

- i + n - 1 \leq H.
- j + n - 1 \leq W.
- Для каждой пары целых неотрицательных чисел (k, l) таких, что 0 \leq k \leq n - 1, 0 \leq l \leq n - 1, квадрат (i + k, j + l) не является дырочным.

Сколько квадратов без дырок в сетке?

Вход

Входные данные передаются из стандартного ввода в следующем формате:
H W N
a_1 b_1
a_2 b_2
\vdots
a_N b_N

Выход

Выведите количество квадратов без дырок.

Ограничения

- 1 \leq H, W \leq 3000
- 0 \leq N \leq \min(H \times W, 10^5)
- 1 \leq a_i \leq H
- 1 \leq b_i \leq W
- Все (a_i, b_i) попарно различны.
- Все входные значения являются целыми числами.

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

2 3 1
2 3

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

6

Существует шесть квадратов без отверстий, перечисленных ниже. Для первых пяти n = 1, а верхний левый и нижний правый углы — один и тот же квадрат.

- Квадратная область, левый верхний и правый нижний углы которой равны (1, 1).
- Квадратная область, левый верхний и правый нижний углы которой равны (1, 2).
- Квадратная область, левый верхний и правый нижний углы которой равны (1, 3).
- Квадратная область, левый верхний и правый нижний углы которой равны (2, 1).
- Квадратная область, левый верхний и правый нижний углы которой равны (2, 2).
- Квадратная область, левый верхний угол которой равен (1, 1), а правый нижний угол — (2, 2).

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

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

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

0

Не может быть квадрата без отверстий.

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

1 1 0

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

1

Вся сетка может представлять собой квадрат без отверстий.

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

3000 3000 0

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

9004500500


Дана строка S длиной 3, состоящая из заглавных английских букв, вывести Yes, если S равно одному из ACE, BDF, CEG, DFA, EGB, FAC и GBD; в противном случае вывести No.

Ввод

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

Вывод

Вывести Yes, если S равно одному из ACE, BDF, CEG, DFA, EGB, FAC и GBD; в противном случае вывести No.

Ограничения

- S — строка длиной 3, состоящая из заглавных английских букв.

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

ABC

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

No

Когда S = ABC, S не равно ни одному из ACE, BDF, CEG, DFA, EGB, FAC и GBD, поэтому следует вывести No.

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

FAC

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

Yes

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

XYX

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

No

Дана строка S длиной 3, состоящая из заглавных английских букв. Напечатайте Yes, если S равна одной из ACE, BDF, CEG, DFA, EGB, FAC или GBD; в противном случае напечатайте No.

Ввод

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

Output

Напечатайте Yes, если S равна одной из ACE, BDF, CEG, DFA, EGB, FAC или GBD; в противном случае напечатайте No.

Ограничения

- S — строка длиной 3, состоящая из заглавных английских букв.

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

ABC

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

No

Когда S = ABC, S не равна ни одной из ACE, BDF, CEG, DFA, EGB, FAC или GBD, поэтому должно быть напечатано No.

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

FAC

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

Yes

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

XYX

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

No

Учитывая строку длиной 3, состоящую из английских букв с прописными, Вывести Да, если S равен одному из ACE, BDF, CEG, DFA, EGB, FAC и GBD; Вывести Нет иначе.

Вход

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

Выход

Вывести Да, если S равен одному из ACE, BDF, CEG, DFA, EGB, FAC  и GBD; Вывести Нет иначе.

Ограничения

- S — это строка длины 3, состоящая из заглавных английских букв.

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

ABC

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

No

Когда S = ABC, S не равен ни одному из ACE, BDF, CEG, DFA, EGB, FAC и GBD, поэтому должно быть напечатано Нет.

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

FAC

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

Yes

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

XYX

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

No


Такахаси изобрел ТаК Код — двумерный код. ТаК Код удовлетворяет всем следующим условиям:

- Это область, состоящая из девяти горизонтальных рядов и девяти вертикальных столбцов.
- Все 18 ячеек в левом верхнем и правом нижнем трех-на-три регионах черные.
- Все 14 ячеек, смежные (по горизонтали, вертикали или диагонали) с левым верхним или правым нижним трех-на-три регионом, белые.

Нельзя вращать ТаК Код.
Вам дана сетка с N горизонтальными рядами и M вертикальными столбцами.
Состояние сетки описывается N строками, S_1,\ldots, и S_N, каждая длиной M. Ячейка в i-ом ряду сверху и j-ом столбце слева черная, если j-ый символ S_i — #, и белая, если это ..
Найдите все девять-на-девять региона, полностью содержащиеся в сетке, которые соответствуют условиям ТаК Кода.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N M
S_1
\vdots
S_N

Вывод

Для всех пар (i,j), таких что девять-на-девять регион, верхняя левая ячейка которого находится в i-ом ряду сверху и j-ом столбце слева, удовлетворяет условиям ТаК Кода, напечатайте строку, содержащую i, пробел и j в этом порядке.
Пары должны быть отсортированы в лексикографическом порядке по возрастанию; то есть i должны быть в порядке возрастания, а внутри одного i j должны быть по возрастанию.

Ограничения

- 9 \leq N,M \leq 100
- N и M — целые числа.
- S_i — строка длиной M, состоящая из . и #.

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

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

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

1 1
1 10
7 7
10 2

аК Код выглядит следующим образом, где # — это черная ячейка, . — белая ячейка, а ? может быть как черной, так и белой.
###.?????
###.?????
###.?????
....?????
?????????
?????....
?????.###
?????.###
?????.###

В сетке, заданной вводом, девять-на-девять регион, верхняя левая ячейка которого находится в 10-ом ряду сверху и 2-ом столбце слева, удовлетворяет условиям ТаК Кода, как показано ниже.
###......
###......
###......
.........
..##.....
..##.....
......###
......###
......###

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

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

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

1 1

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

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

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

Может не быть регионов, удовлетворяющих условиям ТаК Кода.

Такахаши изобрел Tak Code, двумерный код. TaK Code удовлетворяет всем следующим условиям:

- Это область, состоящая из девяти горизонтальных строк и девяти вертикальных столбцов.
- Все 18 ячеек в верхней левой и нижней правой трех-на-три областях черные.
- Все 14 ячеек, которые примыкают (по горизонтали, вертикали или диагонали) к верхней левой или нижней правой трех-на-три области, белые.

Нельзя вращать ТаК Код.
Вам дана сетка с N горизонтальными рядами и M вертикальными столбцами.
Состояние сетки описывается N строками, S_1,\ldots, и S_N, каждая длиной M. Ячейка в i-ом ряду сверху и j-ом столбце слева черная, если j-ый символ S_i — #, и белая, если это ..
Найдите все девять-на-девять региона, полностью содержащиеся в сетке, которые соответствуют условиям ТаК Кода.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N M
S_1
\vdots
S_N

Вывод

Для всех пар (i,j), таких что девять-на-девять регион, верхняя левая ячейка которого находится в i-ом ряду сверху и j-ом столбце слева, удовлетворяет условиям ТаК Кода, напечатайте строку, содержащую i, пробел и j в этом порядке.
Пары должны быть отсортированы в лексикографическом порядке по возрастанию; то есть i должны быть в порядке возрастания, а внутри одного i j должны быть по возрастанию.

Ограничения

9 \leq N,M \leq 100
N и M — целые числа.
S_i — строка длиной M, состоящая из . и #.
Пример ввода 1

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

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

1 1
1 10
7 7
10 2

ТаК Код выглядит следующим образом, где # — это черная ячейка, . — белая ячейка, а ? может быть как черной, так и белой.
###.?????
###.?????
###.?????
....?????
?????????
?????....
?????.###
?????.###
?????.###

В сетке, заданной вводом, девять-на-девять регион, верхняя левая ячейка которого находится в 10-ом ряду сверху и 2-ом столбце слева, удовлетворяет условиям ТаК Кода, как показано ниже.
###......
###......
###......
.........
..##.....
..##.....
......###
......###
......###

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

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

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

1 1

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

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

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

Может не быть регионов, удовлетворяющих условиям ТаК Кода.

Такахаши изобрел код TaK, двумерный код. Код TaK удовлетворяет всем следующим условиям:

- Это область, состоящая из девяти горизонтальных рядов и девяти вертикальных колонн.
-Все 18 ячеек в верхнем левом и нижнем правом трех-на-три блоках черные.
-Все 14 ячейки, которые являются соседними (горизонтально, вертикально или диагонали) к верхней левой или правой нижней части трех на три района, являются белыми.

Это не разрешено вращать код TaK.
Вам дана сетка с N горизонтальными рядами и M вертикальными столбцами.
Состояние сетки описывается N строками,S_1, \ ldots и S_N, каждая из длина M. Ячейка в th i-й из верхней и j-ом слева-черная, если J-й символ S_i  #, и белый, если это так ..
Найдите все девять девяти областей, полностью содержащихся в сетке, которые удовлетворяют условиям кода TaK.

Вход

Ввод приведен из стандартного ввода в следующем формате:
N M
S_1
\vdots
S_N

Выход

Для всех пар (i, j) так, что регион девять на девять, чья верхняя левая ячейка находится в ряду I-TH от верхней и J-й столбца слева, удовлетворяет условиям кода TAK, Распечатайте линию, содержащую I, пространство и J в этом порядке.
Пары должны быть отсортированы в лексикографическом порядке восхождения; я должен быть в порядке возрастания, и в рамках того же i, J должен быть в порядке возрастания.

Ограничения

-9 \leq N,M \leq 100
-N и M — целые числа.
-S_i — строка длиной M, состоящая из . и #.

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

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

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

1 1
1 10
7 7
10 2

Код TAK выглядит следующим образом, где # - черная ячейка. Белая ячейка, и? Может быть либо черным, либо белым.
###. ?????
###. ?????
###. ?????
.... ?????
?????????
????? ....
?????. ###
?????. ###
?????. ###

В сетке, заданной входной областью, область девяти на девять, верхняя левая ячейка которого находится в 10-й строке из верхнего и 2-ND-столбца слева, удовлетворяет условиям кода TAK, как показано на рисунке ниже.
### ......
### ......
### ......
.........
.. ## .....
.. ## .....
...... ###
...... ###
...... ###

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

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

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

1 1

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

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

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

Может не быть региона, который удовлетворяет условиям кода TaK.


На рынке яблок есть N продавцов и M покупателей.
i-й продавец может продать яблоко за A_i иен или больше (иена — валюта Японии).
i-й покупатель может купить яблоко за B_i иен или меньше.
Найдите минимальное целое число X, удовлетворяющее следующему условию.
Условие: количество людей, которые могут продать яблоко за X иен, больше или равно количеству людей, которые могут купить яблоко за X иен.

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

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

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

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

Ограничения

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

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

3 4
110 90 120
100 80 120 10000

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

110

Два продавца, 1-й и 2-й, могут продать яблоко за 110 иен; два покупателя, 3-й и 4-й, могут купить яблоко за 110 иен. Таким образом, 110 удовлетворяет условию.
Поскольку целое число меньше 110 не удовлетворяет условию, это и есть ответ.

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

5 2
100000 100000 100000 100000 100000
100 200

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

201

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

3 2
100 100 100
80 120

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

100

На яблочном рынке есть N продавцов и M покупателей.
i-й продавец может продать яблоко за A_i йен или больше (йена — валюта в Японии).
i-й покупатель может купить яблоко за B_i йен или меньше.
Найдите минимальное целое число X, которое удовлетворяет следующему условию.
Условие: число людей, которые могут продать яблоко за X йен, больше или равно числу людей, которые могут купить яблоко за X йен.

Ввод

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

Вывод

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

Ограничения

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

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

3 4
110 90 120
100 80 120 10000

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

110

Два продавца, 1-й и 2-й, могут продать яблоко за 110 йен; два покупателя, 3-й и 4-й, могут купить яблоко за 110 йен. Таким образом, 110 удовлетворяет условию. Поскольку целое число меньше 110 не удовлетворяет условию, это и есть ответ.

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

5 2
100000 100000 100000 100000 100000
100 200

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

201

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

3 2
100 100 100
80 120

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

100


Вам дана непустая строка S, состоящая из символов (, ) и ?.
Существует 2^x способов получить новую строку, заменяя каждый ? в S на ( и ), где x — количество вхождений ? в S. Среди них найдите количество, по модулю 998244353, способов, которое приводит к получению строки скобок.
Строка называется строкой скобок, если выполняется одно из следующих условий.

- Это пустая строка.
- Это конкатенация (, A и ), где A — строка скобок.
- Это конкатенация A и B, где A и B — непустые строки скобок.

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

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

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

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

Ограничения

- S — непустая строка длиной не более 3000, состоящая из символов (, ) и ?.

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

(???(?

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

2

Замена S на ()()() или (())() приводит к строке скобок.
Другие замены не приводят к строке скобок, поэтому следует вывести 2.

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

)))))

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

0

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

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

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

603032273

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

Вам дана непустая строка S, состоящая из (, ), и ?.
Существует 2^x способов получить новую строку, заменив каждый ? в S с ( и ), где x это количество вхождений ? в S. Найдите среди них количество по модулю 998244353 способов, которые дают строку из правильно расставленных скобок
Строка называется строкой в круглых скобках, если выполняется одно из следующих условий.

- Это пустая строка.
- Это объединение (, A, и ) для некоторой строки из правильно расставленных скобок A.
- Это объединение A и B для некоторых непустых строк в круглых скобках A и B.

Ввод

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

Вывод

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

Ограничения

- S это непустая строка длиной не более 3000, состоящая из  (, ), и ?.

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

(???(?

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

2

Замена S на ()()() или (())() дает строку в круглых скобках.
Другие замены не дают строку в круглых скобках, поэтому следует вывести 2.

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

)))))

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

0

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

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

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

603032273

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

Вам дается непустая строка S, состоящая из (, ), и ?.
Существует 2^x способа получить новую строку путем замены каждой ? в S на ( и ), где x - количество вхождений ? в С.  Среди них найдите число способов по модулю 998244353, дающих строку в скобках.
Строка называется строкой в скобках, если выполняется одно из следующих условий.

- Это пустая строка.
- Это конкатенация (, A и ), для некоторой строки в скобках A.
- Это конкатенация A и B для некоторых строк в скобках A и B.

Input

The input is given from Standard Input in the following format:
S

Output

Print the answer.

Constraints

- S is a non-empty string of length at most 3000 consisting of (, ), and ?.

Sample Input 1

(???(?

Sample Output 1

2

Replacing S with ()()() or (())() yields a parenthesis string.
The other replacements do not yield a parenthesis string, so 2 should be printed.

Sample Input 2

)))))

Sample Output 2

0

Sample Input 3

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

Sample Output 3

603032273

Print the count modulo 998244353.


В трехмерном пространстве имеется N прямоугольных кубоидов.
Эти кубоиды не перекрываются. Формально, для любых двух различных кубоидов среди них их пересечение имеет объем 0.
Диагональ i-го кубоида — это отрезок, соединяющий две точки (X_{i,1},Y_{i,1},Z_{i,1}) и (X_{i,2},Y_{i,2},Z_{i,2}), и все его ребра параллельны одной из осей координат.
Для каждого кубоида найдите количество других кубоидов, которые имеют общую с ним грань.
Формально, для каждого i найдите количество j с 1\leq j \leq N и j\neq i, таких, что пересечение поверхностей i-го и j-го кубоидов имеет положительную площадь.

Ввод

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

Вывод

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

Ограничения

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Кубоиды не имеют пересечения с положительным объемом.
- Все входные значения являются целыми числами.

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

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

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

1
1
0
0

1-й и 2-й кубоиды имеют общий прямоугольник, диагональ которого является отрезком, соединяющим две точки (0,0,1) и (1,1,1).
1-й и 3-й кубоиды имеют общую точку (1,1,1), но не общую поверхность.

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

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

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

2
1
1

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

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

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

3
3
3
3
3
3
3
3

Существует N прямоугольных кубоидов в трехмерном пространстве.
Эти кубоиды не пересекаются.  Формально, для любых двух различных кубоидов между ними их пересечение имеет объём 0.
Диагональ i-го кубоида представляет собой сегмент, соединяющий две точки (X_{i,1},Y_{i,1},Z_{i,1}) и (X_{i,2},Y_{i,2},Z_{i,2}), и все его края параллельны одной из координатных осей.
Для каждого кубоида, найдите количество других кубоидов, которые имеют одно лицо.
Формально, для каждого i, найти число 1\leq j \leq N и j\neq i таким образом, что пересечение поверхностей i-х и j-х кубоидов имеет положительную площадь.

Ввод

Данные, полученные из стандартного ввода, представлены в следующем формате:
N
X_{1,1} Y_{1,1} Z_{1,1} X_{1,2} Y_{1,2} Z_{1,2}
\vdots
X_{N,1} Y_{N,1} Z_{N,1} X_{N,2} Y_{N,2} Z_{N,2}

Вывод

Распечатать ответ на вопрос.

Ограничения

- 1 \leq N \leq 10^5
- 0 \leq X_{i,1} < X_{i,2} \leq 100
- 0 \leq Y_{i,1} < Y_{i,2} \leq 100
- 0 \leq Z_{i,1} < Z_{i,2} \leq 100
- Кубоиды не имеют пересечения с положительным объёмом.
- Все входные значения являются целыми числами.

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

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

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

1
1
0
0

1-й и 2-й квадроиды имеют прямоугольник, диагональю которого является сегмент, соединяющий две точки (0,0,1) и (1,1,1).
1-й и 3-й квадроиды имеют одну точку (1,1,1), но не имеют поверхности.

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

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

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

2
1
1

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

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

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

3
3
3
3
3
3
3
3


У вас есть N предметов.
Каждый из них является одним из следующих: банка с язычком, обычная банка или консервный нож.
i-й предмет описывается парой целых чисел (T_i, X_i) следующим образом:

- Если T_i = 0, i-й предмет — это банка с язычком; если вы её получите, вы получите удовлетворение X_i.
- Если T_i = 1, i-й предмет — это обычная банка; если вы получите её и используете против неё консервный нож, вы получите удовлетворение X_i.
- Если T_i = 2, i-й предмет — это консервный нож; его можно использовать против не более X_i банок.

Найдите максимальное суммарное удовлетворение, которое вы получите, получив M предметов из N.

Ввод

Вводится с стандартного ввода в следующем формате:
N M
T_1 X_1
T_2 X_2
\vdots
T_N X_N

Вывод

Напечатайте ответ в виде целого числа.

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- T_i равен 0, 1 или 2.
- 1 \leq X_i \leq 10^9
- Все входные значения целые числа.

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

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

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

27

Если вы получите 1-й, 2-й, 5-й и 7-й предметы и используете 7-й предмет (консервный нож) против 5-го предмета, вы получите удовлетворение 6 + 6 + 15 = 27.
Нет способов получить предметы, чтобы получить удовлетворение больше 28, но вы можете все еще получить удовлетворение 27, если получите 6-й или 8-й предмет вместо 7-го в приведенной комбинации.

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

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

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

0

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

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

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

30

Имеется N предметов.
Каждый из них представляет собой банку с язычком, обычную банку или консервный нож.
i-й элемент описывается парой целых чисел (T_i, X_i) следующим образом:

- Если T_i = 0, i-й предмет представляет собой банку с язычком; если вы его получите, вы получите счастье X_i..
- Если T_i = 1, i-й предмет это обычная банка; если вы получите его и примените против него консервный нож, вы получите счастье X_i.
- Если T_i = 2, i-й предмет это консервный нож; его можно использовать против большинства банок X_i.

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

Вход

Входные данные передаются из стандартного ввода в следующем формате:
N M
T_1 X_1
T_2 X_2
\vdots
T_N X_N

Выход

Выведите ответ в виде целого числа.

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- T_i is 0, 1, or 2.
- 1 \leq X_i \leq 10^9
- Все входные значения являются целыми числами.

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

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

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

27

Если вы получите 1-й, 2-й, 5-й и 7-й предметы и используете 7-й предмет (открывалка) против 5-го предмета, вы получите счастье 6 + 6 + 15 = 27.
Не существует способов получить предметы, чтобы получить счастье 28 или выше, но вы все равно можете получить счастье 27, получив 6-й или 8-й предмет вместо 7-го в комбинации выше.

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

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

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

0

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

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

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

30

Есть n предметов.
Каждый из них является одной из банка с откидной крышкой, обычной банки или открывалка.
i-й элемен описан целочисленной парой  (T_i, X_i) следующим образом:

-Если T_i = 0, i-й предмет — это банка с язычком; Если вы получите её, вы получите счастье X_i.
-Если T_i = 1, i-й предмет — это обычная банка; Если вы получите её и откроете с помощью консервного ножа, вы получите счастье X_i.
-Если T_i = 2, i-й предмет — это консервный нож; его можно использовать против не более X_i банок.

Найдите максимальное общее счастье, которое вы получаете, получив M -элементы из N.

Вход

Ввод приведен из стандартного ввода в следующем формате:
N M
T_1 X_1
T_2 X_2
\vdots
T_N X_N

Выход

Распечатайте ответ как целое число.

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- T_i равен 0, 1 или 2.
-1 \leq X_i \leq 10^9
- Все входные значения являются целыми числами.

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

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

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

27

Если вы получите 1-й, 2-й, 5-й и 7-й элементы, и используете 7-й пункт (консервный нож) против 5-й пункт, вы получите счастье 6 + 6 + 15 = 27.
Нет никаких способов получить предметы, чтобы получить счастье в 28 или более, но вы все равно можете получить счастье 27, получив 6-й или 8-й пункт вместо 7-го в комбинации выше.

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

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

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

0

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

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

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

30


Имеется N человек, пронумерованных от 1 до N.
У каждого человека есть целочисленный показатель, называемый способностью к программированию; способность к программированию человека i составляет P_i баллов.
На сколько больше баллов нужно набрать человеку 1, чтобы он стал самым сильным?
Другими словами, каково минимальное неотрицательное целое число x, такое, что P_1 + x > P_i для всех i \neq 1?

Ввод

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

Вывод

Выведите ответ в виде целого числа.

Ограничения

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Все вводные значения являются целыми числами.

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

4
5 15 2 10

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

11

Человек 1 становится самым сильным, если его навык программирования составляет 16 баллов или больше,
поэтому ответ: 16-5=11

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

4
15 5 2 10

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

0

Человек 1 уже является сильнейшим, поэтому больше никаких навыков программирования не требуется.

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

3
100 100 100

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

1

Есть N человек, пронумерованных от 1 до N.
Каждый человек имеет целочисленный балл, называемый способностью к программированию; способность к программированию человека i составляет P_i очков.
Сколько еще очков нужно человеку 1, чтобы человек 1 стал сильнейшим?
Другими словами, каково минимальное неотрицательное целое число x, такое, что P_1 + x > P_i для всех i \neq 1?

Ввод

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

Вывод

Выведите ответ в виде целого числа.

Ограничения

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Все входные значения являются целыми числами.

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

4
5 15 2 10

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

11

Человек 1 становится сильнейшим, когда его навык программирования составляет 16 баллов или больше,
поэтому ответ 16-5=11.

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

4
15 5 2 10

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

0

Человек 1 уже сильнейший, поэтому больше навык программирования не требуется.

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

3
100 100 100

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

1

Дано N человек, пронумерованных от 1 до N.
Каждый человек имеет целочисленный показатель, называемый способностью к программированию; способность человека i равна P_i очкам.
Сколько очков нужно человеку 1, чтобы стать сильнейшим?
Другими словами, каково минимальное неотрицательное целое число x, где P_1 + x > P_i для всех i \neq 1?

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
N
P_1 P_2 \dots P_N

Вывод

Выведи ответ в виде целого числа.

Ограничения

- 1\leq N \leq 100
- 1\leq P_i \leq 100
- Все входные значения — целые числа.

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

4
5 15 2 10

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

11

Человек 1 становится сильнейшим, когда его навык программирования достигает 16 очков или более,
поэтому ответ 16-5=11.

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

4
15 5 2 10

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

0

Человек 1 уже сильнейший, поэтому больше не требуется навыков программирования.

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

3
100 100 100

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

1


У вас есть N конкурсных программистов, пронумерованных как человек 1, человек 2, \ldots и человек N.
Существует отношение, называемое превосходством, между программистами. Для всех пар различных программистов (человек X, человек Y) выполняется ровно одно из следующих двух утверждений: "человек X сильнее, чем человек Y" или "человек Y сильнее, чем человек X."
Превосходство транзитивно. Другими словами, для всех троек различных программистов (человек X, человек Y, человек Z) выполняется:

- если человек X сильнее, чем человек Y, и человек Y сильнее, чем человек Z, то человек X сильнее, чем человек Z.

Человек X считается самым сильным программистом, если человек X сильнее, чем человек Y для всех людей Y, кроме человека X. (При указанных выше условиях можно доказать, что существует ровно один такой человек.)
У вас есть M сведений об их превосходстве. i-е из них — это то, что "человек A_i сильнее, чем человек B_i."
Можете ли вы определить самого сильного программиста среди N на основании этой информации?
Если можете, выведите номер этого человека. В противном случае, то есть если есть несколько возможных самых сильных программистов, выведите -1.

Ввод

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

Вывод

Если вы можете однозначно определить самого сильного программиста, выведите номер этого человека; иначе выведите -1.

Ограничения

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- Если i \neq j, то (A_i, B_i) \neq (A_j, B_j).
- Существует как минимум один способ определения превосходств для всех пар различных программистов, согласующийся с данной информацией.

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

3 2
1 2
2 3

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

1

У вас есть две информации: "человек 1 сильнее, чем человек 2" и "человек 2 сильнее, чем человек 3."
По транзитивности также можно сделать вывод, что "человек 1 сильнее, чем человек 3," поэтому человек 1 является самым сильным программистом.

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

3 2
1 3
2 3

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

-1

И человек 1, и человек 2 могут быть самым сильным программистом. Поскольку вы не можете однозначно определить, кто из них самый сильный, вы должны вывести -1.

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

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

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

-1

Есть N конкурентоспособных программистов, пронумерованных как человек 1, человек 2, \ldots и человек N.
Между программистами существует отношение, называемое превосходством. Для всех пар отдельных программистов (человек X, человек Y) выполняется только одно из следующих двух отношений: "человек X сильнее человека Y" или "человек Y сильнее человека X".
Превосходство транзитивно. Другими словами, для всех троек отдельных программистов (человек X, человек Y, человек Z) выполняется следующее:

- если человек X сильнее человека Y, а человек Y сильнее человека Z, то человек X сильнее человека Z.

Человек X называется сильнейшим программистом, если человек X сильнее человека Y для всех людей Y, кроме человека X. (В соответствии с ограничениями выше мы можем доказать, что всегда есть ровно один такой человек.)
У вас есть M единиц информации об их превосходстве. i-я из них это "человек A_i сильнее человека B_i".
Можете ли вы определить сильнейшего программиста среди N на основе информации?
Если можете, выведите номер человека. В противном случае, то есть, если есть несколько возможных сильнейших программистов, выведите -1.

Ввод

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

Вывод

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

Ограничения

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- Если i \neq j, то (A_i, B_i) \neq (A_j, B_j).
- Существует по крайней мере один способ определить превосходство для всех пар различных программистов, который согласуется с данной информацией.

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

3 2
1 2
2 3

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

1

У вас есть две части информации: "человек 1 сильнее человека 2" и "человек 2 сильнее человека 3".
По транзитивности вы также можете сделать вывод, что "человек 1 сильнее человека 3", поэтому человек 1 является сильнейшим программистом.

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

3 2
1 3
2 3

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

-1

Человек 1 и человек 2 могут быть сильнейшими программистами. Поскольку вы не можете однозначно определить, кто из них сильнейший, вы должны вывести -1.

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

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

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

-1

Есть N конкурентных программистов, пронумерованных 1, программиста 2, \ ldots и программиста N.
Существует отношение, называемое превосходством между программистами. Для всех пар различных программистов (программист X, программист Y), именно одно из следующих двух отношений имеет место. «программист X сильнее программистаY» или «программист Y сильнее программиста X».
Превосходство транзитивно. Другими словами, для всех триплетов различных программистов (программист X, программист Y, программист Z),

- Если программист X сильнее программиста, а программист Y сильнее программиста Z, то программист X сильнее программиста Z.

Программист X считается самым сильным, если он сильнее всех остальных программистов. (под приведенными выше ограничениями, мы можем доказать, что всегда есть именно один такой программист.)
У вас есть информация об их превосходстве. их i-е это то, что "программист A_i сильнее программиста B_i."
Можете ли вы определить самый сильный программист среди N на основе информации?
Если вы можете, выведите номер самого сильного программиста; в противном случае, если есть несколько возможных самых сильных программистов, выведите -1.

Вход

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

Выход

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

Ограничения

- 2 \leq N \leq 50
- 0 \leq M \leq \frac{N(N-1)}{2}
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- If i \neq j, then (A_i, B_i) \neq (A_j, B_j).
- Есть по крайней мере один способ определения превосходств для всех пар различных программистов, что согласуется с данной информацией.

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

3 2
1 2
2 3

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

1

У вас есть две части информации: «программист 1 сильнее программиста 2», а «программист 2 сильнее программиста 3.»
В результате транзитивности вы также можете сделать вывод, что «программист 1 сильнее программиста 3», поэтому программист 1 является самым сильным программистом.

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

3 2
1 3
2 3

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

-1

И программист 1, и программист 2 могут быть самым сильным программистом. Поскольку вы не можете однозначно определить, что является самым сильным, вы должны печатать -1.

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

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

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

-1


Дана последовательность целых чисел A=(A_1,A_2,\dots,A_N).
Вы можете выполнять следующую операцию любое количество раз (возможно, ноль раз).

- Выберите целые числа i и j такие, что 1\leq i,j \leq N. Уменьшите A_i на единицу и увеличьте A_j на единицу.

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

Ввод

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

Вывод

Выведите ответ в виде целого числа.

Ограничения

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

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

4
4 7 3 7

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

3

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

- Выберите i=2 и j=3, чтобы получить A=(4,6,4,7).
- Выберите i=4 и j=1, чтобы получить A=(5,6,4,6).
- Выберите i=4 и j=3, чтобы получить A=(5,6,5,5).

Вы не можете сделать разницу между максимальным и минимальным значениями A не более одного за меньшее количество операций, поэтому ответ — 3.

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

1
313

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

0

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

10
999999997 999999999 4 3 2 4 999999990 8 999999991 999999993

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

2499999974

Вам дана целочисленная последовательность A=(A_1,A_2,\dots,A_N).
Вы можете выполнить следующую операцию любое количество раз (возможно, ноль).

- Выберите целые числа i и j с 1\leq i,j \leq N. Уменьшите A_i на единицу и увеличьте A_j на единицу.

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

Ввод

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

Вывод

Выведите ответ в виде целого числа.

Ограничения

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

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

4
4 7 3 7

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

3

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

- Выберите i=2 и j=3, чтобы получилось A=(4,6,4,7).
- Выберите i=4 и j=1, чтобы получилось A=(5,6,4,6).
- Выберите i=4 и j=3, чтобы получилось A=(5,6,5,5).

Вы не можете отличить максимальное и минимальное значения А не более чем на одну операцию менее чем за три операции, поэтому ответ 3.

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

1
313

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

0

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

10
999999997 999999999 4 3 2 4 999999990 8 999999991 999999993

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

2499999974


Число π до 100-го десятичного знака:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
Вам даётся целое число N от 1 до 100, включительно.
Распечатайте значение числа π до N-го десятичного знака.
Точнее, усечь значение числа π до N десятичных знаков и распечатайте результат, не удаляя конечных нулей.

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

Выход
Распечатайте значение числа π до N-го десятичного знака в одной строке.

Ограничения:
- 1\leq N\leq 100
- N — целое число.

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

2

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

3.14

Обрезание числа π до 2 десятичных знаков даёт 3.14. Таким образом, вы должны вывести 3.14.

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

32

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

3.14159265358979323846264338327950

Не удаляйте конечные нули.

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

100

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

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Число π до 100-й цифры после запятой — это
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
Вам дано целое число N от 1 до 100 включительно.
Выведите значение π до N-й цифры после запятой.
Точнее, усеките значение π до N цифр после запятой и выведите результат, не удаляя завершающие нули.

Ввод

Ввод поступает с стандарта ввода в следующем формате:
N

Вывод

Выведите значение π до N-й цифры после запятой в одной строке.

Ограничения

- 1\leq N\leq 100
- N — целое число.

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

2

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

3.14

Усекание значения π до 2-х цифр после запятой дает 3.14. Следовательно, следует вывести 3.14.

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

32

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

3.14159265358979323846264338327950

Не удаляйте завершающие нули.

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

100

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

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Число пи до 100-го знака после запятой равно
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679.
Вам дано целое число N от 1 до 100 включительно.
Выведите значение пи до N-го знака после запятой.
Точнее, усеките значение пи до N знаков после запятой и выведите результат, не удаляя конечные нули.

Ввод

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

Вывод

Выведите значение пи до N-го знака после запятой в одну строку.

Ограничения

- 1\leq N\leq 100
- N — целое число.

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

2

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

3,14

Усечение значения числа пи до 2 знаков после запятой дает 3,14. Таким образом, следует вывести 3,14.

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

32

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

3,14159265358979323846264338327950

Не удаляйте конечные нули.

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

100

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

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679


Игроки 1, 2, \ldots, N играют в рулетку.
Результат вращения — одно из 37 целых чисел от 0 до 36.
Для каждого i = 1, 2, \ldots, N игрок i поставил на C_i из 37 возможных исходов: A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
Колесо было вращено, и результат — X.
Выведите номера всех людей, которые поставили на X с наименьшими ставками, в порядке возрастания.
Более формально, выведите все целые числа i от 1 до N включительно, которые удовлетворяют обоим условиям, в порядке возрастания:

- Игрок i поставил на X.
- Для каждого j = 1, 2, \ldots, N, если игрок j поставил на X, то C_i \leq C_j.

Обратите внимание, что может не быть числа для вывода (см. пример ввода 2).

Ввод

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

Вывод

Пусть B_1, B_2, \ldots, B_K — последовательность чисел, которые нужно вывести в порядке возрастания.
Используя следующий формат, выведите количество чисел для вывода, K, в первой строке,
и B_1, B_2, \ldots, B_K, разделенные пробелами, во второй строке:
K
B_1 B_2 \ldots B_K

Ограничения

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} все различны для каждого i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- Все входные значения — целые числа.

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

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

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

2
1 4

Колесо было вращено, и результат — 19.
Люди, которые поставили на 19, это игроки 1, 2 и 4, и количество их ставок — 3, 4 и 3, соответственно.
Следовательно, среди людей, которые поставили на 19, с наименьшими ставками это игроки 1 и 4.

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

3
1
1
1
2
1
3
0

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

0

Колесо было вращено и результат — 0, но никто не поставил на 0, поэтому выводить нечего.

N человек, человек 1, человек 2, \ldots, человек N, играют в рулетку.
Результатом вращения является одно из 37 целых чисел от 0 до 36.
Для каждого i = 1, 2, \ldots, N, человек i сделал ставку на C_i из 37 возможных исходов: A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
Колесо было раскручено, и результат — X.
Выведите номера всех людей, сделавших наименьшие ставки на X, в порядке возрастания.
Более формально, выведите все целые числа i от 1 до N включительно, которые удовлетворяют обоим следующим условиям, в порядке возрастания:

- Человек i сделал ставку на X.
- Для каждого j = 1, 2, \ldots, N, если человек j сделал ставку на X, то C_i \leq C_j.

Обратите внимание, что число для вывода может отсутствовать (см. Пример ввода 2).

Ввод

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

Вывод

Пусть B_1, B_2, \ldots, B_K — последовательность чисел, которые нужно вывести в порядке возрастания.
Используя следующий формат, выведите количество чисел для вывода, K, на первой строке,
и B_1, B_2, \ldots, B_K, разделенных пробелами, на второй строке:
K
B_1 B_2 \ldots B_K

Ограничения

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} are all different for each i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- Все вводные значения являются целыми числами.

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

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

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

2
1 4

Колесо закрутилось, и результат — 19.
Люди, которые сделали ставку на 19, — это человек 1, человек 2 и человек 4, а количество их ставок — 3, 4 и 3 соответственно.
Таким образом, среди людей, которые сделали ставку на 19, наименьшее количество ставок — это человек 1 и человек 4.

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

3
1
1
1
2
1
3
0

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

0

Колесо было раскручено, и результат — 0, но никто не делал ставку на 0, поэтому нет числа для вывода.

N людей, человек 1, человек 2, \ldots, человек N, играют в рулетку.
Спин является одним из 37 целых чисел от 0 до 36.
Для каждого i = 1, 2, \ldots, N, ставлю на C I из 37 возможных результатов.: A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i}.
Колесо уже вращалось, и результат был X.
Выведите все числа, которые делают наименьшую ставку на X.
Формально все целые числа между 1 и N выводятся по восходящей последовательности для выполнения следующих двух условий i:

- Человек i ставит на X.
- Для каждого j = 1, 2, \ldots, N, если человек J ставит на X, то C_i \leq C_j.

Обратите внимание, что существует число, которое может не быть выведено (см. Sample Input 2).

Input

The input is given from Standard Input in the following format:
N
C_1
A_{1, 1} A_{1, 2} \ldots A_{1, C_1}
C_2
A_{2, 1} A_{2, 2} \ldots A_{2, C_2}
\vdots
C_N
A_{N, 1} A_{N, 2} \ldots A_{N, C_N}
X

Output

Let B_1, B_2, \ldots, B_K be the sequence of numbers to be printed in ascending order.
Using the following format, print the count of numbers to be printed, K, on the first line,
and B_1, B_2, \ldots, B_K separated by spaces on the second line:
K
B_1 B_2 \ldots B_K

Constraints

- 1 \leq N \leq 100
- 1 \leq C_i \leq 37
- 0 \leq A_{i, j} \leq 36
- A_{i, 1}, A_{i, 2}, \ldots, A_{i, C_i} are all different for each i = 1, 2, \ldots, N.
- 0 \leq X \leq 36
- All input values are integers.

Sample Input 1

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

Sample Output 1

2
1 4

The wheel has been spun, and the outcome is 19.
The people who has bet on 19 are person 1, person 2, and person 4, and the number of their bets are 3, 4, and 3, respectively.
Therefore, among the people who has bet on 19, the ones with the fewest bets are person 1 and person 4.

Sample Input 2

3
1
1
1
2
1
3
0

Sample Output 2

0

The wheel has been spun and the outcome is 0, but no one has bet on 0, so there is no number to print.


Вам дана строка S длины N, состоящая из строчных английских букв.
Каждый символ S окрашен в один из M цветов: цвет 1, цвет 2, ..., цвет M; для каждого i = 1, 2, \ldots, N, i-й символ S окрашен в цвет C_i.
Для каждого i = 1, 2, \ldots, M в этом порядке выполните следующую операцию.

- Выполните циклический сдвиг вправо на 1 для части S, окрашенной в цвет i.
  То есть, если p_1-й, p_2-й, p_3-й, \ldots, p_k-й символы окрашены в цвет i слева направо, то одновременно замените p_1-й, p_2-й, p_3-й, \ldots, p_k-й символы строки S на p_k-й, p_1-й, p_2-й, \ldots, p_{k-1}-й символы строки S соответственно.

Выведите финальную строку S после выполнения вышеуказанных операций.
Условия гарантируют, что хотя бы один символ S окрашен в каждый из M цветов.

Ввод

Входные данные поступают с стандартного ввода в следующем формате:
N M
S
C_1 C_2 \ldots C_N

Выход

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

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq C_i \leq M
- N, M и C_i — целые числа.
- S — строка длины N, состоящая из строчных английских букв.
- Для каждого целого числа 1 \leq i \leq M существует целое число 1 \leq j \leq N, такое что C_j = i.

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

8 3
apzbqrcs
1 2 3 1 2 2 1 2

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

cszapqbr

Изначально, S = apzbqrcs.

- Для i = 1, выполните циклический сдвиг вправо на 1 для части S, образованной 1-м, 4-м, 7-м символами, получим S = cpzaqrbs.
- Для i = 2, выполните циклический сдвиг вправо на 1 для части S, образованной 2-м, 5-м, 6-м, 8-м символами, получим S = cszapqbr.
- Для i = 3, выполните циклический сдвиг вправо на 1 для части S, образованной 3-м символом, получим S = cszapqbr (здесь S не изменится).

Следовательно, нужно напечатать cszapqbr, это финальная строка S.

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

2 1
aa
1 1

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

aa

Вам дана строка S длиной N, состоящая из строчных английских букв.
Каждый символ S окрашен в один из M цветов: цвет 1, цвет 2, ..., цвет M; для каждого i = 1, 2, \ldots, N i-й символ S окрашен в цвет C_i.
Для каждого i = 1, 2, \ldots, M в этом порядке выполним следующую операцию.

- Выполним правый круговой сдвиг на 1 на части S, окрашенной в цвет i.
То есть, если символы p_1-й, p_2-й, p_3-й, \ldots, p_k-й окрашены в цвет i слева направо, то одновременно замените символы p_1-й, p_2-й, p_3-й, \ldots, p_k-й из S на символы p_k-й, p_1-й, p_2-й, \ldots, p_{k-1} из S соответственно.

Выведите окончательный S после вышеуказанных операций.
Ограничения гарантируют, что по крайней мере один символ из S окрашен в каждый из M цветов.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N M
S
C_1 C_2 \ldots C_N

Вывод

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

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq C_i \leq M
- N, M и C_i — все целые числа.
- S — строка длины N, состоящая из строчных английских букв.
- Для каждого целого числа 1 \leq i \leq M существует целое число 1 \leq j \leq N такое, что C_j = i.

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

8 3
apzbqrcs
1 2 3 1 2 2 1 2

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

cszapqbr

Изначально S = apzbqrcs.

- Для i = 1 выполнить правый циклический сдвиг на 1 в части S, образованной 1-м, 4-м, 7-м символами, в результате чего S = cpzaqrbs.
- Для i = 2 выполните правый циклический сдвиг на 1 в части S, образованной 2-м, 5-м, 6-м, 8-м символами, в результате чего получится S = cszapqbr.
- Для i = 3 выполните правый циклический сдвиг на 1 в части S, образованной 3-м символом, в результате чего получится S = cszapqbr (здесь S не изменяется).

Таким образом, вы должны напечатать cszapqbr, окончательный S.

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

2 1
aa
1 1

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

aa


Дана строка S длиной N, состоящая из прописных и строчных букв английского алфавита.
Выполним Q операций над строкой S.
i-я операция (1\leq i\leq Q) представлена кортежем (t _ i,x _ i,c _ i) из двух целых чисел и одного символа, как указано ниже.

- Если t _ i=1, измените x _ i-й символ строки S на c _ i.
- Если t _ i=2, преобразуйте все прописные буквы в S в строчные (не используйте x _ i,c _ i для этой операции).
- Если t _ i=3, преобразуйте все строчные буквы в S в прописные (не используйте x _ i,c _ i для этой операции).

Выведите строку S после Q операций.

Ввод

Ввод поступает из стандартного ввода в следующем формате:
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Вывод

Выведите ответ в одной строке.

Ограничения

- 1\leq N\leq5\times10^5
- S - строка длиной N, состоящая из прописных и строчных букв английского алфавита.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Если t _ i=1, то 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i - прописная или строчная буква английского алфавита.
- Если t _ i\neq 1, то x _ i=0 и c _ i= 'a'.
- N,Q,t _ i,x _ i - все целые числа.

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

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

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

atcYber

Изначально строка S - AtCoder.

- Первая операция изменяет 4-й символ на i, изменяя S на AtCider.
- Вторая операция преобразует все строчные буквы в прописные, изменяя S на ATCIDER.
- Третья операция изменяет 5-й символ на b, изменяя S на ATCIbER.
- Четвертая операция преобразует все прописные буквы в строчные, изменяя S на atciber.
- Пятая операция изменяет 4-й символ на Y, изменяя S на atcYber.

После операций строка S становится atcYber, поэтому напечатайте atcYber.

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

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

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

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG

Вам дана строка S длиной N, состоящая из заглавных и строчных английских букв.
Давайте выполним Q операций над строкой S.
I-я операция (1\leq i\leq Q) представлена кортежем (t _ i,x _ i,c _ i) из двух целых чисел и одного символа, как показано ниже.

- Если t _ i=1, измените x _ i-й символ S на c _ i.
- Если t _ i=2, преобразуйте все заглавные буквы в S в строчные (не используйте x _ i,c _ i для этой операции).
- Если t _ i=3, преобразуйте все строчные буквы в S в заглавные (не используйте x _ i,c _ i для этой операции).

Выведите S после Q операций.

Ввод

Вводные данные даются из стандартного ввода в следующем формате:
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Вывод

Выведите ответ в одну строку.

Ограничения

- 1\leq N\leq5\times10^5
- S — строка длины N, состоящая из заглавных и строчных английских букв.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Если t _ i=1, то 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i — заглавная или строчная английская буква.
- Если t _ i\neq 1, то x _ i=0 и c _ i= 'a'.
- N,Q,t _ i,x _ i — все целые числа.

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

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

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

atcYber

Изначально строка S — AtCoder.

- Первая операция изменяет 4-й символ на i, меняя S на AtCider.
- Вторая операция преобразует все строчные буквы в заглавные, меняя S на ATCIDER.
- Третья операция изменяет 5-й символ на b, меняя S на ATCIbER.
- Четвертая операция преобразует все заглавные буквы в строчные, меняя S на atciber.
- Пятая операция изменяет 4-й символ на Y, меняя S на atcYber.

После операций строка S равна atcYber, поэтому выведите atcYber.

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

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

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

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG

Вам дана строка S длины N, состоящая из прописных и строчных Английских букв.
Выполним Q операций над строкой S.
i-я операция (1\leq i\leq Q) представлена кортежем (t _ i,x _ i,c _ i) из двух целых чисел и одного символа следующим образом.

- Если t _ i=1, измените x _ i-й символ S на c _ i.
- Если t _ i=2, преобразовать все прописные буквы в S в нижний регистр (не используйте x _ i,c _ i для этой операции).
- Если t _ i=3, преобразовать все строчные буквы в S в верхний регистр (не используйте x _ i,c _ i для этой операции).

Выведите S после операций Q.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N
S
Q
t _ 1 x _ 1 c _ 1
t _ 2 x _ 2 c _ 2
\vdots
t _ Q x _ Q c _ Q

Вывод

Выведите ответ в одну строку.

Ограничения

- 1\leq N\leq5\times10^5
- S это строка длины N, состоящая из прописных и строчных Английских букв.
- 1\leq Q\leq5\times10^5
- 1\leq t _ i\leq3\ (1\leq i\leq Q)
- Если t _ i=1, then 1\leq x _ i\leq N\ (1\leq i\leq Q).
- c _ i это прописная или строчная Английская буква.
- Если t _ i\neq 1, то x _ i=0 and c _ i= 'a'.
- N,Q,t _ i,x _ i это все целые числа.

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

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

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

atcYber

Изначально строка S это AtCoder.

- Первая операция меняет 4-й символ на i, заменяя S на AtCider.
- Вторая операция преобразует все строчные буквы в прописные, заменяя S на ATCIDER.
- Третья операция меняет 5-й символ на b, меняя S на ATCIbER.
- Четвертая операция преобразует все прописные буквы в строчные, заменяя S на atciber.
- Пятая операция меняет 4-й символ на Y, меняя S на atcYber.

После операций строка S будет иметь вид atcYber, поэтому выведите atcYber.

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

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

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

TEEQUICKBROWMFiXJUGPFOVERTBELAZYDOG


Дано N рулеток.
На i-й (1\leq i\leq N) рулетке написаны P _ i целых чисел S _ {i,1},S _ {i,2},\ldots,S _ {i,P _ i}. Можно сыграть на ней один раз, заплатив C _ i йен.
Когда играешь на i-й рулетке, случайным образом выбирается целое число j от 1 до P _ i включительно, и ты получаешь S _ {i,j} очков.
Очки, полученные на рулетках, определяются независимо от предыдущих результатов.
Такахаси хочет получить не менее M очков.
Такахаси будет действовать так, чтобы минимизировать сумму, которую он заплатит, прежде чем получить не менее M очков.
После каждого раунда он может выбрать, на какой рулетке играть дальше, основываясь на предыдущих результатах.
Найди ожидаемую сумму денег, которую Такахаси потратит, прежде чем получит не менее M очков.
Более формальное определение
Вот более формальное утверждение:
Для стратегии, которую может выбрать Такахаси при выборе рулетки, ожидаемая сумма денег E, которую он заплатит, прежде чем получить не менее M очков с этой стратегией, определяется следующим образом.

- Для натурального числа X, пусть f(X) будет ожидаемой суммой денег, которую Такахаси заплатит, прежде чем получить не менее M очков или сыграет на рулетке X раз в общей сложности согласно этой стратегии. Пусть E=\displaystyle\lim _ {X\to+\infty}f(X).

В условиях этой задачи можно доказать, что \displaystyle\lim _ {X\to+\infty}f(X) конечно независимо от того, какую стратегию Такахаси выберет.
Найди значение E, когда он примет стратегию, минимизирующую E.

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
N M
C _ 1 P _ 1 S _ {1,1} S _ {1,2} \ldots S _ {1,P _ 1}
C _ 2 P _ 2 S _ {2,1} S _ {2,2} \ldots S _ {2,P _ 2}
\vdots
C _ N P _ N S _ {N,1} S _ {N,2} \ldots S _ {N,P _ N}

Вывод

Выведи ожидаемую сумму денег, которую Такахаси потратит до того, как получит не менее M очков, в одной строке.
Вывод будет считаться правильным, если относительная или абсолютная погрешность от истинного значения не превышает 10 ^ {-5}.

Ограничения

- 1\leq N\leq 100
- 1\leq M\leq 100
- 1\leq C _ i\leq 10 ^ 4\ (1\leq i\leq N)
- 1\leq P _ i\leq 100\ (1\leq i\leq N)
- 0\leq S _ {i,j}\leq M\ (1\leq i\leq N,1\leq j\leq P _ i)
- \displaystyle\sum _ {j=1}^{P _ i}S _ {i,j}\gt0\ (1\leq i\leq N)
- Все входные значения — целые числа.

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

3 14
100 2 5 9
50 4 1 2 4 8
70 5 2 4 2 8 8

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

215.913355350494384765625

Например, Такахаси может сыграть на рулетке следующим образом.

- Заплатить 50 йен, чтобы сыграть на рулетке 2 и заработать S _ {2,4}=8 очков.
- Заплатить 50 йен, чтобы сыграть на рулетке 2 и заработать S _ {2,1}=1 очко.
- Заплатить 100 йен, чтобы сыграть на рулетке 1 и заработать S _ {1,1}=5 очков. Он получил в сумме 8+1+5\geq14 очков, поэтому прекращает играть.

В этом случае он заплатит 200 йен, прежде чем получить 14 очков.
Вывод будет считаться правильным, если относительная или абсолютная погрешность от истинного значения не превышает 10 ^ {-5}, поэтому такие выводы, как 215.9112 и 215.9155, также будут считаться правильными.

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

2 100
1 2 1 2
10 6 0 0 0 0 0 100

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

60

Оптимально продолжать крутить рулетку 2, пока не получишь 100 очков.

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

20 90
3252 9 0 4 2 7 3 2 3 2 4
2147 1 1
4033 8 0 4 1 7 5 2 5 0
3795 6 6 6 2 3 2 2
3941 7 2 4 4 7 2 0 5
2815 6 2 1 0 5 2 2
3020 2 3 6
3858 9 4 2 7 3 0 4 4 6 5
4533 10 3 6 4 0 6 4 4 2 7 7
4198 8 6 7 0 6 3 6 5 6
3739 8 2 7 1 5 1 4 4 7
2465 4 1 4 0 1
4418 9 7 6 2 4 6 1 5 0 7
5450 12 0 4 4 7 7 4 4 5 4 5 3 7
4196 9 1 6 5 5 7 2 3 6 3
4776 9 2 2 7 3 6 6 1 6 6
2286 3 3 5 6
3152 3 4 1 5
3509 7 0 6 7 0 1 0 3
2913 6 0 1 5 0 5 6

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

45037.072314895291126319493887599716

Есть колеса n Roulette.
На i-й (1\leq i\leq N) рулетке написаны P _ i целых чисел S _ {i,1},S _ {i,2},\ldots,S _ {i,P _ i},Вы можете сыграть в него один раз, заплатив C _ i иен.
Когда вы разыгрываете I-Th Wheel один раз, целое число J между 1 и P _ I, включительно, выбирается в случайном порядке, и вы зарабатываете S _ {i, J} очки.
Точки, которые вы зарабатываете на колесах, определяются независимо от прошлых результатов.
Такахаши хочет заработать как минимум М баллы.
Такахаши будет действовать, чтобы минимизировать сумму денег, которую он платит, прежде чем он заработает как минимум М баллы.
После каждой игры он может выбрать, какое колесо сыграет дальше на основе предыдущих результатов.
Найдите ожидаемую сумму денег, которые Такахаши заплатит, прежде чем он заработает как минимум M Points.
Более формальное определение
Вот более формальное утверждение.
Для стратегии, которую Такахаши может принять при выборе того, какое колесо играет, ожидаемая сумма денег, которую он платит, прежде чем он заработает, по крайней мере, M -баллы с этой стратегией определяется следующим образом.

- Для естественного числа x пусть f (x) будет ожидаемой суммой денег, которые Такахаси платит, прежде чем он заработает как минимум M Points или играет в общей сложности колеса X раз в соответствии с этой стратегией. Пусть e = \ displaystyle \ lim _ {x \ to+\ infty} f (x).

В условиях этой проблемы можно доказать, что \ displaystyle \ lim _ {x \ to+\ infty} f (x) конечна, независимо от того, какая стратегия принимает Такахаши.
Найдите ценность E, когда он принимает стратегию, которая минимизирует E.

Вход

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

Выход

Распечатайте ожидаемую сумму денег Такахаши заплатит до тех пор, пока он не заработает как минимум m баллов в одной линии.
Ваш вывод будет считаться правильным, когда относительная или абсолютная ошибка из истинного значения составляет не более 10 ^ {-5}.

Ограничения

- 1\leq N\leq 100
-1\leq M\leq 100
-1\leq C _ i\leq 10 ^ 4\ (1\leq i\leq N)
-1\leq P _ i\leq 100\ (1\leq i\leq N)
-0\leq S _ {i,j}\leq M\ (1\leq i\leq N,1\leq j\leq P _ i)
-\displaystyle\sum _ {j=1}^{P _ i}S _ {i,j}\gt0\ (1\leq i\leq N)
- \ displaystyle \ sum _ {j = 1}^{p _ i} s _ {i, j} \ gt0 \ (1 \ leq i \ leq n)
- Все входные значения являются целыми числами.

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

3 14
100 2 5 9
50 4 1 2 4 8
70 5 2 4 2 8 8

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

215.913355350494384765625

Например, Такахаши может играть на колесах следующим образом.

- Заплатите 50 иен, чтобы сыграть в рулетку 2 и заработать S _ {2,4} = 8 баллов.
- Заплатите 50 иен, чтобы сыграть в рулетку 2 и заработать S _ {2,1} = 1 балл.
- Заплатите 100 иен, чтобы сыграть в рулетку 1 и заработать S _ {1,1} = 5 баллов. Он заработал в общей сложности 8+1+5 \ geq14 очков, поэтому он уходит из игры.

В этом случае он платит 200 иен, прежде чем заработать 14 баллов.
Ваш вывод будет считаться правильным, когда относительная или абсолютная ошибка из истинного значения составляет не более 10 ^ {-5}, поэтому выходы, такие как 215,9112 и 215,9155, также будут считаться правильными.

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

2 100
1 2 1 2
10 6 0 0 0 0 0 100

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

60

Оптимально продолжать играть на втором колесе рулетки, пока не наберете 100 очков.

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

20 90
3252 9 0 4 2 7 3 2 3 2 4
2147 1 1
4033 8 0 4 1 7 5 2 5 0
3795 6 6 6 2 3 2 2
3941 7 2 4 4 7 2 0 5
2815 6 2 1 0 5 2 2
3020 2 3 6
3858 9 4 2 7 3 0 4 4 6 5
4533 10 3 6 4 0 6 4 4 2 7 7 7 7
4198 8 6 7 0 6 3 6 5 6
3739 8 2 7 1 5 1 4 4 7
2465 4 1 4 0 1
4418 9 7 6 2 4 6 1 5 0 7
5450 12 0 4 4 7 7 4 4 5 4 5 3 7 7 7
4196 9 1 6 5 5 7 2 3 6 3
4776 9 2 2 7 3 6 6 1 6 6
2286 3 3 5 6
3152 3 4 1 5
3509 7 0 6 7 0 1 0 3
2913 6 0 1 5 0 5 6

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

45037.0723148952911263194938887599716

Есть колеса N рулетки.
I -th (1\leq i\leq N) колесо имеет P _ i целые числа S _ {i,1},S _ {i,2},\ldots,S _ {i,P _ i} написано на нем, и вы можете играть на нем один раз, заплатив C _ i иен.
Когда вы играете i- е колесо Один раз, целое j между 1 и P _ i, включительно, выбирается равномерно и наугад, и вы зарабатываете S _ {i,j} очки.
Очки, которые вы зарабатываете на колесах, не зависят от предыдущих результатов.
Такахаши хочет заработать хотя бы M очков.
Такахаши будет действовать, чтобы минимизировать количество денег, которое он платит, прежде чем заработает по крайней мере M очков.
После каждой игры он может выбрать, какое колесо будет играть дальше, основываясь на предыдущих результатах.
Найти ожидаемую сумму денег такахаши будет платить, прежде чем он зарабатывает по крайней мере м очков.
Более формальное определение
Вот более официальное заявление.
Для стратегии, что такахаши может принять в выборе колеса, чтобы играть, ожидаемое количество денег е, что он платит, прежде чем он зарабатывает по крайней мере м очков с этой стратегии определяется следующим образом.

- для натурального числа X, пусть f(X) быть ожидаемое количество денег выплачивается такахаши, прежде чем он зарабатывает по крайней мере м очков или играет колеса X раз в общей сложности в соответствии с этой стратегией. Let E=\displaystyle\lim _ {X\to+\infty}f(X).

В условиях этой проблемы можно доказать, что \displaystyle\lim _ {X\to+\infty}f(X) является конечным независимо от того, какую стратегию принимает такахаши.
Найти значение E, когда он принимает стратегию, которая минимизирует E.

Информация о проекте

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

Выход

Распечатать ожидаемую сумму денег такахаши будет платить, пока он не заработает по крайней мере M очков в одной строке.
Ваш вывод будет считаться правильным, когда относительная или абсолютная ошибка от истинного значения составляет не более 10 ^ {-5}.

А. ограничения

- 1\leq N\leq 100
- 1\leq M\leq 100
- 1\leq C _ i\leq 10 ^ 4\ (1\leq i\leq N)
- 1\leq P _ i\leq 100\ (1\leq i\leq N)
- 0\leq S _ {i,j}\leq M\ (1\leq i\leq N,1\leq j\leq P _ i)
- \displaystyle\sum _ {j=1}^{P _ i}S _ {i,j}\gt0\ (1\leq i\leq N)
- все входные значения являются числами.

Входное отверстие выборки 1

3 14
100 2 5 9
50 4 1 2 4 8
70 5 2 4 2 8 8

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

215.913355350494384765625

Например, такахаши может играть на колесах следующим образом.

- заплатить 50 иен, чтобы играть в рулетку 2 и заработать S _ {2,4}=8 очков.
- заплатить 50 иен, чтобы играть в рулетку 2 и заработать S _ {2,1}=1 балл.
- заплатить 100 иен, чтобы играть в рулетку 1 и заработать S _ {1,1}=5 очков. Он заработал в общей сложности 8+1+5\geq14 очков, поэтому он бросает играть.

В этом случае он платит 200 иен, прежде чем заработать 14 очков.
Ваш выход будет считаться правильным, когда относительная или абсолютная ошибка от истинного значения составляет не более 10 ^ {-5}, так что выходы, такие как 215.9112 и 215.9155 также будут считаться правильными.

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

2 100
1 2 1 2
10 6 0 0 0 0 0 100

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

60

Это оптимально, чтобы продолжать вращать рулетку 2, пока вы не получите 100 очков.

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

20 90
3252 9 0 4 2 7 3 2 3 2 4
2147 1 1
4033 8 0 4 1 7 5 2 5 0
3795 6 6 6 2 3 2 2
3941 7 2 4 4 7 2 0 5
2815 6 2 1 0 5 2 2
3020 2 3 6
3858 9 4 2 7 3 0 4 4 6 5
4533 10 3 6 4 0 6 4 4 2 7 7
4198 8 6 7 0 6 3 6 5 6
3739 8 2 7 1 5 1 4 4 7
2465 4 1 4 0 1
4418 9 7 6 2 4 6 1 5 0 7
5450 12 0 4 4 7 7 4 4 5 4 5 3 7
4196 9 1 6 5 5 7 2 3 6 3
4776 9 2 2 7 3 6 6 1 6 6
2286 3 3 5 6
3152 3 4 1 5
3509 7 0 6 7 0 1 0 3
2913 6 0 1 5 0 5 6

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

45037.072314895291126319493887599716