alexjercan/bugnet huggingface dataset:
Problem D: Indian Puzzle

In the Indian Puzzle, one is intended to fill out blanks with numbers and operators in a n by n grid in order to make equalities in the grid true (See Figure 1).

Figure 1

A blank cell should be filled out with a number (from 0 to 9 inclusive) or an operator (+, -, ×, ÷, =), and black cells split equalities. Initially, some cells are already filled with numbers or operators.

The objective of this puzzle is to fill out all the blank cells with numbers (from 0 to 9 inclusive) and operators (+, -, ×, ÷) in a given list. All the numbers and operators in the list must be used to fill out the blank cells.

A equality is organized by more than 2 consecutive left-to-right or top-to-bottom white cells. You can assume that a equality contains exactly one cell with '=' which connects two expressions.

The expressions conform to the order of operations and semantics of conventional four arithmetic operations. First, do all multiplication and division, starting from the left (top). Then, do all addition and subtraction, starting from the left (top). In addition, this puzzle has the following rules:

Division by zero and division leaving a remainder, are not allowed.

Leading zeros are not allowed.

Unary operators like 3×-8=-24 are not allowed.

In a formal description, the equality must conform the syntax in the following BNF:

<Eq> ::= <Ex> = <Ex>
<Ex> ::= <N0> | <Ex> <Op> <N0>
<N0> ::= <N> | 0
<N> ::= <D> | <N> <D> | <N> 0
<Op> ::= + | - | × | ÷
<D> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Of course, puzzle creators must make solvable puzzle.
Your task is to write a program which verifies whether given puzzle is solvable or not.

Input

Input consists of several datasets. Each dataset consists of:

H W
H × W characters
n
n characters

The integers H and W are the numbers of rows and columns of the grid, respectively. H × W characters denote the grid which contains '.' representing a blank cell, '#' representing a black cell, numbers (from 0 to 9 inclusive), operators('+','-', '*', '/', '=')(× is represented by '*' and ÷ is represented by '/').

The integer n is the number of characters in the list. The last line of a dataset contains n characters indicating numbers and operators for the blank cells.

The end of input is indicated by a line containing two zeros separated by a space.

Output

For each dataset, print "Yes" if the given puzzle is solvable, "No" if not.

Constraints

Judge data includes at most 100 data sets.

H, W ≤ 10

n ≤ 10

Sample Input

5 5
4=..2
+#=#+
.-2=.
=#*#=
.-.=3
6
7 3 1 4 / 8
1 6
8..3=2
2
2 +
0 0

Output for the Sample Input

Yes
No
Problem E: Amazing Graze

In 2215 A.D., a war between two planets, ACM and ICPC, is being more and more intense.

ACM introduced new combat planes. These planes have a special system that is called Graze, and fighting power of a plane increases when it is close to energy bullets that ICPC combat planes shoot.

Both combat planes and energy bullets have a shape of a sphere with a radius of R. Precisely, fighting power of a plane is equivalent to the number of energy bullet where distance from the plane is less than or equals to 2R.

You, helper of captain of intelligence units, are asked to analyze a war situation. The information given to you is coordinates of AN combat planes and BN energy bullets. Additionally, you know following things:

All combat planes and energy bullet has same z-coordinates. In other word, z-coordinate can be ignored.

No two combat planes, no two energy bullets, and no pair of combat plane and energy bullet collide (i.e. have positive common volume) each other.

Your task is to write a program that outputs total fighting power of all combat planes.

Input

Input file consists of a number of data sets.
One data set is given in following format:

AN BN R
XA1 YA1
XA2 YA2
:
XAAN YAAN
XB1 YB1
XB2 YB2
:
XBBN YBBN

AN, BN, R are integers that describe the number of combat planes, energy bullets, and their radius respectively.

Following AN lines indicate coordinates of the center of combat planes. Each line has two integers that describe x-coordinate and y-coordinate.

Following BN lines indicate coordinates of the center of energy bullets, in the same format as that of combat planes.

