alexjercan/bugnet huggingface dataset:
Problem D: Exportation in Space

In an era of space travelling, Mr. Jonathan A. Goldmine exports a special
material named "Interstellar Condensed Powered Copper". A piece of it consists
of several spheres floating in the air. There is strange force affecting between
the spheres so that their relative positions of them are not changed. If you
move one of them, all the others follow it.

Example of ICPC (left: bare, right: shielded)

To transport ICPCs between planets, it needs to be shielded from cosmic
rays. It will be broken when they hit by strong cosmic rays. Mr. Goldmine needs
to wrap up each ICPC pieces with anti-cosmic-ray shield, a paper-like material
which cuts all the cosmic rays. To save cost, he wants to know the minimum area
of the shield he needs to wrap an ICPC piece up.

Note that he can't put the shield between the spheres of an ICPC because
it affects the force between the spheres. So that the only way to shield it is
to wrap the whole ICPC piece by shield.

Mr. Goldmine asked you, an experienced programmer, to calculate the
minimum area of shield for each material.

You can assume that each sphere in an ICPC piece is a point, and you can
ignore the thickness of the shield.

Input

Each file consists of one test case, which has the information of one
ICPC piece. A test case starts with a line with an integer N (4 <= N
<= 50), denoting the number of spheres in the piece of the test case. Then N
lines follow. The i-th line of them describes the position of the i-th
sphere. It has 3 integers xi, yi and
zi (0 <= x, y, z <= 100),
separated by a space. They denote the x, y and z
coordinates of the i-th sphere, respectively.

It is guaranteed that there are no data all of whose spheres are on the
same plane, and that no two spheres in a data are on the same coordinate.

Output

For each input, print the area of the shield Mr. Goldmine needs. The
output value should be in a decimal fraction and should not contain an error greater than 0.001.

Sample Input 1

4
0 0 0
0 0 1
0 1 0
1 0 0

Output for the Sample Input 1

2.366

Sample Input 2

8
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

Output for the Sample Input 2

6.000
Problem F: Magnum Tornado

We have a toy that consists of a small racing circuit and a tiny car. For
simplicity you can regard the circuit as a 2-dimensional closed loop, made of
line segments and circular arcs. The circuit has no branchings. All segments and
arcs are connected smoothly, i.e. there are no sharp corners.

The car travels on this circuit with one distinct feature: it is capable
of jumping, which enables short cuts. It can jump at any time for any distance.
The constraints are that 1) the traveling direction will never change during
each jump, 2) the jumping direction needs to match the traveling direction at
the time of take-off, and 3) the car must land on the circuit in parallel to the
tangent at the landing point. Note that, however, the traveling direction at the
landing point may be the opposite of the forward direction (we define forward
direction as the direction from the starting point to the ending point of each
line segment in the circuit.) That is, the car can traverse part of the circuit
in the reverse direction.

Your job is to write a program which, given the shape of the circuit,
calculates the per-lap length of the shortest route. You can ignore the height
of the jump, i.e. just project the route onto the plane on which the circuit
resides. The car must start from the starting point of the first line segment,
heading towards the ending point of that segment, and must come back to the same
starting point heading in the same direction.

Figure 1 shows the solution for the first sample input.

Figure 1: The solution for the first sample input

Input

The input begins with a line that solely consists of an integer N
(2 <= N <= 100), the number of line segments in the circuit. This is
followed by N lines, where the i-th line corresponds to
the i-th line segment (1 <= i <= N). Each of
these N lines contains 4 integers x0, y0,
x1 and y1 (-100 <= x0,
y0, x1, y1 <=
100) in this order, separated by a space. Here (x0, y0)
is the starting point and (x1, y1)
is the ending point of the i-th line segment. For each i,
the i-th and (i+1)-th line segments are connected smoothly
by a circular arc, which you may assume exists uniquely (for simplicity, we
consider the (N+1)-th line as the 1st line). You may also assume
that, while two line segments or circular arcs may cross each other, they will
never overlap nor be tangent to each other.

Output

