BSUIR Open XIII: School final
A. Photos in Flight
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Vadim loves traveling very much. This time he decided to take wonderful photographs of two cities from the airplane and publish them on social media. In order for the photographs to turn out well, the airplane must fly directly over the center of each city.

The center of the first city is located at point $$$(x_1, y_1)$$$, and the center of the second city is located at point $$$(x_2, y_2)$$$, with both cities located above the line $$$y = 0$$$ (that is, $$$y_1, y_2 \ge 1$$$).

The airplane that Vadim will fly on will take off from a runway located on the line $$$x = 0$$$. The airplane takes off from point $$$(0, 0)$$$ in the direction of the runway towards increasing $$$y$$$ coordinates, or towards decreasing $$$y$$$ coordinates, while keeping the $$$x$$$ coordinate unchanged.

The airplane can make a turn no more than once at any moment during its flight (including at the moment of takeoff) — flying in a straight line in any direction from its current point.

Vadim is interested in whether he will be able to take successful photographs of the two cities. Please note that he can fly over the cities in any order.

Input

Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 10^4$$$). The description of the test cases follows.

The only line of each test case contains four integers $$$x_1$$$, $$$y_1$$$, $$$x_2$$$, and $$$y_2$$$ ($$$-10^9 \le x_1, x_2 \le 10^9$$$, $$$1 \le y_1, y_2 \le 10^9$$$) — the coordinates of the center of the first city and of the second city, respectively. It is guaranteed that $$$(x_1, y_1) \ne (x_2, y_2)$$$, that is, the centers of the cities do not coincide.

Output

For each test case, output "Yes" (without quotes) if Vadim will be able to take successful photographs; otherwise, output "No" (without quotes).

You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses.

Example
Input
5
1 4 3 3
-1 1 -4 4
2 1 3 2
8 10 8 1
-10 5 16 1
Output
Yes
Yes
Yes
No
No
Note

In the first test case, the flight path of the airplane (highlighted in orange) can be as follows:

In the second test case, the airplane can turn at the moment of takeoff:

In the third test case, the flight path of the airplane can be as follows:

In the fourth test case, there is no route on which Vadim can take successful photographs.

B. Basketball
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

As known from school physics, if a physical point is given a velocity vector, then in an environment with a constant acceleration due to gravity, this physical point will fly along a parabola.

Based on this phenomenon, mobile game developers came up with a simple arcade game. In the lower left corner of the screen, there is a basketball, which initially is at the point $$$(0,0)$$$. At any moment, the user can tap the screen of the phone, and if at that moment the ball is at the point $$$(x_0, y_0)$$$, then regardless of its speed or position, it will fly along a parabola defined by the equation $$$y = - a(x-x_0)^2 + b(x-x_0) + y_0$$$.

The phone screen has a width of $$$w$$$, so if the ball at any moment is at a point of the form $$$(w, y)$$$, it will instantly teleport to the point $$$(0, y)$$$, while preserving its velocity vector. That is, after the teleportation, the trajectory of the ball will not change, and it will continue to move along the same parabola, but shifted $$$w$$$ units to the left (see the figure).

Example trajectory of the ball

The basketball in the game differs from a regular one in that it does not bounce off the ground and does not roll on it. Calculate the minimum number of taps on the screen that the player needs to make in order for the ball to reach the point $$$(x_b, y_b)$$$.

Note that the player can tap the screen at any moment in time, including at the moment when the ball is at non-integer points or when $$$x=0$$$.

Input

The first line contains a single integer $$$t$$$ ($$$1 \le t \le 30\,000$$$) — the number of test cases. The following lines describe the test cases.

Each test case is described by a single line containing the integers $$$w$$$, $$$a$$$, $$$b$$$, $$$x_b$$$, $$$y_b$$$ ($$$2 \le w \le 100$$$, $$$1 \le a, b \le 100$$$, $$$1 \le x_b \le w-1$$$, $$$1 \le y_b \le 100$$$).

Output

For each test case, output a single integer — the minimum number of taps on the screen that the player needs to make in order for the ball to reach the point $$$(x_b, y_b)$$$.

Example
Input
3
6 1 4 1 3
6 1 4 1 2
100 100 1 80 100
Output
1
2
40500

C. Bitwise Characteristic of a Number
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