Input ends when AN = BN = 0. You should output nothing for this case.

Output

For each data set, output the total fighting power.

Constraints

Jude data includes at most 20 data sets.

1 ≤ AN, BN ≤ 100000

0 < R ≤ 10

0 ≤ (coordinate values) < 10000

Sample Input

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

Output for the Sample Input

2
Problem G: Building Water Ways

In ancient times, Romans constructed numerous water ways to supply water to cities and industrial sites. These water ways were amongst the greatest engineering feats of the ancient world.

These water ways contributed to social infrastructures which improved people's quality of life. On the other hand, problems related to the water control and the water facilities are still interesting as a lot of games of water ways construction have been developed.

Your task is to write a program which reads a map and computes the minimum possible cost of constructing water ways from sources to all the cities.

As shown in Figure 1, the map is represented by H × W grid cells, where each cell represents source, city, flatland, or obstacle.

You can construct only one water way from a source, but there are no limitations on the length of that water way and it can provide water to any number of cities located on its path. You can not construct water ways on the obstacles.

Your objective is to bring water to all the city and minimize the number of cells which represent water ways. In the Figure 1, water ways are constructed in 14 cells which is the minimum cost.

The water ways must satisfy the following conditions:

a water way cell is adjacent to at most 2 water way cells in four cardinal points.

a source cell is adjacent to at most 1 water way cell in four cardinal points.

there is no path from a source to other sources through water ways.

Input

The input consists of multiple datasets. Each dataset consists of:

H W
H × W characters

The integers H and W are the numbers of rows and columns of the map. H × W characters denote the cells which contain:

'P': source

'*': city

'.': flatland

'#': obstacle

The end of input is indicated by a line containing two zeros separated by a space.

Output

For each dataset, print the minimum cost to construct the water ways.

Constraints

Judge data contains at most 60 data sets.

3 ≤ H, W ≤ 10

1 ≤ the number of sources, the number of cities ≤ 8

The map is surrounded by obstacles.

Sources are not adjacent each other(on the left, right, top and bottom)

There is a solution.

Sample Input

3 8
########
#P....*#
########
10 10
##########
#P.......#
#..#*....#
#..#*.#.*#
#.....#*.#
#*.......#
#..##....#
#...#.P..#
#P......P#
##########
0 0

Output for the Sample Input

5
14
Problem H: Hedro's Hexahedron

Dr. Hedro is astonished. According to his theory, we can make sludge that can dissolve almost everything on the earth. Now he's trying to produce the sludge to verify his theory.

The sludge is produced in a rectangular solid shaped tank whose size is N × N × 2. Let coordinate of two corner points of tank be (-N/2, -N/2, -1), (N/2, N/2, 1) as shown in Figure 1.

Figure 1

Doctor pours liquid that is ingredient of the sludge until height of the liquid becomes 1. Next, he get a lid on a tank and rotates slowly, without ruffling, with respect to z axis (Figure 2). After rotating enough long time, sludge is produced. Volume of liquid never changes through this operation.

Figure 2

Needless to say, ordinary materials cannot be the tank. According to Doctor's theory, there is only one material that is not dissolved by the sludge on the earth. Doctor named it finaldefenceproblem (for short, FDP). To attach FDP tiles inside the tank allows to produce the sludge.

Since to produce FDP is very difficult, the size of FDP tiles are limited to 1 * 1. At first, doctor tried to cover entire the entire inside of the tank. However, it turned out that to make enough number FDP tiles that can cover completely is impossible because it takes too long time. Therefore, he decided to replace FDP tiles where an area the sludge touches is zero with those of ordinary materials. All tiles are very thin, so never affects height of the sludge.

How many number of FDP tiles does doctor need? He has imposed this tough problem on you, his helper.

Input

Input file contains several data sets.
Each data set has one integer that describes N.

Input ends when N = 0. You should output nothing for this case.

Output

For each data set, print the number of tiles in a line.

Constraints

Judge data consists of at most 150 datasets.