For each test case, output one line that solely consists of a decimal
value, representing the per-lap length. The output value should be in a decimal fraction and should not contain an error greater
than 0.001.

Sample Input 1

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

Output for the Sample Input 1

9.712

Sample Input 2

12
4 5 4 6
3 7 1 7
0 8 0 10
1 11 3 11
4 10 4 9
5 8 99 8
100 7 100 4
99 3 4 3
3 2 3 1
2 0 1 0
0 1 0 3
1 4 3 4

Output for the Sample Input 2

27.406
Problem G: Nezumi's Treasure

There were a mouse and a cat living in a field. The mouse stole a dried
fish the cat had loved. The theft was found soon later. The mouse started
running as chased by the cat for the dried fish.

There were a number of rectangular obstacles in the field. The mouse
always went straight ahead as long as possible, but he could not jump over or
pass through these obstacles. When he was blocked by an obstacle, he turned
leftward to the direction he could go forward, and then he started again to run
in that way. Note that, at the corner, he might be able to keep going without
change of the direction.

He found he was going to pass the same point again and again while chased by
the cat. He then decided to hide the dried fish at the first point where he
was blocked by an obstacle twice from that time.
In other words, he decided to hide it at the first turn
after he entered into an infinite loop.
He thought he could come there again
after the chase ended.

For example, in the following figure,
he first went along the blue line and turned left at point B.
Then he went along the red lines counter-clockwise,
and entered into an infinite loop.
In this case, he hid dried fish at NOT point B but at point A,
because when he reached point B on line C for the second time,
he just passed and didn't turn left.

Example of dried fish point

Finally the cat went away, but he remembered neither where he thought of
hiding the dried fish nor where he actually hid it. Yes, he was losing his
dried fish.

You are a friend of the mouse and talented programmer. Your task is to
write a program that counts the number of possible points the mouse hid the
dried fish, where information about the obstacles is given. The mouse should be
considered as a point.

Input

The input begins with a line with one integer N (4 <= N
<= 40,000), which denotes the number of obstacles. Then N lines
follow. Each line describes one obstacle with four integers Xi,1,
Yi,1, Xi,2, and Yi,2
(-100,000,000 <= Xi,1, Yi,1, Xi,2,
Yi,2 <= 100,000,000). (Xi,1, Yi,1)
and (Xi,2, Yi,2) represent the coordinates of
the lower-left and upper-right corners of the obstacle respectively. As usual, X-axis
and Y-axis go right and upward respectively.

No pair of obstacles overlap.

Output

Print the number of points the mouse could hide the dried fish. You can
assume this number is positive (i.e. nonzero).

Sample Input 1

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

Output for the Sample Input 1

4

Sample Input 2

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

Output for the Sample Input 2

8
Problem H: Testing Sorting Networks

A N sorting network is a circuit that accepts N
numbers as its input, outputs them sorted. Mr. Smith is an engineer of a company
that sells various sizes of the circuit.

One day, the company got an order of N sorting networks.
Unfortunately, they didn't have the circuit for N numbers at the
time. The clerk once declined the order for being out of stock, but the client
was so urgent that he offered much money if he could get the circuit in a week.
The deal escalated to a manager, and she asked Mr. Smith for a solution to
produce the N sorting networks by the deadline.

He came up with an idea to combine several N/2 sorting
networks, because he noticed that they have many stocks of the circuits for N/2
numbers. He designed a new circuit using the N/2 sorting networks,
but he was not sure if it would really work as an N sorting network.
So, he asked a colleague, you, to check if it was actually an N
sorting network.

The circuit he designed consists of multiple stages. Each stage of the
circuit consists of two N/2 sorting networks, which makes each stage
accept a sequence of N numbers as inputs and output a sequence of N
numbers. From the 1st to the N/2-th input numbers of a stage goes to
one of those N/2 sorting networks, and from the (N/2+1)-th
to the N-th input numbers goes to the other. Similarly, the first
half of the output numbers of a stage is the output of the former sorting
network and the second half is the output of the latter, both of which are
sorted in ascending order. Each output of a stage is connected to exactly one
input of the next stage, and no two inputs are connected to the same output
line. The input of the last stage is the input of the whole circuit and the
output of the first stage is the output of the whole circuit.