We define the bitwise characteristic of a positive integer $$$n$$$ as the number of pairs of integers $$$i$$$ and $$$j$$$ ($$$1 \le i \lt j$$$) such that $$$i \oplus j = n$$$ and $$$i \mid j = n$$$.

Calculate the value of the bitwise characteristic of the given integer $$$n$$$.

$$$\oplus$$$ denotes the bitwise XOR operation.

$$$\mid$$$ denotes the bitwise OR operation.

Input

Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 10^4$$$). The description of the test cases follows.

The only line of each test case contains a single integer $$$n$$$ ($$$1 \le n \le 10^9$$$) — the integer for which the bitwise characteristic needs to be determined.

Output

For each test case, output a single integer — the value of the bitwise characteristic of the integer $$$n$$$.

Example
Input
3
6
8
42
Output
1
0
3
Note

In the first test case, there is only one suitable pair: $$$(2, 4)$$$.

In the second test case, there are no suitable pairs.

In the third test case, the following suitable pairs exist: $$$(2, 40)$$$, $$$(8, 34)$$$, and $$$(10, 32)$$$.

Statement is not available in English language
D. Лекции в BOPEN SUIR
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В стране $$$N$$$ вплотную занялись образованием граждан. Президент страны считает, что абсолютно все люди должны изучать что-то новое, даже студенты университета BOPEN SUIR.

Университет можно представить как таблицу из аудиторий на $$$n$$$ строк и $$$m$$$ столбцов, где в аудитории из $$$i$$$ строки и $$$j$$$ столбца проживает очередной студент. Было принято решение провести ровно $$$q$$$ лекций. На каждой лекции будет рассказываться уникальный материал, которого нет ни на какой другой лекции. $$$i$$$-я лекция задаётся четырьмя параметрами $$$lx_i, ly_i, rx_i, ry_i$$$ ($$$1\le lx_i \le rx_i \le n, 1\le ly_i \le ry_i \le m$$$). Такая лекция будет слышна только из аудиторий, находящихся в прямоугольнике, заданном этими четырьмя числами. Иными словами, студент из аудитории $$$(x, y)$$$ услышит лекцию $$$i$$$ тогда и только тогда, когда $$$lx_i \le x \le rx_i, ly_i \le y \le ry_i$$$.

После проведения всех $$$q$$$ лекций президент хочет понять уровень образованности в университете. Уровень образованности равен размеру максимального подмножества студентов, что ни у каких двух студентов из этого подмножества множества прослушанных лекций не совпадают полностью.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится единственное целое число $$$t$$$ ($$$1 \le t \le 10^5$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит три целых числа $$$n, m, q$$$ ($$$1 \le n, m, q \le 5 \cdot 10^5, 1\le n \cdot m \le 5 \cdot 10^5$$$) — размеры университета и количество прочитанных лекций.

Следующие $$$q$$$ строк содержат описание лекций в формате, указанном в условии. $$$i$$$-я из следующих строк содержит 4 целых числа $$$lx_i, ly_i, rx_i, ry_i$$$ ($$$1\le lx_i \le rx_i \le n, 1\le ly_i \le ry_i \le m$$$).

Гарантируется, что сумма $$$n \cdot m$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.

Гарантируется, что сумма $$$q$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.

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

Для каждого набора входных данных в отдельной строке выведите уровень образованности в университете.

Примеры
Входные данные
1
3 3 2
1 1 1 1
3 3 3 3
Выходные данные
3
Входные данные
1
1 1 2
1 1 1 1
1 1 1 1
Выходные данные
1

Statement is not available in English language
E. Самолеты-самолеты
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Самолеты-самолеты-самолеты. Тут нет самолетов, но зато есть интересная задача, которую предлагаем вам решить.

Дан массив $$$a_1, a_2, \ldots, a_n$$$. Отрезок $$$l, r$$$ ($$$1 \leq l \leq r \leq n$$$) называется хорошим, если выполняется следующее условие:

Для каждого $$$i$$$ от $$$1$$$ до $$$r - l + 1$$$ найдется такое $$$j$$$ ($$$l \leq j \leq r$$$), что $$$a_j = x^i$$$ для какого-то целого числа $$$x$$$.

Требуется сказать, сколько существует хороших отрезков.

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

В первой строке записано единственное число $$$n$$$ ($$$1 \leq n \leq 10^5$$$) — длина массива.

Во второй строке записано $$$n$$$ чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \leq a_i \leq 10^9$$$) — сам массив.

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