2 ≤ N ≤ 1012

N is even number

Sample Input

2
4
0

Output for the Sample Input

24
64
Problem I: A Piece of Cake

In the city, there are two pastry shops. One shop was very popular because its cakes are pretty tasty.
However, there was a man who is displeased at the shop. He was an owner of another shop. Although cause of his shop's unpopularity is incredibly awful taste of its cakes, he never improved it. He was just growing hate, ill, envy, and jealousy.

Finally, he decided to vandalize the rival.

His vandalize is to mess up sales record of cakes. The rival shop sells K kinds of cakes and sales quantity is recorded for each kind. He calculates sum of sales quantities for all pairs of cakes. Getting K(K-1)/2 numbers, then he rearranges them randomly, and replace an original sales record with them.

An owner of the rival shop is bothered. Could you write, at least, a program that finds total sales quantity of all cakes for the pitiful owner?

Input

Input file contains several data sets.
A single data set has following format:

K
c1 c2 ... cK×(K-1)/2

K is an integer that denotes how many kinds of cakes are sold. ci is an integer that denotes a number written on the card.

The end of input is denoted by a case where K = 0. You should output nothing for this case.

Output

For each data set, output the total sales quantity in one line.

Constraints

Judge data contains at most 100 data sets.

2 ≤ K ≤ 100

0 ≤ ci ≤ 100

Sample Input

2
2
3
5 4 3
0

Output for the Sample Input

2
6
Problem J: ICPC: Ideal Coin Payment and Change

Taro, a boy who hates any inefficiencies, pays coins so that the number of coins to be returned as change is minimized in order to do smoothly when he buys something.

One day, however, he doubt if this way is really efficient. When he pays more number of coins, a clerk consumes longer time to find the total value. Maybe he should pay with least possible number of coins.

Thinking for a while, he has decided to take the middle course. So he tries to minimize total number of paid coins and returned coins as change.

Now he is going to buy a product of P yen having several coins. Since he is not good at calculation, please write a program that computes the minimal number of coins.

You may assume following things:

There are 6 kinds of coins, 1 yen, 5 yen, 10 yen, 50 yen, 100 yen and 500 yen.

The total value of coins he has is at least P yen.

A clerk will return the change with least number of coins.

Input

Input file contains several data sets.
One data set has following format:

P N1 N5 N10 N50 N100 N500

Ni is an integer and is the number of coins of i yen that he have.

The end of input is denoted by a case where P = 0. You should output nothing for this data set.

Output

Output total number of coins that are paid and are returned.

Constraints

Judge data contains at most 100 data sets.

0 ≤ Ni ≤ 1000

Sample Input

123 3 0 2 0 1 1
999 9 9 9 9 9 9
0 0 0 0 0 0 0

Output for the Sample Input

6
3
Problem A: Traffic Analysis

There are two cameras which observe the up line and the down line respectively on the double lane (please see the following figure). These cameras are located on a line perpendicular to the lane, and we call the line 'monitoring line.' (the red line in the figure)

Monitoring systems are connected to the cameras respectively.
When a car passes through the monitoring line, the corresponding monitoring system records elapsed time (sec) from the start of monitoring.

Your task is to write a program which reads records of the two monitoring systems and prints the maximum time interval where cars did not pass through the monitoring line.

The two monitoring system start monitoring simultaneously. The end of monitoring is indicated by the latest time in the records.

Input

The input consists of multiple datasets. Each dataset consists of:

n m
tl1 tl2 ... tln
tr1 tr2 ... trm

n, m are integers which represent the number of cars passed through monitoring line on the up line and the down line respectively. tli, tri are integers which denote the elapsed time when i-th car passed through the monitoring line for the up line and the down line respectively. You can assume that tl1 < tl2 < ... < tln、 tr1 < tr2 < ... < trm.

You can also assume that n, m ≤ 10000, and 1 ≤ tli, tri ≤ 1,000,000.

The end of input is indicated by a line including two zero.

Output