Input

The input begins with a line containing a positive even integer N
(4 <= N <= 100) and a positive integer D (1 <= D
<= 10). N indicates the number of the input and output of the circuit
and D indicates the number of the stages of the circuit. The i-th
line of the following D-1 lines contains N integers wi1,
wi2,..., wiN
(1 <= wij <= N ), which describes
the wiring between the i-th and (i+1)-th stages. wij
indicates the j-th input of the i-th stage and the wij-th
output of the (i+1)-th stage are wired. You can assume wi1,
wi2,..., wiN
are unique for each i.

Output

Print a line containing "Yes" if the circuit works as an N
sorting network. Print "No" otherwise.

Sample Input 1

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

Output for the Sample Input 1

Yes

Sample Input 2

4 3
3 1 2 4
1 3 2 4

Output for the Sample Input 2

No
Problem I: Train King

Roland has been given a mission of dangerous material transfer by Train
King. The material is stored in the station A and subject to being transferred
to the station B. He will bring it by direct trains between A and B, one (or
zero) unit per ride.

Your task is to write a program to find out the most optimal way of his
bringing. Your program will receive the timetable of trains on the mission day
and should report how many units of material can be transferred at the end. Be
aware that there can be trains which can go to the past time or the same time
which train leaved the station.

Each train consists of one or more cars. Roland is disallowed to ride the
same car of the same train multiple times. This restriction avoids time paradox.
He is still allowed to get on a different car, though. You can assume he can
change trains instantly.

Input

The first line contains two integers NAB and NBA
(0 <= NAB, 0 <= NBA and NAB
+ NBA <= 50). NAB denotes the number
of trains from A to B; NBA denotes the number from B to A.

The next NAB lines describe the information about
trains from A to B. Each line gives the information of one train with three
integers Ci, Di and Ai
(1 <= Ci <= 10, 0 <= Di, Ai
< 86400) : the number of cars, the departure time, and the arrival time.

The next NBA lines describe the information about
trains from B to A. The information is given in the same format.

Output

Print the maximum amount, in units, of dangerous material that can be
transferred.

Sample Input 1

1 1
10 100 0
10 100 0

Output for the Sample Input 1

10

Sample Input 2

5 5
10 0 100
10 200 300
10 400 500
10 600 700
10 800 900
10 100 200
10 300 400
10 500 600
10 700 800
10 900 1000

Output for the Sample Input 2

5
Problem J: Tree Construction

Consider a two-dimensional space with a set of points (xi,
yi) that satisfy xi < xj
and yi > yj for all i < j.
We want to have them all connected by a directed tree whose edges go toward
either right (x positive) or upward (y positive). The
figure below shows an example tree.

Figure 1: An example tree

Write a program that finds a tree connecting all given points with the
shortest total length of edges.

Input

The input begins with a line that contains an integer n (1 <=
n <= 1000), the number of points. Then n lines follow. The
i-th line contains two integers xi and yi
(0 <= xi, yi <= 10000), which give
the coordinates of the i-th point.

Output

Print the total length of edges in a line.

Sample Input 1

5
1 5
2 4
3 3
4 2
5 1

Output for the Sample Input 1

12

Sample Input 2

1
10000 0

Output for the Sample Input 2

0
回文数

Problem Statement

整数nに最も近い回文数を求めよ．

なお，非負整数xが回文数であるとは，xを十進法で表現した文字列とそれを反転させた文字列が等しいことをいう．

例えば0,7,33,10301などは回文数であり，32,90,1010などは回文数でない．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

n

Constraints

1≦n≦10^4

Output

nに最も近い回文数を出力せよ．

そのような数が複数ある場合は最も小さいものを出力せよ．

Sample Input 1

13

Output for the Sample Input 1

11

13に最も近い回文数は11である．

Sample Input 2

7447

Output for the Sample Input 2

7447

7447は回文数なのでそのまま出力すればよい．

Sample Input 3

106

Output for the Sample Input 3