Выведите единственное целое число — ответ на задачу.

Примеры
Входные данные
4
1 2 3 4
Выходные данные
8
Входные данные
5
2 3 4096 5 7
Выходные данные
12
Примечание

В первом тестовом примере подойдут пары $$$(l, r)$$$: $$$(1, 1)$$$, $$$(1, 2)$$$, $$$(1, 3)$$$, $$$(1, 4)$$$, $$$(2, 2)$$$, $$$(3, 3)$$$, $$$(3, 4)$$$, $$$(4, 4)$$$.

Statement is not available in English language
F. Путешествие по университету
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Как известно, «БГУИР» состоит из входа, а также $$$n - 1$$$ аудиторий, пронумерованных целыми числами от $$$2$$$ до $$$n$$$, а вход имеет номер $$$1$$$. Также в университете есть $$$m$$$ коридоров, соединяющие различные аудитории, либо же вход с аудиторией. При том логично, что из входа можно добраться до любой другой аудитории, перемещаясь по коридорам университета.

Саша впервые оказался в этом замечательном университете и хочет добраться до лекционных аудиторий, чтобы узнать много нового. Но «БГУИР» не маленький, поэтому за первый день он может пройти не более чем по $$$k$$$ коридорам. Но так как за день Саша узнает много нового, то после каждого дня он может пройти на один коридор больше. Таким образом, на второй день Саша может пройти не более $$$k + 1$$$ коридор, в третий $$$k + 2$$$ и так далее.

Но пока Саша слушает интересные лекции, «БГУИР» развивается семимильными шагами. А точнее, ночью каждого дня, посередине каждого коридора образуется еще одна аудитория $$$a$$$. Так, если коридор соединял аудитории ($$$v, u$$$), то на утро коридор между этими аудиториями ликвидируют, а на его место появляются два новых ($$$v, a$$$) и ($$$a, u$$$). При том для каждого коридора аудитория по середине является уникальной, а все коридоры ликвидируют одновременно.

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

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

Первая строка каждого набора входных данных содержит три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ ($$$2 \leq n \leq 2 \cdot 10^5$$$, $$$n - 1 \leq m \leq 2 \cdot 10^5$$$, $$$1 \leq k \leq n$$$) — количество объектов в университете с самого начала, количество коридоров и изначальное количество коридоров, которое Саша может проходить за один день. Где количество объектов — это количество аудиторий и вход.

Каждая из следующих $$$m$$$ строк содержит два целых числа $$$v$$$ и $$$u$$$ ($$$1 \leq v, u \leq n$$$, $$$v \neq u$$$) — номера объектов, которые соединяет очередной коридор.

Гарантируется, что нет двух коридоров, соединяющих одинаковую пару объектов.

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

Выведите в первой строке, до скольки изначальных объектов Саша сможет добраться. А во второй строке выведите их в порядке возрастания.

Примеры
Входные данные
5 4 1
1 2
2 3
3 4
4 5
Выходные данные
4
1 2 3 4 
Входные данные
8 8 1
1 2
2 3
1 4
4 5
3 6
6 5
6 7
6 8
Выходные данные
6
1 2 3 4 5 6 

Statement is not available in English language
G. Безопасная работа с памятью
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Как язык Rust гарантирует безопасную работу с памятью? Для этого вводятся такие концепции, как владение, заимствование и время жизни. Вадим, к сожалению, не смог разобраться, как установить компилятор Rust, поэтому решил потренироваться на упрощенной версии языка.

В языке, который использует Вадим, существует четыре операции:

  • 1 $$$a$$$ — создать переменную с названием $$$a$$$.
  • 2 $$$b$$$ $$$a$$$ — создать Read-only ссылку с названием $$$b$$$ на переменную с названием $$$a$$$.
  • 3 $$$b$$$ $$$a$$$ — создать Writable ссылку с названием $$$b$$$ на переменную с названием $$$a$$$.
  • 4 $$$a$$$ — удалить переменную либо ссылку с названием $$$a$$$.

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

  1. На каждую переменную может ссылаться только один вид ссылок, но не два одновременно:
    • одна или более Read-only ссылок;
    • ровно одна Writable ссылка.
  2. Каждая ссылка ссылается на существующую переменную (неудаленную).
Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