For each dataset, print the maximum value in a line.

Sample Input

4 5
20 35 60 70
15 30 40 80 90
3 2
10 20 30
42 60
0 1
100
1 1
10
50
0 0

Output for the Sample Input

20
18
100
40
Problem B: Cubes Without Holes

There is a cube which consists of n × n × n small cubes. Small cubes have marks on their surfaces. An example where n = 4 is shown in the following figure.

Then,
次に、上図（右）に示すように、印のついた表面から、反対の面まで水平または垂直に貫通する穴をあける。

あなたの仕事は、n と 印の位置を読み込み、穴の空いていない小さい立方体の個数を数えるプログラムを作成することである。

Input

入力はいくつかのデータセットからなる。各データセットは以下の形式で与えられる：

n h
c1 a1 b1
c2 a2 b2
.
.
.
ch ah bh

h は印の数を示す整数である。これに続く h 行によって h 個の印の位置が入力される。印の位置を指定するために下図に示す座標軸を用いることにする。(x, y, z) = (1, 1, 1) が左下奥の立方体、(x, y, z) = (n, n, n) が右上手前の立方体を示す。

ci は i 番目の印がつけられている平面を示す文字列である。ci は "xy" 、"xz"、 "yz"　のいづれかであり、それぞれ i 番目の印が xy 平面、xz 平面、 yz 平面上にあることを示す。

ai, bi　は　ci で示された平面上の座標を示す。 xy 平面、xz 平面、yz 平面のとき、ai, bi はそれぞれ平面の座標 (x, y)、(x, z)、(y, z) を示す。例えば、上図において、印 A, B, C の ci, ai, bi の値はそれぞれ、"xy 4 4", "xz 1 2", "yz 2 3" となる。

n, h がともに 0 のとき、入力の終わりを示す。

n ≤ 500, h ≤ 200 と仮定してよい。

Output

各データセットに対して、穴の空いていない立方体の数を１行に出力せよ。

Sample Input

4 3
xy 4 4
xz 1 2
yz 2 3
4 5
xy 1 1
xy 3 3
xz 3 3
yz 2 1
yz 3 3
0 0

Output for the Sample Input

52
46
Problem C: Simple GUI Application

Advanced Creative Mobile 社（ACM社）では、新しいポータブルコンピュータに搭載するGUIアプリケーションの開発を行うことになった。

下図に示すように、GUIは１つのメインパネルを持ち、その上にいくつかのパネルが配置され、さらにそれらのパネルの上にもいくつかのパネルが配置されるような入れ子構造になっている。パネルはすべて辺が座標軸に平行・垂直な長方形または正方形である。

アプリケーションはパネルの入れ子構造をタグ構造で保持する仕様となっている。パネルを表すタグ構造は、タグ値とそのパネルの上に配置されているパネルのタグ構造のリストを持つ。タグ値はそのパネルの左上の座標 (x1, y1) と 右下の座標 (x2, y2) を示す。

タグ構造の構文規則を以下に示す。ここで、構文の記述に用いる記号の意味を、以下の表のように定める。"<"、">", "," 及び "/" は、字句要素である。

記号	意味

::=	定義する

{}*	{ と } で囲まれた要素の 0 回以上の繰り返し

タグ構造 ::= 開始タグ タグ値 {タグ構造}* 終了タグ
開始タグ ::= <タグ名>
終了タグ ::= </タグ名>
タグ名 ::= 文字列
タグ値 ::= 整数,整数,整数,整数

タグ名はパネルの名前を示す１文字以上からなる文字列である。

タグ値は、カンマで区切られた４つの整数であり、それぞれパネルの座標を示す x1, y1, x2, y2 である。

例えば、上図に示したGUIは以下のタグ構造で記述される(スペースの関係上２行にまたがっているが、入力は１行で与えられる)：

<main>10,10,190,150<menu>20,20,70,140</menu><primary>80,20,180,140
<text>90,30,170,80</text><button>130,110,170,130</button></primary></main>