101

106に最も近い回文数は111と101のふたつあるが，そのうち小さい方の101を出力する．
()

Problem Statement

文字列Sがある．はじめ，Sは空文字列である．

以下の処理をn個順番に行う．

Sの末尾にp_i(="("または")")をx_i個追加する．

処理を施した後，Sがバランスのとれた文字列であるかどうか判定せよ．

「文字列のバランスが取れている」とは，次のように定義される．

空文字列はバランスが取れている．

バランスの取れている文字列aとbに対して，a + b(+は文字列の連結を表す)はバランスが取れている．

バランスの取れている文字列aに対して，"(" + a + ")"はバランスが取れている．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

n
p_1 x_1
. . .
p_n x_n

Constraints

1≦n≦1,000

1≦x_i≦10^6

p_iは"("または")"

Output

バランスがとれているときは"YES"を，そうでなければ"NO"を1行に出力せよ．

Sample Input 1

3
( 5
) 4
) 1

Output for the Sample Input 1

YES

文字列S="((((()))))"はバランスがとれている．

Sample Input 2

5
( 2
) 2
( 3
) 1
) 2

Output for the Sample Input 2

YES

Sample Input 3

2
) 1
( 1

Output for the Sample Input 3

NO
さんぽ

Problem Statement

ねこのそらは散歩が大好きだ．道を歩くと新しい発見がある．

そらの住む町は N 個の広場と N-1 本の道からなる．

道はちょうど二つの広場をつないでおり，枝分かれしたり道どうしが交わったりしない．

道には，歩くのにかかる時間 t，得られる発見の個数の上限 m，および，発見一つあたりの価値 v が指定されている．

道を一方の端からもう一方の端まで歩いたとき，m 回目までの通行では価値 v の発見が一つ得られるが，m+1 回目以降は発見が得られない．

今日もそらは，町内の散歩に出かけるようだ．

そらの散歩は広場 1 から始まり，いくつかの道 ( 0 本かもしれない ) を通って，最後に広場 1 に戻ってくる，というルートをとる．

また，日が暮れると寂しい気持ちになるので，そらは散歩時間を T 以下にしたいと思っている．

そらの友人であるあなたの仕事は，散歩時間が T 以下である散歩ルートにおいて，得られる発見の価値の総和の最大値を求めることである．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

N T
a_1 b_1 t_1 m_1 v_1
. . .
a_{N-1} b_{N-1} t_{N-1} m_{N-1} v_{N-1}

入力の i+1 行目は，広場 a_i と b_i をつなぐ，通行時間 t_i，得られる発見の個数の上限 m_i，発見一つあたりの価値 v_i の道を表している．

Constraints

1 ≦ N ≦ 300

1 ≦ T ≦ 10^4

1 ≦ a_i, b_i ≦ N

1 ≦ t_i ≦ 10^4

0 ≦ m_i ≦ 10^4

1 ≦ v_i ≦ 10^5

どの二つの広場も道を通って行き来できる．

Output

得られる発見の価値の総和の最大値を 1 行に出力せよ．

Sample Input 1

4 5
1 2 1 4 7
2 3 1 2 77
2 4 1 2 777

Output for the Sample Input 1

1568

1→2→4→2→1 と移動することで，合計で価値 7+777+777+7=1568 の発見が得られる．

Sample Input 2

2 10000
1 2 1 10 1

Output for the Sample Input 2

10

Sample Input 3

5 15
1 2 3 2 1
2 3 3 2 1
1 4 8 2 777
1 5 1 3 10

Output for the Sample Input 3

32
goto busters

Problem Statement

あなたは謎のプログラムのソースコードを見つけた．

さっそくコンパイルして実行してみたが，いつまで待っても処理が終わらない．

どうやら，プログラムが無限ループしてしまっているようである．

ソースコードを詳しく見てみたところ，以下のようなことがわかった．

ソースコードは N 行からなり，各行はラベル文か goto 文のいずれかである．

ラベル文と goto 文はそれぞれ次のようなフォーマットに従っている．

LABEL:

goto LABEL;

ここで，LABEL はラベルを表す文字列である．

プログラムは先頭の行から順番に 1 行ずつ処理される．

ラベル文と goto 文を処理したときの挙動は次のとおり：

ラベル文を処理しても何も起こらない

goto 文を処理したとき，次の処理は同じ名前のラベルを持ったラベル文から始める

最後の行を処理し終えて次に処理する行がなくなったとき，プログラムは終了する．

あなたは，いくつかの goto 文を削除することでプログラムを正しく終了させたいと思っている．

一方で，手を加える箇所はできるだけ少なくしたい．

プログラムを終了させるためには最小でいくつの goto 文を消せばいいだろうか．

Input

N
s_1
. . .
s_N

s_i は次の二つのうちのいずれかである．

LABEL_i:
goto LABEL_i;

Constraints

1 ≦ N ≦ 100

ラベルはアルファベットの大文字または小文字のみからなる，1 文字以上 10 文字以下の文字列

すべての s_i = "goto LABEL_i;" に対して，s_j = "LABEL_i:" となる j が存在する．

同じ名前のラベルを持ったラベル文は二回以上現れない．

"goto" という名前のラベルは存在しない．

Output

削除すべき goto 文の最小個数を 1 行に出力せよ．

Sample Input 1

2
LOOP:
goto LOOP;

Output for the Sample Input 1

1

Sample Input 2

8
goto there;
loop:
goto loop;
here:
goto goal;
there:
goto here;
goal:

Output for the Sample Input 2

0

Sample Input 3

1
GOTO:

Output for the Sample Input 3

0
replace

Problem Statement

文字列Sが与えられる．
以下の処理をQ個順番に行う．

Sに含まれる文字c_iを全て同時に文字列p_iで置き換える．

最後に文字列SのA文字目からB文字目まで(1-indexed)を出力せよ．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

S
Q A B
c_1 p_1
...
c_Q p_Q

Constraints

1≦Q≦3 \times 10^5

1≦A≦B≦10^{18}

B-A≦10^5

1≦|S|≦10

1≦|p_i|≦10

Sは小文字のアルファベットからなる文字列である．

c_iは小文字のアルファベット1文字である．

p_iは"."(ピリオド)1文字または小文字のアルファベットからなる文字列である．p_i="."(ピリオド)のとき，p_iは空文字列として扱いなさい．

Output

Q個の処理を順に行った後，Bが|S|よりも大きかったときは"."(ピリオド)を1行に出力せよ．

それ以外のときは文字列SのA文字目からB文字目まで(1-indexed)を出力せよ．

Sample Input 1

abaz
3 1 5
a cab
b .
c x

Output for the Sample Input 1

xaxaz

文字列Sは，abaz → cabbcabz → cacaz → xaxazと変化する．

Sample Input 2

original
1 2 5
x notchange

Output for the Sample Input 2

rigi

Sample Input 3

aaaa
2 1 1
a .
a nothing

Output for the Sample Input 3

.
Sliding GCD

Problem Statement

自然数の集合 S に対して，集合 \{ GCD(T) | T ⊆ S, T は空でない \} の要素数を f(S) とおく．

ここで，GCD(T) は T に含まれるすべての数を割り切るような最大の整数である．

特に，T が一つの整数 a のみからなるときは GCD(\{a\}) = a であることに注意せよ．

i = 1, 2, . . ., N - W+1 に対して f(\{i, i+1, . . ., i+W - 1\}) を求めよ．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

N W

Constraints

1 ≦ W ≦ N ≦ 10^5

Output

i = 1, 2, . . ., N-W+1 のときの f(\{i, i+1, . . ., i+W-1\}) の値を半角スペース区切りで 1 行に出力せよ．

Sample Input 1

10 2

Output for the Sample Input 1

2 3 3 3 3 3 3 3 3

GCD(\{1\}) = 1, GCD(\{2\}) = 2, GCD(\{1,2\}) = 1 となるから f(\{1,2\}) = 2 である．

Sample Input 2

30 7

Output for the Sample Input 2

7 8 9 10 10 11 11 11 11 12 11 12 10 12 12 11 10 12 12 12 10 11 11 13
魔法陣

Problem Statement

〜魔法陣の描き方〜

十分広くて真っ白な床を用意します．

床の座標 (0,0) の点を中心にして，半径 1, 2, ..., R の円を描きます．

半径 1 の円と半径 2 の円の間，半径 3 の円と半径 4 の円の間，... を青色で塗ります．なお，半径 R の円の外には色を塗ってはいけません．

床に頂点数 N の多角形を一つ描きます．

多角形の内部の白色の領域を青色で，青色の領域を白色で塗りなおします．

魔法陣の力は，魔法陣に青色が多く含まれるほど強くなるという．

そこであなたには，魔法陣に含まれる青い領域の面積を求めてほしい．

次の図はこの手順で描くことのできる魔法陣の一例である．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

N R
x_1 y_1
...
x_N y_N

(x_i, y_i) は多角形の i 番目の頂点である．

Constraints

3 ≦ N ≦ 100

1 ≦ R ≦ 100

多角形は半径 R の円の内部または円周上に含まれる．

多角形は自己交差をもたない．

多角形の頂点は反時計回りの順番で与えられる．

Output

青い領域の面積を 1 行に出力せよ．

出力する値は，真の値との絶対誤差または相対誤差が 10^{-8} 未満でなければならない．

Sample Input 1

3 1
0 0
1 0
0 1

Output for the Sample Input 1

0.500000000

Sample Input 2

3 2
0 0
2 0
0 2

Output for the Sample Input 2

8.995574288

Sample Input 3

3 2
1 -1
1 1
-2 0

Output for the Sample Input 3

11.123246567

Sample Input 4

4 3
1 1
-1 1
-1 -1
1 -1

Output for the Sample Input 4

11.707963268
1

Problem Statement

長さnのビット列がある．

左からi番目のビットが1のとき，スコアをa_i点得られる．

左からi番目のビットを中心に距離w以内にある1の個数(=|\{j \in \{1,...,n\}∩\{i-w,...,i+w\} | 左からj番目のビットが1\}|)が奇数のとき，スコアをb_i点得られる．

スコアを最も多く得られるようなビット列を求めよ．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

n w
a_1 ... a_n
b_1 ... b_n

Constraints

1≦n≦1,000

1≦w≦1,000

0≦a_i≦10^5

0≦b_i≦10^5

Output

最も多くスコアを得られるビット列を1行に出力せよ．

そのような解が複数ある場合はどれを出力してもよい．

Sample Input 1

4 1
3 1 2 7
13 8 25 9

Output for the Sample Input 1

1001

3+7+13+8+25+9=65点が得られる．

Sample Input 2

2 1
1 1
3 3

Output for the Sample Input 2

10

01と出力してもよい．
One

Problem Statement

電車の窓から美しい山並みが見える．

窓は，左下隅の座標が (0, 0)，右上隅の座標が (W, H) の長方形である．

窓からは N つの山が見えており，i 番目の山は上に凸な放物線 y = a_i (x-p_i)^2 + q_i の形をしている．

山と空との境界線の長さを求めよ．

次の三つの図は Sample Input に対応している．太線で示されている部分が山と空との境界線である．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

W H N
a_1 p_1 q_1
...
a_N p_N q_N

Constraints

1 ≦ W, H ≦ 100

1 ≦ N ≦ 50

-100 ≦ a_i ≦ -1

0 ≦ p_i ≦ W

1 ≦ q_i ≦ H

i \neq j ならば (a_i, p_i, q_i) \neq (a_j, p_j, q_j)

Output

山と空との境界線の長さを 1 行に出力せよ．

出力する値は，真の値との絶対誤差または相対誤差が 10^{-6} 未満でなければならない．

Sample Input 1

20 20 1
-1 10 10

Output for the Sample Input 1

21.520346288593280

Sample Input 2

20 20 2
-1 10 10
-2 10 5

Output for the Sample Input 2

21.520346288593280

Sample Input 3

15 100 2
-2 5 100
-2 10 100

Output for the Sample Input 3

126.921542730127873
Cube of Two

Problem Statement

日本で販売されているルービックキューブの各面の配色が，
世界で標準的に採用されているものに合わせられたのはつい最近のことだ．

これに慣れるため，まずは簡単な2x2x2のキューブをスクランブルして遊ぼう．

初期状態のルービックキューブは，各色が1つの面に集まるように揃えられており，
上面に赤色，正面に黄色，右側面に青色が見える．

また，下面は橙色，背面は白色，左側面は緑色である．
展開図を用いると次のように表せる．

各面に対し，向かって時計回りに90°回転させる操作を，それぞれの頭文字をとってU,F,R,D,B,Lと表す．

ルービックキューブのスクランブルは，各文字が1つの回転操作に対応する文字列Sとして表される．

初期状態から入力に従ってスクランブルしたときの，ルービックキューブの各面の色を展開図として出力せよ．

Input

入力は以下の形式に従う．

S

Constraints

1≦|S|≦100（|S|は文字列の長さ）

SはU,F,R,D,B,Lのみを含む．

Output

初期状態のルービックキューブに対し，各回転操作を順に適用した後の各面の状態を展開図として出力せよ．

各面の色はr(赤),o(橙),y(黄),g(緑),b(青),w(白)の6種類の英小文字で表す．
また，空白部はピリオド(.)で表す．

Sample Input 1

R

Output for the Sample Input 1

..ry....
..ry....
ggyobbrw
ggyobbrw
..ow....
..ow....

右側面を時計回りに90°回転させると次のようになる．

Sample Input 2

UFRDBL

Output for the Sample Input 2

..go....
..yb....
rbrwrwby
wogoygwo
..yb....
..gr....

各回転操作に対する状態の遷移は次のようになる．
K-th String

Problem Statement

長さNの文字列Sに対する接尾辞配列SAを，以下の手順で得られるN以下の正整数の順列として定義する．

Sのi文字目からj文字目までの部分文字列をS[i..j]と表す．ただし添字は1-indexedである．

各接尾辞S[i..N] (i=1,2,...,N)を辞書式順序（昇順）で整列する．

整列した各接尾辞の開始位置iを順に並べる．

たとえば，S="mississippi"の接尾辞配列SAは，以下のようになる．

入力として，長さNの文字列に対する接尾辞配列SAが与えられる．

SAが得られるような文字列のうち，辞書式順序でK番目(1-indexed)のものを求めよ．

ただし，元の文字列は，アルファベット順に'a'から数えて高々A個の文字のみからなる．

Input

入力は以下の形式に従う．与えられる数は全て整数である．

N A K
SA_1
SA_2
...
SA_N

Constraints

1≦N≦10^5

1≦A≦26

1≦K≦10^{18}

1≦SA_i≦N

i \neq j ならば SA_i \neq SA_j

Output

SAが得られるような辞書式順序でK番目の文字列を1行に出力せよ．

K番目の文字列が存在しない場合，"Impossible"と出力せよ．

Sample Input 1

3 4 2
2
1
3

Output for the Sample Input 1

bad

A=4の場合，SA={2,1,3}となる文字列は"bac","bad","cad","cbd"の4通り．

したがって，辞書式順序で2番目の"bad"が答えとなる．

Sample Input 2

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

Output for the Sample Input 2

ritsumeicampdaytwo
社員旅行

Problem Statement

あなたの会社にはn人の社員が存在する．m個の社員(a_i,b_i)の組について，a_iはb_iの上司である．

社員xが社員yの実質的な上司であるとは，次のうち少なくとも一方が成り立つことをいう．

xがyの上司である．

yの実質的な上司である社員zが存在して，xはzの上司である．

あなたの会社で，自分自身が自分の実質的な上司であるような社員は存在しない．

あなたの会社では社員が全員参加する社員旅行が計画されている．全社員の要求により，旅館での部屋割りは「よい部屋割り」でなければならない．

ある部屋割りが「よい部屋割り」であるとは以下の両方が満たされることをいう．

各社員はどこかの部屋に割り振られる．

社員xと社員yが同じ部屋に割り振られているとき，xはyの実質的な上司でない．

幹事の社員は非常に優秀なので，「よい部屋割り」でかつ必要な部屋の数が最小になるように部屋割りを行った．しかし残念なことに予算が不足している．どうしても必要な部屋の数を減らさなければならないらしい．

そこで，人事部で働くあなたは上司-部下の関係を一つだけ解消することによって，「よい部屋割り」を得るために必要な部屋の数を減らすことにした．

さて，どの関係を解消すればよいのだろう？

Input

入力は以下の形式に従う．与えられる数は全て整数である．

n m
a_1 b_1
...
a_m b_m

Constraints

2≦n≦10^5

1≦m≦2 \times 10^5

1≦a_i<b_i≦n

i \neq jならば(a_i, b_i) \neq (a_j, b_j)

Output

次を満たすようなiを昇順に1行ずつ出力せよ．

「a_iがb_iの上司である」という関係を解消したとき，「よい部屋割り」を得るために必要な部屋の数を減らすことができる．

そのようなiが存在しない場合は-1を1行に出力せよ．

Sample Input 1

5 4
1 2
2 3
3 4
3 5

Output for the Sample Input 1

1
2
王様の視察

とある国の偉い王様が、突然友好国の土地を視察することになった。
その国は電車が有名で、王様はいろいろな駅を視察するという。

電車の駅は52個あり、それぞれに大文字か小文字のアルファベット1文字の名前がついている（重なっている名前はない）。
この電車の路線は環状になっていて、aの駅の次はbの駅、bの駅の次はcの駅と順に並んでいてz駅の次はA駅、その次はBの駅と順に進み、Z駅の次はa駅になって元に戻る。
単線であり、逆方向に進む電車は走っていない。

ある日、新聞社の記者が王様が訪れる駅の順番のリストを手に入れた。

「dcdkIlkP…」

最初にd駅を訪れ、次にc駅、次にd駅と順に訪れていくという。これで、偉い国の王様を追跡取材できると思った矢先、思わぬことが発覚した。そのリストは、テロ対策のため暗号化されていたのだ！記者の仲間が、その暗号を解く鍵を入手したという。早速この記者は鍵を譲ってもらい、リストの修正にとりかかった。鍵はいくつかの数字の列で構成されている。

「3 1 4 5 3」

この数字の意味するところは、はじめに訪れる駅は、リストに書いてある駅の3つ前の駅。
2番目に訪れる駅はリストの2番目の駅の前の駅、という風に、実際訪れる駅がリストの駅の何駅前かを示している。
記者は修正に取りかかったが、訪れる駅のリストの数よりも、鍵の数の方が小さい、どうするのかと仲間に聞いたところ、最後の鍵をつかったら、またはじめの鍵から順に使っていけばよいらしい。
そして記者はようやくリストを修正することができた。

「abZfFijL…」

これでもう怖い物は無いだろう、そう思った矢先、さらに思わぬ事態が発覚した。
偉い王様は何日間も滞在し、さらにそれぞれの日程ごとにリストと鍵が存在したのだ。
記者は上司から、すべてのリストを復号するように指示されたが、量が量だけに、彼一人では終わらない。
あなたの仕事は彼を助け、このリストの復号を自動で行うプログラムを作成することである。

Input

入力は複数のデータセットから構成される。各データセットの形式は次の通りである。

n
k1 k2... kn
s

n は鍵の数を表す整数であり、1以上 100 以下と仮定して良い。
続く行には鍵のリストが記載されている。kiはi番目の鍵を示す。1以上52以下と仮定して良い。
sはアルファベット大文字・小文字からなる文字列で、訪れる駅のリストを示す。1文字以上100文字以下であると仮定して良い。
n=0 は入力の終わりを示す。これはデータセットには含めない。

Output

各データセットに対する復号されたリストを各1行に出力せよ。

Sample Input

2
1 2
bdd
3
3 2 1
DDDA
5
3 1 4 5 3
dcdkIlkP
0

Output for Sample Input

abc
ABCx
abZfFijL