В первой строке каждого набора входных данных содержится единственное целое число $$$n$$$ — количество операций в программе Вадима.

В следующих $$$n$$$ строках заданы операции в одном из следующих форматов:

  • 1 $$$a$$$ — создать переменную с названием $$$a$$$ ($$$1 \le |a| \le 10$$$).
  • 2 $$$b$$$ $$$a$$$ — создать Read-only ссылку с названием $$$b$$$ на переменную с названием $$$a$$$ ($$$1 \le |a|, |b| \le 10$$$).
  • 3 $$$b$$$ $$$a$$$ — создать Writable ссылку с названием $$$b$$$ на переменную с названием $$$a$$$ ($$$1 \le |a|, |b| \le 10$$$).
  • 4 $$$a$$$ — удалить переменную либо ссылку с названием $$$a$$$ ($$$1 \le |a| \le 10$$$).

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$10^5$$$.

Также предоставляются следующие гарантии:

  • При создании переменной либо ссылки используется новое, уникальное название, состоящее только из строчных букв латинского алфавита.
  • Ссылка может ссылаться только на переменную.
  • В момент создания любой ссылки переменная, на которую ссылается эта ссылка, уже существует (была создана и еще не удалена).
  • Каждая переменная либо ссылка удаляется не более одного раза и только после ее создания.
Выходные данные

Для каждого набора входных данных выведите «Yes» (без кавычек), если программа Вадима безопасно работает с памятью, в противном случае выведите «No» (без кавычек).

Пример
Входные данные
6
3
1 a
2 b a
3 c a
3
1 a
2 b a
2 c a
3
1 a
2 b a
4 a
4
1 a
2 b a
4 b
4 a
4
1 a
2 b a
4 b
3 c a
1
1 a
Выходные данные
No
Yes
No
Yes
Yes
Yes
Примечание

В первом наборе входных данных после третьей команды нарушается правило №$$$1$$$.

Во втором наборе входных данных после каждой команды на переменной $$$a$$$ существуют только Read-only ссылки.

В третьем наборе входных данных после третьей команды нарушается правило №$$$2$$$.

В пятом наборе входных данных Writable ссылка создается после удаления Read-only ссылки, поэтому правило №$$$1$$$ не нарушается.

Statement is not available in English language
H. Покупка абонемента
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Есть $$$n$$$ аэропортов, пронумерованных целыми числами от $$$1$$$ до $$$n$$$. У каждого аэропорта есть свой класс обслуживания, для $$$i$$$-го аэропорта это некоторое целое число $$$a_i$$$.

Авиакомпания «Беда» осуществляет авиаперелёты с соблюдением особых условий, необходимых для поддержания высокого качества обслуживания. Так, из аэропорта $$$x$$$ существует перелёт только в следующие аэропорты:

  • В аэропорт $$$y$$$, такой что $$$y \gt x$$$ и $$$a_y \gt a_x$$$, и не существует такого аэропорта $$$z$$$, что $$$x \lt z \lt y$$$ и $$$a_z \gt a_x$$$.
  • В аэропорт $$$y$$$, такой что $$$y \gt x$$$ и $$$a_y \lt a_x$$$, и не существует такого аэропорта $$$z$$$, что $$$x \lt z \lt y$$$ и $$$a_z \lt a_x$$$.
  • В аэропорт $$$y$$$, такой что $$$y \lt x$$$ и $$$a_y \gt a_x$$$, и не существует такого аэропорта $$$z$$$, что $$$y \lt z \lt x$$$ и $$$a_z \gt a_x$$$.
  • В аэропорт $$$y$$$, такой что $$$y \lt x$$$ и $$$a_y \lt a_x$$$, и не существует такого аэропорта $$$z$$$, что $$$y \lt z \lt x$$$ и $$$a_z \lt a_x$$$.