このGUIでは、ユーザがある点をタッチすると、その点において最上部にあるパネルが選択される（境界線を含む）。

あなたの仕事は、メインパネルのタグ構造と、タッチされた点のリストを読み込み、以下の情報を出力するプログラムを作成することである。

選択されたパネルの名前

そのパネルの直接上に配置されているパネルの数（以下"子の数"と呼ぶ）

なお、入力されるタグ構造について以下のことを仮定してよい。

タグ構造に文法エラーはない。

パネルがそれを含むパネル（以下"親パネル"と呼ぶ）からはみ出すことはなく、境界にも触れない。

同じ親パネルを持つパネル同士は重ならず、触れない。

同じ名前のパネルはない。

Input

入力は複数のデータセットからなる。各データセットは以下の形式で与えられる：

n
タグ構造
x1 y1
x2 y2
.
.
.
xn yn

n はタッチされた点の数を示す整数である。タグ構造は空白を含まない１行の文字列である。xi, yi は i 番めにタッチされた点の x 座標と y 座標を表す（座標軸は上図に定めたものとする）。

n ≤ 100、タグ構造の文字列の長さ ≤ 1000 と仮定してよい。また、入力で与えられる x 座標 y 座標は 0 以上 10,000 以下と仮定してよい。

n が 0 のとき入力の終わりとする。

Output

各データセットに対して、選択された順番にパネルの名前と子の数を出力せよ。各名前と子の数を１つの空白で区切って１行に出力せよ。何も選択されない場合（タッチされた点にパネルがない場合）は、"OUT OF MAIN PANEL 1"と出力せよ。

Sample Input

5
<main>10,10,190,150<menu>20,20,70,140</menu><primary>80,20,180,140</primary></main>
10 10
15 15
40 60
2 3
130 80
0

Output for the Sample Input

main 2
main 2
menu 0
OUT OF MAIN PANEL 1
primary 0
Problem D: Course Planning for Lazy Students

会津大学では2009年度より、授業履修に関する新しい制度を開始した。新制度では必修科目を撤廃し、それぞれの進路を考慮して科目を自由に選択できるようになった。

しかし、どの科目も無条件で履修できるわけではなく、特定の科目を履修するためには、先修条件を満たしている必要がある。下図に履修計画表の一部の例を示す：

図の長方形が１つの科目を表し科目名と単位数を含んでいる。図の矢印が先修条件を表す。矢印の意味は、矢印の終点で指されている科目を履修するためには、その矢印の始点を示す科目を修得している必要がある。例えば、Linear Algebra II (線形代数２)を履修するためには、Linear Algebra I (線形代数１)を修得している必要がある。また、Applied Algebra (応用代数)を履修するためには、Linear Algebra I と Discrete Systems (離散系論)の両方を修得している必要がある。

さて、履修登録計画において卒業に要する最低限の合計単位数 U を満たす履修科目の組み合わせは、怠慢な学生にとって興味深いものである。

あなたの仕事は、与えられた履修計画表と U を読み込み、最低限の履修科目数を報告するプログラムを作成することである。これは計画であるため、履修登録した科目は必ず単位を修得できるものと仮定する。

Input

入力は複数のデータセットからなる。各データセットは以下の形式で与えられる：

n U

c0 k0 r01 r02 ... r0k0

c1 k1 r11 r12 ... r1k1

.

.

cn-1 kn-1 r(n-1)1 r(n-1)2 ... r(n-1)kn-1

n (1 ≤ n ≤ 20) は履修計画表が含む科目の数を示す整数である。科目には 0 から n-1 までの番号が割り当てられているものとし、以下 i 番目の科目を科目 i と呼ぶことにする。

U (1 ≤ U ≤ 100) は必要な合計単位数を表す整数である。

ci (1 ≤ ci ≤ 10)は科目 i の単位数を示す。次の ki (0 ≤ ki ≤ 5) は科目 i の先修科目の数を示す。それに続く ri1 ri2 ... riki は科目 i の先修科目の科目番号を示す。

ある科目から先修条件を表す矢印を１つ以上たどり、再びその科目に戻るような入力は与えられない。また、U を満たす科目の組み合わせが必ず存在すると仮定してよい。

n と U がともに 0 のとき入力の終わりを示す。データセットの数は 100 を超えない。

Output

各データセットについて、最低限必要な科目数を１行に出力せよ。

Sample Input

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

Output for the Sample Input

2
3
Problem E: Kuru-Kuru Robot

ロボット工学の研究者であるアシモフ博士は、新しいロボットの開発に成功した。このロボットは、床に張り巡らせた特殊なワイヤーに沿って自由に動くことができる。ロボットは常に現在いるワイヤーに平行な方向を向いて前進する。

すばらしいことに、このロボットはワイヤー上を移動するためにその距離にかかわらずエネルギーを消費しない。しかし、ワイヤーの端点やワイヤーの交点で向きを変えるためにはその点を中心に回転する必要があり、その回転角度だけエネルギーを消費する。

このロボットをスタート地点からゴール地点まで動かしたい。例えば、下図においてロボットを start に東向き（下図 x軸の正の向き）で配置し goal まで動かしてみよう。start から交点 A 交点 B を経由して goal にたどり着く経路と、交点 A 交点 C を経由する経路があるが、前者の方が移動距離が長いものの回転角度が少ないためエネルギー消費量は少ない。

あなたの仕事は、床にあるワイヤーの位置、スタート地点、ゴール地点を読み込み、スタート地点からゴール地点へ移動するために必要な回転角度の合計の最小値を報告するプログラムを作成することである。

ロボットはスタート地点においてどのような向きに配置してもよく、ゴール地点ではどの方向を向いていてもよい。

Input

入力は複数のデータセットからなる。各データセットの形式は以下のとおり：

n
x11 y11 x21 y21
x12 y12 x22 y22
.
.
.
x1n y1n x2n y2n
sx sy gx gy

n はワイヤーの数を示す整数である。x1i y1i は i 番目のワイヤーの一方の端点の座標、x2i y2i は i 番目のワイヤーのもう一方の端点の座標を示す。

sx sy、gx gy はそれぞれスタート地点とゴール地点の座標を示す。

与えられる座標はすべて整数値であり、x軸 y軸の値は -1000　以上 1000 以下である。また、スタート地点とゴール地点は与えられるワイヤーの端点上にあると仮定してよい。

n ≤ 50 であると仮定してよい。

n が 0 のとき入力の終了を示す。

Output

各データセットに対して、回転角度の合計の最小値を１行に出力せよ。ロボットがゴール地点にたどり着けない場合は "-1" と出力せよ。出力は 0.00001 以下の誤差を含んでもよい。

Sample Input

8
1 3 11 3
5 3 13 11
10 10 17 10
11 2 11 6
10 5 14 5
13 6 13 2
17 10 17 3
13 3 19 3
1 3 19 3
6
1 3 11 3
5 3 13 11
10 10 17 10
11 2 11 6
10 5 14 5
13 3 19 3
1 3 19 3
2
0 0 7 0
3 0 7 3
0 0 7 3
0

Output for the Sample Input

270.0000
-1
36.86989765
Problem F: Line Puzzle

プログラミングでパズルを解いてみよう。

n × n の数字が格子状に並んでいる。数字のいくつかは丸で囲まれており、これらを起点と呼ぶことにする。パズルのルールは以下のとおりである：

各起点から縦・横に進む１本の線を引く（斜めには引けない）。

通った数字の和が起点の数字と同じになるように線を伸ばす。

線は枝分かれしてはいけない。

線はすでに引かれた数字を通ることはできない（線は交差してはいけない）。

線は２個以上の起点を通ることはできない。

下図に示すように、パズルのゴールはすべての起点を使い、すべての数字に線を引くことである。

あなたの仕事は、パズルを解くプログラムを作成することである。
ただしこの問題では、与えられたパズルが解けるものかどうかを判定するだけでよい。