Вас интересуют $$$q$$$ запросов $$$l_i, r_i$$$ таких, что $$$1 \le l_i \le r_i \le n$$$ на покупку абонемента, позволяющего не платить за перелёт, если номера обоих аэропортов находятся в промежутке от $$$l_i$$$ до $$$r_i$$$ включительно. Выгода такого абонемента определяется как количество различных групп аэропортов с номерами в промежутке от $$$l_i$$$ до $$$r_i$$$ включительно, внутри которых можно бесплатно перемещаться. Два аэропорта $$$x$$$ и $$$y$$$ находятся в одной группе, если существует бесплатный маршрут как из $$$x$$$ в $$$y$$$, так и из $$$y$$$ в $$$x$$$. Для каждого запроса требуется определить выгоду абонемента.

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

Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 1\,000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

В первой строке задано два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n \le 5 \cdot 10^5$$$) — количество аэропортов и количество запросов соответственно.

Во второй строке задано $$$n$$$ целых чисел $$$a_i$$$ ($$$1 \le a_i \le 10^9$$$) — значения класса обслуживания соответствующих аэропортов.

В следующих $$$q$$$ строках задано по два целых числа $$$l_i$$$ и $$$r_i$$$ — для которых хочется определить выгоду абонемента.

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

Для каждого набора входных данных выведите единственное целое число — выгоду абонемента.

Пример
Входные данные
1
4 3
1 1 3 2
1 2
1 3
2 4
Выходные данные
2
2
1

Statement is not available in English language
I. Полимино
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

К Саше на день рождения пришло $$$5$$$ друзей и принесли с собой следующие подарки:

  • Кирилл подарил Саше клеточное поле $$$n \times m$$$;
  • Филипп подарил $$$a$$$ одноклеточных квадратов;
  • Аня подарила $$$b$$$ прямоугольников размером $$$1 \times 2$$$;
  • Юра подарил Саше $$$c$$$ уголков из трех клеток и $$$c$$$ прямоугольников $$$1 \times 3$$$;
  • Большой горилл подарил Саше $$$d$$$ квадратов $$$2 \times 2$$$.

При этом друзья заранее договорились о подарках, а поэтому гарантируется, что $$$a + 2b + 3c + 4d = n \cdot m$$$. Саша до этого хвастался друзьям, что умеет вкладывать в любой прямоугольник максимальное количество уголков, а поэтому друзья решили проверить навыки Саши, но уже задав ему новую задачку:

Саше требуется полностью покрыть прямоугольник $$$n \times m$$$ фигурами, которые подарили друзья, при этом он должен использовать все $$$a$$$ фигурок Филиппа, все $$$b$$$ фигурок Ани, какие-то $$$c$$$ фигурок Юры и все фигурки большого горилла.

Помогите Саше и напишите программу, которая решает поставленную задачу или определяет, что решения не существует.

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

В первой строке указано число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.

Каждый набор данных описывается единственной строкой, в которой указаны неотрицательные целые числа $$$n$$$, $$$m$$$, $$$a$$$, $$$b$$$, $$$c$$$ и $$$d$$$ ($$$1 \le n \le 1000$$$, $$$1 \le m \le 1000$$$, $$$a+2b+3c+4d=n m$$$).

Гарантируется, что сумма $$$n m$$$ по всем наборам входных данных не превосходит $$$10^6$$$.

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

Для каждого набора входных данных выведите «No», если решить задачу невозможно.

В ином случае выведите «Yes» в своей строке, а в следующих $$$n$$$ строках выведите по $$$m$$$ чисел $$$z_{i j}$$$. Одну использованную фигуру следует обозначать одним и тем же номером, а разные фигуры — разными. Номера фигур могут быть любыми числами от $$$1$$$ до $$$n \cdot m$$$.

Пример
Входные данные
4
5 5 0 2 3 3
1 4 0 0 0 1
3 3 1 0 0 2
2 2 2 1 0 0
Выходные данные
Yes
1 1 4 2 2 
1 1 4 2 2 
6 6 3 3 5 
7 6 3 3 5 
7 7 8 8 5 
No
No
Yes 
1 2 
3 3 