Input

入力は複数のデータセットからなる。各データセットの形式は以下のとおりである：

n
n × n の数字

n × n の数字が与えられるパズルを示し、起点の数字は負の数として与えられる。

n が 0 のとき入力の終わりを示す。

n は 3 以上 8 以下、起点以外の数字は 1 以上 50 以下、起点は -50 以上 -1 以下であると仮定してよい。また、入力されるパズルの性質として以下のことを仮定してよい：

与えられるパズルの各行、各列には最低でも１つの起点がある。

起点の個数は、全体の数字の個数 (n × n) の 20 % から 40 % 程度である。

Output

各データセットに対して、パズルが解けるものであれば "YES" を、そうでなければ "NO" と１行に出力せよ。

Sample Input

3
-3 1 1
2 -4 1
2 1 -1
3
-4 1 1
1 1 -6
1 -5 3
4
-8 6 -2 1
2 -7 -2 1
1 -1 1 1
1 1 1 -5
6
2 2 3 -7 3 2
1 -10 1 1 3 2
2 6 5 2 -6 1
3 4 -23 2 2 5
3 3 -6 2 3 7
-7 2 3 2 -5 -13
6
2 2 3 -7 3 2
1 -10 1 1 3 2
2 6 5 2 -6 1
3 4 -23 2 2 5
3 3 -6 2 3 7
-7 2 3 2 -5 -12
0

Output for the Sample Input

YES
NO
NO
YES
NO
Problem A: Sleeping Cats

Jackは彼の住む家をとても気に入っていた. 彼の家の塀の上で毎日のように愛くるしいねこたちが昼寝をしているからだ. Jackはねこがとても好きだった.

Jackは, 夏休みの自由研究としてねこたちの観察日記を付けることにした. しばらく観察しているうちに, 彼はねこたちの面白い特徴に気付いた.

塀は W[尺] の幅があり, ここにねこたちは並んで昼寝をする. それぞれのねこたちは体の大きさが違うので, 昼寝に必要とする幅もまた異なる. 昼寝をしにきたねこは, 自分が寝られる場所があれば, そこで昼寝をする. ただし, そのような場所が複数ある場合はより左側で昼寝をし, 十分な幅が無ければ諦めて帰ってしまう. しばらく昼寝をしたねこは、起きると塀から飛び降りてどこかへと行ってしまう.

Jackはねこたちを観察して, その行動をノートに書き留めた. しかし, とても多くのねこが昼寝をしていたので, この記録を集計するのはとても大変である. プログラムを書いて, ねこたちが昼寝をした場所を求めるのを手伝ってほしい.

Input

入力ファイルは, 複数のデータセットを含む. それぞれのデータセットの最初の行は2つの整数を含み, それぞれ塀の幅 W と, 後に続く行数 Q を表す.

以下のQ行に, ねこの観察記録が与えられる. 各行は, 以下のいずれかの書式に従う.

s [id] [w]

w [id]

前者は, ねこの sleep 記録であり, ねこが昼寝をしに来たことを表す. id はねこの名前を表す整数であり, w はそのねこが昼寝に必要とする幅 [尺]である.

後者は, ねこの wakeup 記録であり, 名前がidであるねこが起きたことを表す.

この記録は, 時系列順に与えられる.

どのねこも2回以上昼寝をすることはない.
また, Jackの記録に矛盾は無いものとする. つまり, あるねこの sleep 記録に対して, そのねこが昼寝することが出来た場合, またその場合に限って, そのねこの wakeup 記録が(より後の行に)与えられる.

W, Q ≤ 100 と仮定してよい.

W と Q がともに 0 のとき、入力の終わりを示す. このデータセットに対する出力を行ってはならない.

Output

入力のsleep記録が与えられるたびに, 1行出力せよ.
この行は, もしそのねこが昼寝できた場合, その位置を表す数字を含まなければならない. ねこが塀の左端を起点として b [尺] から b+w [尺] の場所で昼寝したならば, b を出力せよ.
そのねこが昼寝できなかった場合, "impossible" と出力せよ.