Statement is not available in English language
J. Шахматное собеседование
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На собеседовании в одну крупную авиакомпанию в качестве испытания кандидату предлагают сыграть в особые шахматы. Здесь шахматное поле представлено в виде неориентированного графа, состоящего из $$$n$$$ вершин, соединенных $$$m$$$ ребрами двух цветов — белого и черного. В вершинах с номерами $$$k$$$ и $$$q$$$ расположены фигуры короля и ферзя соответственно. Кандидат может выбрать, за какую фигуру он будет играть, а собеседующий выберет оставшуюся. Игроки выполняют ходы поочередно, первым ходит игрок, играющий за фигуру $$$X$$$. За один ход король может перемещаться в любую вершину, соединенную ребром с текущей, а ферзь может перемещаться в любую вершину, до которой существует путь из текущей вершины, состоящий из ребер одного цвета. Побеждает игрок, после хода которого фигуры оказались в одной вершине. Если побеждает кандидат, то собеседование считается пройденным.

Теперь вы интересуетесь для некоторых конфигураций игры $$$k$$$, $$$q$$$ и $$$X$$$, за какую фигуру нужно играть, чтобы гарантировать победу и, естественно, успешное прохождение собеседования.

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

Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 50$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

В первой строке набора входных данных задано три целых числа $$$n$$$, $$$m$$$ и $$$l$$$ ($$$2 \le n \le 100$$$, $$$1 \le m \le 100$$$, $$$1 \le l \le 5 \cdot 10^5$$$) — количество вершин в графе, ребер и количество конфигураций игры соответственно.

В следующих $$$m$$$ строках задано по 3 целых числа $$$u$$$, $$$v$$$ и $$$c$$$ ($$$1 \le u, v \le n$$$, $$$u \ne v$$$, $$$c \in \{1, 2\}$$$) — номера вершин, соединенных ребром, и цвет ребра. Гарантируется, что граф состоит из одной компоненты связности и не содержит кратных ребер.

В следующих $$$l$$$ строках задано два целых числа $$$k$$$ и $$$q$$$ ($$$1 \le k, q \le n$$$, $$$k \ne q$$$) и строка $$$X$$$ — номера вершин, где расположены король и ферзь, и название фигуры, которая должна выполнить первый ход. Если задано «queen» (без кавычек), то первым ходит игрок, играющий за ферзя, если «king» (без кавычек) — игрок, играющий за короля.

Гарантируется, что сумма $$$n$$$ и сумма $$$m$$$ по всем наборам входных данных не превышают $$$100$$$, а сумма $$$l$$$ не превышает $$$5 \cdot 10^5$$$.

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

Для каждого набора входных данных для каждой конфигурации игры выведите «king» (без кавычек), если кандидат должен выбрать короля, чтобы гарантировать победу, «queen» (без кавычек), если кандидат должен выбрать ферзя, и «draw» (без кавычек), если кандидат не сможет гарантировать победу, играя за одну из фигур.

Пример
Входные данные
2
4 4 2
1 2 1
2 3 2
3 4 1
4 1 2
1 3 king
1 3 queen
6 6 1
1 2 1
2 3 2
3 4 1
4 5 2
5 6 1
6 1 2
1 3 queen
Выходные данные
queen
king
draw

K. Formal Condition
time limit per test
5 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Given an array of integers $$$a_1, a_2, \ldots, a_n$$$ and an integer $$$k$$$. There are also $$$q$$$ queries to modify the array: replace the $$$i$$$-th element of the array $$$a$$$ with $$$x$$$.

After each query, as well as for the initial array, you need to determine the maximum value of $$$a_i + a_j$$$, where $$$1 \leq i \lt j \leq n$$$, $$$j - i \lt k$$$, and how many such pairs $$$(i, j)$$$ exist that yield the maximum value.

Note that in this problem, you need to respond to queries in "online" mode.

Input

The first line contains two numbers $$$n$$$ and $$$k$$$ ($$$2 \leq n \leq 10^5$$$, $$$2 \leq k \leq n$$$).

The second line contains $$$n$$$ numbers $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \leq a_i \leq 10^9$$$).

The third line contains a single number $$$q$$$ ($$$1 \leq q \leq 10^5$$$). Then, the following $$$q$$$ lines describe the modification queries.

For each query, two numbers $$$i$$$ and $$$x$$$ are given ($$$1 \leq i \leq n$$$, $$$1 \leq x \leq 10^9$$$), and let the answer for the previous query be $$$(mx, cnt)$$$, where $$$mx$$$ is the maximum sum and $$$cnt$$$ is how many such pairs there were. Then, you need to change the value of the element $$$((i + mx + cnt) \bmod n) + 1$$$ to the value $$$x$$$.

Output

Before all modifications and after each query, output two numbers on one line — what the maximum sum can be and how many such pairs exist.

Example
Input
5 3
5 1 1 1 5
4
1 5
4 2
1 6
3 2
Output
6 4
10 1
7 1
7 3
8 1

L. Sasha and the Homework
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Having lost all the money for a gift, Sasha decided to give a different gift, specifically — to help his girlfriend with her homework:

Let's define the function $$$f(x) = (x \wedge (x + 1)) \oplus (x \wedge (x - 1))$$$.

Where $$$\wedge$$$ denotes the bitwise AND operation and $$$\oplus$$$ denotes the bitwise XOR opearation.

Let's define the function $$$g(x)$$$ as the number of $$$y$$$ ($$$1 \leq y \leq 2^n - 1$$$) for which $$$f(y) = x$$$ holds true.

Also given is the number $$$a$$$ ($$$0 \leq a \leq 2^n - 1$$$). It is required to find the maximum value of $$$a \oplus g(x)$$$.

Help Sasha please his girlfriend and solve her homework for her.

Input

This problem consists of several test cases.

The first line contains a single number $$$T$$$ ($$$1 \leq T \leq 5000$$$) — the number of test cases.

Then follows their description.

The first line contains a single number $$$n$$$ ($$$3 \leq n \leq 10^5$$$).

The second line contains a string $$$a$$$ consisting only of characters "0" or "1" of length $$$n$$$ defining the number $$$a$$$ in binary notation.

It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$10^5$$$

In other words, the number defined by the string will be equal to $$$2^{n - 1} \cdot a_1 + 2^{n - 2} \cdot a_2 + \ldots + 2^{0} \cdot a_n$$$

Output

For each test case, output the answer to the problem as a binary string of "0" and "1"

Example
Input
5
3
010
4
1000
4
0010
4
1101
4
1111
Output
011
1110
0110
1111
1111
Note

Consider the first test case:

$$$ f(1) = 0, f(2) = 2, f(3) = 2, f(4) = 4, f(5) = 0, f(6) = 2, f(7) = 6 $$$

Therefore:

$$$ g(0) = 2, g(2) = 3, g(6) = 1, g(4) = 1 $$$

Hence, the maximum value is achieved at $$$x = 2$$$ or $$$x = 6$$$. ($$$2 \oplus 1 = 3$$$)

M. Madoka and The Olympiad in Novosibirsk
time limit per test
4 seconds
memory limit per test
512 megabytes
input
standard input
output
standard output

Madoka has already finished writing the municipal stage in Novosibirsk and went home to wait for the results of the closed testing.

At the olympiad, there was exactly one problem — given a permutation of numbers from $$$1$$$ to $$$n$$$: $$$p_1, p_2, \ldots, p_n$$$. It is necessary to find out the minimum number of times one can swap adjacent elements to sort the permutation in ascending order. However, Madoka solved it as follows: $$$k + \frac{|1 - p_1| + |2 - p_2| + \ldots + |n - p_n|}{2}$$$.

But since the jury knows who Madoka's father is, in order not to lose their job, they must create tests such that Madoka's solution is correct. Therefore, they became interested in how many permutations of length $$$n$$$ exist for which Madoka's solution will yield the correct answer to the problem, but since the answer may be too large, output it modulo $$$10^9 + 7$$$.

Input

Two numbers $$$n, k$$$ are given in a single line separated by a space ($$$2 \leq n \leq 17$$$, $$$0 \leq k \leq 50$$$).

Output

In a single line, print exactly the number — the number of permutations of length $$$n$$$ modulo $$$10^9 + 7$$$ for which the minimum number of swaps of neighboring elements for sorting is $$$k + \frac{|1 - p_1| + |2 - p_2| + \ldots + |n - p_n|}{2}$$$.

Examples
Input
3 1
Output
1
Input
3 0
Output
5
Input
4 0
Output
14
Note

In the first example, only the permutation $$$3, 2, 1$$$ is suitable, for it the minimum number of swaps is  — $$$3$$$, and Madoka's answer is — $$$\frac{|1 - 3| + |2 - 2| + |3 - 1|}{2} + 1=2 + 1 = 3$$$.