データセットの終わりに, "END"と出力せよ.

Sample Input

4 6
s 0 2
s 1 3
s 2 1
w 0
s 3 3
s 4 2
3 3
s 0 1
s 1 1
s 2 1
0 0

Output for the Sample Input

0
impossible
2
impossible
0
END
0
1
2
END
Problem B: Monster Factory

株式会社南天堂は, Packet Monster というゲームソフトを発売している. このゲームはモンスターを捕まえ, 育て, 戦わせるという趣旨のもので, 世界中で大人気のゲームであった.

このゲームには従来のゲームには無い特徴があった. このゲームには Red と Green という2つのバージョンがあり, それぞれのゲームで捕まえられるモンスターが異なるのだ. Red でしか捕まえられないモンスターを Green で入手するには, 通信交換というシステムを使う. つまり, 自分のソフト内のモンスターと友達のソフト内のモンスターを交換することができるのだ. このシステムは Packet Monster の人気に大きく貢献していた.

しかし, このゲームのパッケージの製造工程は, 2つのバージョンのために少々複雑になった. パッケージを製造している工場には2つの生産ラインがあり, 片方のラインでは Red を, もう一方のラインでは Green を製造している. 各ラインで製造されたパッケージは, 工場内で一意な製造番号が割り当てられ, 一箇所に集められる. そして以下のような攪拌（かくはん）装置によって混ぜられ, 出荷されるのだ.

Red のパッケージは上側から, Green のパッケージは左側から, ベルトコンベアによってこの攪拌装置に届けられる. 攪拌装置は十字の形をした2本のベルトコンベアから出来ており, "push_down", "push_right" という2つの命令を受け付ける. "push_down"は「上下方向に走るベルトコンベアをパッケージ1個分下方向に動かせ」, "push_right"は「左右方向に走るベルトコンベアをパッケージ1個分右方向に動かせ」という命令である. 攪拌は, Red のパッケージと同じ数の push_down 命令と Green のパッケージの数より１つ多い push_right 命令を, ランダムな順番で実行することによって行われる. ただし, 最初に実行される命令と最後に実行される命令は "push_right" と決まっている. この制約の元では, Red のパッケージの数と攪拌装置の下端に届くパッケージの数が一致し, Green のパッケージの数と攪拌装置の右端に届くパッケージの数が一致する.

攪拌されたパッケージは最終的にベルトコンベアの下端または右端に届き, 届いた順に包装されて出荷される.

以下に, 一連の攪拌の手続きの例を示す.
簡単のため, 1つのパッケージを1文字のアルファベットとして表す.

さて, この工場では不良品の追跡などの目的で, ベルトコンベアの下端・右端に届いたパッケージとその順番を記録している.しかしこの記録にはコストが掛かるため, 工場長は下端に届いたパッケージについてのみ記録を取ることを考えた.右端に届いたパッケージは, 上端・左端に送られるパッケージと下端に届いたパッケージの記録から求められるのではないかと思ったのだ.

工場長を助けて, 右端に届いたパッケージの記録を作成するプログラムを作ってほしい.

Input

入力は複数のデータセットからなる. 入力の終わりは - (ハイフン)１つの行で示される.

1つの入力は3行のアルファベットの大文字・小文字のみを含む文字列からなる.
これらはそれぞれ, Red のパッケージ, Green のパッケージ, 下端に届いたパッケージを表す.1文字のアルファベットが1個のパッケージを表す.大文字と小文字は区別されることに注意せよ.

どの行にも, 同じ文字が2回以上現れることは無い.
1行目と2行目に共通して含まれる文字も存在しない.

問題文中で説明されたケースは, Sample Inputの1つ目の例に対応している.

Output

右端に届いたパッケージを, 届いた順番のとおりに出力せよ.

Sample Input

CBA
cba
cCa
X
ZY
Z
-

Output for the Sample Input

BbA
XY