alexjercan/bugnet huggingface dataset:
D: スキャナー / Scanner

問題文

ここに $N$ 枚の紙がある。あなたは $3$ 台のスキャナーを並列に用いることで、
全ての紙をスキャンしたいと考えている。それぞれの紙はスキャンにかかる時間が決まっており、
$i$ 番目の紙をスキャンするのにかかる時間は $T_i$ である。
紙をスキャンする順番は任意であるが、$1$ 台のスキャナーで複数の紙を同時にスキャンすることはできない。

全ての紙のスキャンが終了し、スキャンを行っているスキャナーがなくなるまでにかかる時間を最小化しなさい。

入力

$N$

$T_1$

$T_2$

$T_3$

$\vdots$

$T_N$

制約

$1 \leq N \leq 50$

$1 \leq T_i \leq 50$

入力は全て整数

出力

答えを $1$ 行で出力してください．

サンプル

サンプル入力1

4
1
1
1
1

サンプル出力1

2

サンプル入力2

9
15
20
27
4
10
7
34
30
36

サンプル出力2

61

サンプル入力3

6
20
18
46
16
9
48

サンプル出力3

55
E: 28

問題文

トランプゲームの大富豪において，ランクが $2$, $8$ のカードは強力です．
そこで，$10$ 進数表記で数字の $2$, $8$ のみからなる整数を良い整数と呼ぶことにします．
良い整数を小さいものから列挙すると $2, 8, 22, 28, 82, 88, \cdots$ となります．

$n$ を正の整数とします．$n$ が良い整数の積の形で表現できるとき，
最大でいくつの積になるか求めてください．できないなら $-1$ と出力してください．

入力

$n$

制約

$1 \leq n \leq 10^{18}$

出力

答えを $1$ 行で出力してください．

サンプル

サンプル入力1

1

サンプル出力1

-1

サンプル入力2

2

サンプル出力2

1

サンプル入力3

88

サンプル出力3

3

$2 \times 2 \times 22$ と表せます．

サンプル入力4

100

サンプル出力4

-1

サンプル入力5

173553147234869248

サンプル出力5

11

$2^6 \times 28 \times 2222^3 \times 8828$ と表せます．
F: リレー / Relay

問題文

湖に浮かぶ $N$ 個の小島からなるビワコという村がある．
ビワコ村には $N-1$ 本の簡単な作りの橋がある．
島には $0$ から $N-1$ まで，橋には $0$ から $N-2$ までの番号が付けられている．
$i$ 番の橋は $i+1$ 番の島と $p_i$ 番の島を直接つなぎ，長さは $w_i$ である．
村人はどの島の間もいくつかの橋を通って相互に移動できるようになっている．

ある村人の提案により，ビワコ村でリレー大会が開催されることとなった．
しかし，ビワコ村には閉路がなくトラックを用意できないため，
現在ある橋を $1$ つだけ掛け替えることによって閉路を作ろうと考えた．
この操作によって用意できる閉路のうち，長さが最大となるものの長さを求めなさい．

入力

$N$

$p_0 \ w_0$

$\vdots$

$p_{n-2} \ w_{n-2}$

制約

$2 \leq N \leq 100000$

$0 \leq p_i \leq N-1$

$1 \leq w_i \leq 1000$

全て整数

全ての島と島の間が到達可能である

出力

答えを $1$ 行で出力せよ．

サンプル

各サンプルを図示すると次のようになる．

サンプル入力1

5
0 1
0 2
0 3
0 4

サンプル出力1

9

サンプル入力2

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

サンプル出力2

19

サンプル入力3

2
0 1

サンプル出力3

1
G: 塗るだけ / Paint

問題文

情太くんと立子さんは，
平面の世界にある庭付きの家に住んでいる．二人は点とみなせ，
庭は $N$ 頂点の単純多角形 (隣り合わないどの $2$ 辺も交差も接触もしない多角形) の形をしている．

ある日，二人は一本の伸び縮みするローラーを手に入れた．
ローラーは線分とみなせ，ローラーが通過した領域に色を塗ることができる．
二人はローラーを使って庭全体に色を塗りたいと思っている．

作業の前に，二人は以下のような準備を上から順に行う．

庭の内部の任意の $1$ 箇所に杭を打つ．

庭の外部のある $1$ 点に集まる．

十分に長い紐を用意し，片方の端を情太くん，もう一方の端を立子さんの体に結ぶ．

情太くんがローラーの片方の端を，立子さんがもう一方の端を持つ．

準備ができたら，以下のルールに従って塗り始める．
ただし，ローラーは杭の上空を通過させることができるが，紐はできない．

庭のどの部分から塗り始めてもよい．

庭の外部または周上を移動できるが，内部に入ってはいけない．

塗り終わるまでローラーから手を離してはいけない．

さらに，塗り終わったときに以下の条件を満たしていなければならない．

二人が再びある $1$ 点に集まっている．

庭の内部の任意の点の上をローラーが通過している．

二人の体の紐を解き，両端を結んで輪を作る．この輪を外から引っ張ったときに，杭に引っかかって抜けない．

さて，二人はできるだけ離れたくないので，塗っている最中にとる二人の距離の最大値を最小化したい．
二人に代わってそのような値を求めてほしい．

入力

入力は以下の形式で与えられる．$N$ は多角形を構成する頂点の数，
$(x_i,y_i)$ はある頂点から始めて時計回りまたは反時計回りに見たときの $i$ 番目の点の座標である．

$N$

$x_1 \ y_1$

$\vdots$

$x_N \ y_N$

制約

$3 \leq N \leq 50$

$|x_i|, |y_i| \leq 100$

全て整数である

頂点は時計回りまたは反時計回りに与えられる

庭の形は単純多角形である

周上の連続する $3$ 点は一直線上に存在しない

出力

答えを $1$ 行で出力せよ．$10^{-5}$ 未満の絶対誤差は許容される．

サンプル

各サンプルでの庭の形と塗り終わるまでのローラーの動きを図示すると以下のようになる．整数は時刻を表す．図示する都合上ローラーの動きは飛び飛びに示したが,実際には連続的に動いている．
ローラーが太くなっている部分で距離の最大値を達成している．

サンプル入力1

4
0 0
0 1
1 1
1 0

サンプル出力1

1

サンプル入力2

3
0 0
0 1
1 0

サンプル出力2

0.7071067811865476

サンプル入力3

8
0 0
5 0
5 3
0 3
0 2
4 2
4 1
0 1

サンプル出力3

1.4142135623730951
A: マイナンバー - My Number -

問題

いっけなーい！遅刻遅刻！

あっ！私、今日から憧れのこの会社で働くことになったんだ！

それなのに、初日から寝坊だなんて…！？

今日は会社にマイナンバーを教えなければならない大切な日なのに…！

みんな知っていると思うけれど、一応マイナンバーの説明をするね！

マイナンバーは行政手続きにおける個人を識別するために用いられる 12 桁からなる数字列 (P_{11} P_{10} P_{9} ... P_{1} P_{0}) である。

末尾の P_{0} はチェックディジットと呼ばれ、

総務省令第八十五号第五章

に定められているように、次式で定義される。

11 − ( ({\rm Σ}_{n = 1}^{11} P_{n} × Q_{n}) を 11 で除した余り )

ただし、 ( ({\rm Σ}_{n = 1}^{11} P_{n} × Q_{n}) を 11 で除した余り ) \≤ 1 の場合は 0 とする。

ここで、 Q_{n} (n = 1, 2, ..., 11) は次のように定義される。

1 \≤ n \≤ 6 のとき n + 1

7 \≤ n \≤ 11 のとき n − 5

分かったかな？

でも、12桁の数字列なんて覚えられないから、家を出る直前にマイナンバーの通知書の写真を撮ったんだ！

ほら、私のマイナンバーかっこいいでしょ！

…ってあれ？

なんでマイナンバーの上に納豆の粒が乗っているの！？

これじゃあ、1桁だけ分からなくてマイナンバーを教えられないよ！

私、これからどうなっちゃうの…！？

そうだ！

チェックディジットの定義に矛盾しないような数字を見つければいいんだ！

でも計算難しい…

ねえ、私の初日を失敗しないために、分からない数字を見つけるのを手伝って！？

えっ？

何を言っているか分かりにくかったって？

やってほしいことは要するに、

1桁だけ数字が不明な12桁のマイナンバーが与えられるので、チェックディジットの定義に矛盾しないように、不明な桁の数字を求めよ。

ただし、そのような数字が複数あるときには “MULTIPLE” と出力せよ。

ということだよ！

よろしくねっ！

入力形式

入力は、12文字の文字列 S = P_{11} P_{10} P_{9} ... P_{1} P_{0} と1個の改行がこの順番に与えられる。
P の添字が降順に付けられていることに注意せよ。
この文字列の各文字は “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “?” のいずれかである。
“?” は不明な桁を表し、他の文字はマイナンバーの数字を表す。
また、 “?” は S の中でちょうど1回だけ現れる。
なお、入力において、不明な桁に入る数字で、チェックディジットの定義に矛盾しないようなものが1つ以上存在することが保証される。

出力形式

不明な桁に入る数字で、チェックディジットの定義を矛盾しないようなものが唯1つに定まるときは、その数字を出力せよ。
矛盾しないような数字が複数存在するときには、 “MULTIPLE” と出力せよ。
いずれの場合も、最後に1度だけ改行せよ。

入力例1

?12345678901

出力例1

4

チェックディジットの定義より “?” が 4 以外になることはあり得ません。

入力例2

2016030810?0

出力例2

MULTIPLE

“?” が 0, 6 のいずれの場合でもチェックディジットの定義を満たします。

入力例3

20160308100?

出力例3

0

入力例4

0012300?0450

出力例4

8
B: 周期数列 - Periodic Sequence -

問題

H大学の教授を務めているPeriod博士は、万物に潜むとされる周期と呼ばれる性質を研究している。一般的に知られている基本的な周期としては、数列に潜む周期が考えられるだろう。すなわち、長さNの数列S = S_1, S_2, ... , S_Nが以下の性質を満たすならば、周期t (t \≤ N) を持つという事実である。

1 \≤ i \≤ N − tについて、S_i=S_{i+t}である。

今、Period博士が着目しているのは、周期を用いてより簡易な記述ができる数列である。例えば、長さNの数列が周期t (\≤ N) を持つとき、ある整数kを用いてN=ktと書けるならば、その数列は長さtの数列S_1, ... , S_tがk個連続したものである、と記述できる。Period博士は数列を例のように記述できたとき、その数列はk-partであると言うことにした。

Period博士は、kが最も大きいk-partに興味を示している。そこで助手であるあなたは、入力として数列を受け取り、それがk-partであるとき最も大きいkを出力するプログラムの作成を任されることとなった。Period博士の要求に正確に応えるプログラムを作成しよう。

入力形式

N
S_1 ... S_N

1行目には、数列の長さを表す整数Nが与えられる。2行目には、長さNの数列の各要素を表す整数S_i (1 \≤ i \≤ N) が空白区切りで与えられる。また、入力は1 \≤ N \≤ 200,000と1 \≤ S_i \≤ 100,000 (1 \≤ i \≤ N) を満たす。

出力形式

与えられた数列に対して、k-partであるときのkの最大値を1行に出力せよ。

入力例1

6
1 2 3 1 2 3

出力例1

2

入力例2

12
1 2 1 2 1 2 1 2 1 2 1 2

出力例2

6

入力例3

6
1 2 3 4 5 6

出力例3

1
C: 成長する点 - Growing Point -

問題

粘菌コンピュータというものがある。
ある種の粘菌には「餌を求め、餌と餌の最短距離をつなぐ形に変形する」
という性質がある。
これを利用し、餌を「入力」、形を「出力」とみなして
コンピュータとして利用することができる。

今、二次元平面上に1つの粘菌の拠点とN個の餌が存在する。それぞれの餌には1からNまでの異なる番号が与えられ、拠点には番号0が与えられている。
この粘菌はある餌を食べるために、その餌と最も近い拠点の最短距離を結ぶ管状に
成長し、食べた位置に新たに拠点を形成する。
新たに形成した拠点は拠点を形成する直前に食べた餌と同じ番号を持つ。
粘菌は拠点以外の場所から成長することはできない。
以降では、拠点と餌を二次元平面上の点、管状に成長した粘菌を複数の線分として考える。

すべての拠点と線分からなる構造を粘菌網と呼ぶ。
粘菌は1つの餌を食べるために次のような操作を繰り返す。

まだ食べていない餌の中で粘菌網に最も近い餌を選ぶ。そのような餌が複数存在する場合は番号が最も小さい餌を選ぶ。

選んだ餌と最も近い拠点を選ぶ。そのような拠点が複数存在する場合は、最も拠点の番号が小さいものから取る。

選んだ拠点と餌を結ぶ線分を引く。以降ではこのとき選んだ餌も拠点として扱う。

この粘菌は生きるために必要な栄養を取るのにM個の餌を食べる必要がある。
粘菌がM個の餌を食べるまでに引いたすべての線分の長さの合計を求めよ。
また、出力する値は0.0001以下の誤差を含んでいても良い。

以下の図では入力例2の粘菌の様子を示している。

入力形式

N M X Y
px_1 py_1
...
px_n py_n

1行目には餌の数N（1 \≤ N \≤ 5,000）、食べる餌の個数M （1 \≤ M \≤ N）、番号0の拠点の座標X, Y（−5,000 \≤ X, Y \≤ 5,000）が整数値で与えられる。続くN行には番号順に餌の座標px_i, py_i（1 \≤ i \≤ N）が整数値で与えられる。（−5,000 \≤ px_i, py_i \≤ 5,000）
また、番号が異なる餌は異なる座標に存在し、それぞれの餌と番号0の拠点の座標は異なる。

出力形式

成長した距離の合計を1行で出力せよ。また、出力する値は0.0001以下の誤差を含んでいても良い。

入力例1

2 2 0 0
3 3
4 0

出力例1

7.16227766017

最初は番号1の餌と拠点の距離が $3\sqrt{2}$ と番号2の餌と拠点の距離が4なので
番号2の餌が選ばれる。その後番号1の餌と粘菌網との距離が3になり、番号1の餌が選ばれる。

入力例2

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

出力例2

6.2360679775

図のように餌1、2、4、3の順に粘菌は餌を食べていく

入力例3

16 15 -4077 763
-2480 2841
-2908 -1096
676 -4080
-4988 -2634
3004 -1360
-2272 1773
-4344 -3631
-355 4426
-3740 3634
-3330 2191
-3423 -2999
-3438 2281
4754 -1500
-3440 -3873
-2089 -3419
1426 2793

出力例3

25349.9626798834
E: Arai's - Arai's -

問題

スクールアイドル時代から、国民的人気を誇ってきた女性アイドルグループArai's。今では、たくさんの「あらい」さんが所属する大規模なグループとして、世界レベルで活躍している。そして今日、新たなるプロジェクトの始動が決定した。彼女たちは、小さなユニットをいくつか結成することで、さらなる売上の向上を試みることになったのである。

Arai'sには「荒井」さんがA人，「新井」さんがB人在籍しており、合計でA+B人の「あらい」さんからなる。新ユニットは、「荒井」さん一人と「新井」さん一人のペアで構成する。（ここで、同じ「あらい」さんが複数のユニットに所属していはいけない。）ただし、ある「荒井」さんが一部の「新井」さんのことを良く思っていないうえに、同様にある「新井」さんが一部の「荒井」さんのことを良く思っていない。「あらい」さんたちはユニットを組む際に、良く思っていない「あらい」さんをペアとして認めてくれず、一方でも認めてくれなければユニットを組むことはできない。

Arai'sのマネージャーであるあなたは、なるべくたくさんのユニットを作りたいと考えているが、メンバーの交友関係からその限界を感じていた。そこであなたは、「あらい」さんたちと個別に面談し、ユニットを組ませたい「あらい」さんについての、良い噂を聞かせることを考えた。面談をした「あらい」さんは、噂に聞いた「あらい」さんを見直し、ユニットのペアとして認めるようになる。

しかし、あなたはそれほど時間をとることができないため、最大K回までしか噂を聞かせることができない。あなたは限られた時間の中で、結成できるユニットの数を最大化しようと試みた。あなたが結成できるユニットの数の最大値を求めよ。

入力形式

A B K
a_1
...
a_A
b_1
...
b_B

1行目には、「荒井」さんの人数Aと「新井」さんの人数B (1 \≤ A, B \≤ 200でありA, Bは整数)、噂を聞かせることができる人数K (0 \≤ K \≤ 200でありKは整数)が空白区切りで与えられる。

続くA行には、それぞれ長さBの0と1のみからなる文字列が与えられる。そのうちi行目の文字列a_iのj文字目が1であるとき、i番目の「荒井」さんはj番目の「新井」さんを良く思っていない。

続くB行には、それぞれ長さAの0と1のみからなる文字列が与えられる。そのうちi行目の文字列b_iのj文字目が1であるとき、i番目の「新井」さんはj番目の「荒井」さんを良く思っていない。

出力形式

あなたが結成できるユニット数の最大値を1行に出力せよ。

入力例1

3 3 4
111
111
111
111
111
111

出力例1

2

入力例2

3 3 2
101
100
010
001
011
111

出力例2

3

入力例3

5 6 3
101101
110110
010111
110110
110111
01010
10101
11101
01011
11011
11011

出力例3

4
F: きっちり - Kitsuchiri -

問題

若ヶ松高校二年へ組の合津千里（あつちり）さんは数列が「きっちり」していなければ気がすまない。

合津さんによると、「きっちり」した数列とは、長さが偶数で左右対称である数列のことである。
すなわち、長さN(Nは偶数)の数列Sについて、次の条件を満たせば数列Sは「きっちり」している。

S_1 = S_N, S_2 = S_{N − 1}, ... , S_{N/2} = S_{N − N/2 + 1}

二年へ組の数学担当の先生は、合津さんから「きっちりしてください。」と要望され、授業で用いる数列を作り直さなければならない。

先生は、数列のl番目からr番目までのそれぞれの要素に数字xを足すクエリをいくつも適用することで、数列を「きっちり」させようと奮闘しているが、うまくいかないようだ。

二年へ組に所属する凄腕プログラマーのあなたの仕事は、先生が絶望してしまう前に、先生が作り直している数列が「きっちり」しているかを調べるプログラムを作ることだ。

入力形式

入力は以下の形式からなる。

N
S_1 ... S_N
Q
q_1
...
q_Q

Qはクエリの総数であり、1 \≤ i \≤ Qについて、各q_iはl, r, xを順に1つの半角スペースで区切って与えらる。

また、次の制約を満たす。

2 \≤ N \≤ 500,000である。

Nは偶数である。

1 \≤ j \≤ Nについて、−100,000,000 \≤ S_j \≤ 100,000,000である。

i番目の各クエリを適用した後の数列の各要素T_{i,j}は−100,000,000 \≤ T_{i,j} \≤ 100,000,000を満たす。

1 \≤ Q \≤ 100,000である。

1 \≤ l \≤ r \≤ Nである。

−1,000 \≤ x \≤ 1,000である。

出力形式

クエリiまで処理した後の数列が「きっちり」していれば“1”を、そうでなければ“0”をi行目に出力せよ。

入力例1

10
0 1 2 3 4 4 3 2 1 0
7
2 6 0
2 4 5
7 9 10
2 4 5
3 8 100
4 6 1000
7 7 1000

出力例1

1
0
0
1
1
0
1

入力例2

10
4 4 4 4 4 4 4 4 6 4
5
9 9 -2
1 10 1000
1 10 -1000
3 8 100
5 6 1

出力例2

1
1
1
1
1
G: 運命力 - Destiny Draw -

問題

Mr. D はカードゲームで勝負をすることになった。
このカードゲームでは、 N 枚のカードの山を用いる。
また、山のカードには、上から順に 1, 2, 3, ... , N の番号がついている。

D で始まるものすべてを背負う彼に敗北は許されないが、不幸にも Mr. D はカードゲームが不得手である。
そこで、自分が引くカードをコントロールすることで勝利を手にすることにした。

Mr. D は K 種類のシャッフルが可能である。
K 種類のうち i 番目のシャッフルでは上から a_i 枚目から a_i+b_i − 1枚目までのちょうど b_i 枚を引き抜き、上に重ねる。
i番目のシャッフルを1 回するとき、それぞれ t_i 秒を要する。

ちょうど T 秒のシャッフルの後、一番上のカードを C にする方法は何通りあるか。 数が多くなる可能性があるので、 10^9+7 で割った余りを出力せよ。

入力形式

入力は次の形式で与えられる。

N K C T
a_1 b_1 t_1
a_2 b_2 t_2
...
a_K b_K t_K

N は整数で 2 \≤ N \≤ 40 を満たす。

K は整数で 1 \≤ K \≤ \frac{N (N+1)}{2} を満たす

C は整数で 1 \≤ C \≤ N を満たす

T は整数で 1 \≤ T \≤ 1,000,000 を満たす

a_i (i = 1, 2, ... , K) は整数で 1 \≤ a_i \≤ N を満たす

b_i (i = 1, 2, ... , K) は整数で 1 \≤ b_i \≤ N − a_i + 1 を満たす

a_i = a_j かつ b_i = b_j を満たすとき i = j に限定される

t_i は整数で 1 \≤ t_i \≤ 5 を満たす

出力形式

答えを 10^9+7 で割った余りを一行で出力せよ。

入力例1

4 1 1 6
3 2 3

出力例1

1

入力例2

4 1 1 5
3 2 3

出力例2

0

入力例3

6 2 2 5
1 2 1
2 5 3

出力例3

3

ちょうど 5 秒で一番上のカードを 2 にする方法は以下の 3 通りである。

1→1→2
1→2→1
2→1→1

入力例4

6 8 3 10
1 4 5
1 3 3
1 6 5
1 2 2
1 1 4
2 5 1
4 3 1
2 1 3

出力例4

3087
H: われわれの努力について - About Our Effort -

問題

※この問題はおまけの問題と捉えていただけるとありがたく、できれば先に他の問題のほうをお楽しみいただければと思っておりまして，ですので他の問題を通し終えて暇になり，かつその暇をこのコンテストで潰そうという気になってくれた方に挑戦していただければと思います。

D問題のクエリが遅くてすみませんでした。
しかし我々といたしましても決してただ怠慢をしていたわけではないのです。
私たちなりに努力したのです。
その努力の片鱗を味わっていただくため、このような問題を出題した次第であります。

問題: D問題のサーバー側の処理をするプログラムを作成せよ。

なおこの問題は本当にD問題の要求を満たすプログラムを作成することが目標ということですので、言語による向き/不向きなどは一切考慮いたしませんのであしからず。最速実行速度を達成された方はもれなくAOJに収録される際にジャッジプログラムとして採用される可能性がありますのでぜひ挑戦下さい。

入力形式

入力は以下の形式で与えられる。

N
p_1 ... p_N
Q
l_1 r_1
...
l_Q r_Q

1行目では順列pの長さNが与えられる。2行目では順列pを表すN個の整数が空白区切りで与えられる。3行目ではクエリの数を表す整数Qが与えられる。続くQ行のi行目は空白区切りの2つの整数l_i, r_iからなり、クエリが区間[l_i, r_i]のコンプレックス度を聞くものであることを表す。

入力は以下の制約を満たす。

1 \≤ N \≤ 100,000

1 \≤ p_i \≤ N, p_i \neq p_j (i \neq j)

1 \≤ Q \≤ 200,000

1 \≤ l_i \≤ r_i \≤ N

出力形式

Q個の各クエリiに関して、pの区間[l_i, r_i]のコンプレックス度をi行目に出力せよ。ただし、pの区間[l_i, r_i]のコンプレックス度とは、(\{ (i, j) | p_i > p_j {\rm for} l \≤ i<j \≤ r \}の要素数)と定義される。

入力例1

4
4 1 3 2
2
1 3
2 4

出力例1

2
1

入力例2

1
1
1
1 1

出力例2

0
Best Matched Pair

You are working for a worldwide game company as an engineer in Tokyo. This company holds an annual event for all the staff members of the company every summer. This year's event will take place in Tokyo. You will participate in the event on the side of the organizing staff. And you have been assigned to plan a recreation game which all the participants will play at the same time.

After you had thought out various ideas, you designed the rules of the game as below.

Each player is given a positive integer before the start of the game.

Each player attempts to make a pair with another player in this game, and formed pairs compete with each other by comparing the products of two integers.

Each player can change the partner any number of times before the end of the game, but cannot have two or more partners at the same time.

At the end of the game, the pair with the largest product wins the game.

In addition, regarding the given integers, the next condition must be satisfied for making a pair.

The sequence of digits obtained by considering the product of the two integers of a pair as a string must be increasing and consecutive from left to right. For example, 2, 23, and 56789 meet this condition, but 21, 334, 135 or 89012 do not.

Setting the rules as above, you noticed that multiple pairs may be the winners who have the same product depending on the situation. However, you can find out what is the largest product of two integers when a set of integers is given.

Your task is, given a set of distinct integers which will be assigned to the players, to compute the largest possible product of two integers, satisfying the rules of the game mentioned above.

Input

The input consists of a single test case formatted as follows.

$N$

$a_1$ $a_2$ ... $a_N$

The first line contains a positive integer $N$ which indicates the number of the players of the game. $N$ is an integer between 1 and 1,000. The second line has $N$ positive integers that indicate the numbers given to the players. For $i = 1, 2, ... , N - 1$, there is a space between $a_i$ and $a_{i+1}$. $a_i$ is between 1 and 10,000 for $i = 1, 2, ..., N$, and if $i \ne j$, then $a_i \ne a_j$.

Output

Print the largest possible product of the two integers satisfying the conditions for making a pair. If any two players cannot make a pair, print -1.

Sample Input 1

2
1 2

Output for the Sample Input 1

2

Sample Input 2

3
3 22 115

Output for the Sample Input 2

345

Sample Input 3

2
1 11

Output for the Sample Input 3

-1

Sample Input 4

2
5 27

Output for the Sample Input 4

-1

Sample Input 5

2
17 53

Output for the Sample Input 5

-1

Sample Input 6

10
53 43 36 96 99 2 27 86 93 23

Output for the Sample Input 6

3456
Help the Princess!

The people of a certain kingdom make a revolution against the bad government of the princess. The revolutionary army invaded the royal palace in which the princess lives. The soldiers of the army are exploring the palace to catch the princess. Your job is writing a program to decide that the princess can escape from the royal palace or not.

For simplicity, the ground of the palace is a rectangle divided into a grid. There are two kinds of cells in the grid: one is a cell that soldiers and the princess can enter, the other is a cell that soldiers or the princess cannot enter. We call the former an empty cell, the latter a wall. The princess and soldiers are in different empty cells at the beginning. There is only one escape hatch in the grid. If the princess arrives the hatch, then the princess can escape from the palace. There are more than or equal to zero soldiers in the palace.

The princess and all soldiers take an action at the same time in each unit time. In other words, the princess and soldiers must decide their action without knowing a next action of the other people. In each unit time, the princess and soldiers can move to a horizontally or vertically adjacent cell, or stay at the current cell. Furthermore the princess and soldiers cannot move out of the ground of the palace. If the princess and one or more soldiers exist in the same cell after their move, then the princess will be caught. It is guaranteed that the princess can reach the escape hatch via only empty cells if all soldiers are removed from the palace.

If there is a route for the princess such that soldiers cannot catch the princess even if soldiers make any moves, then the princess can escape the soldiers. Note that if the princess and a soldier arrive the escape hatch at the same time, the princess will be caught. Can the princess escape from the palace?

Input

Each dataset is formatted as follows.

$H$ $W$

$map_1$

$map_2$

...

$map_H$

The first line of a dataset contains two positive integers $H$ and $W$ delimited by a space, where $H$ is the height of the grid and $W$ is the width of the grid ($2 \leq H, W \leq 200$).

The $i$-th line of the subsequent $H$ lines gives a string $map_i$, which represents situation in the ground of palace.

$map_i$ is a string of length $W$, and the $j$-th character of $map_i$ represents the state of the cell of the $i$-th row and the $j$-th column.

'@', '\$', '%', '.', and '#' represent the princess, a soldier, the escape hatch, an empty cell, and a wall, respectively. It is guaranteed that there exists only one '@', only one '%', and more than or equal to zero '\$' in the grid.

Output

Output a line containing a word "Yes", if the princess can escape from the palace. Otherwise, output "No".

Sample Input 1

2 4
%.@\$
..\$\$

Output for the Sample Input 1

Yes

Sample Input 2

3 4
.%..
.##.
.@\$.

Output for the Sample Input 2

Yes

Sample Input 3

2 3
%\$@
###

Output for the Sample Input 3

No

Sample Input 4

2 3
@#\$
.%.

Output for the Sample Input 4

No

Sample Input 5

2 2
@%
..

Output for the Sample Input 5

Yes
Parentheses

Dave loves strings consisting only of '(' and ')'. Especially, he is interested in balanced strings. Any balanced strings can be constructed using the following rules:

A string "()" is balanced.

Concatenation of two balanced strings are balanced.

If $T$ is a balanced string, concatenation of '(', $T$, and ')' in this order is balanced. For example, "()()" and "(()())" are balanced strings. ")(" and ")()(()" are not balanced strings.

Dave has a string consisting only of '(' and ')'. It satis es the followings:

You can make it balanced by swapping adjacent characters exactly $A$ times.

For any non-negative integer $B$ ($B < A$), you cannot make it balanced by $B$ swaps of adjacent characters.

It is the shortest of all strings satisfying the above conditions.

Your task is to compute Dave's string. If there are multiple candidates, output the minimum in lexicographic order. As is the case with ASCII, '(' is less than ')'.

Input

The input consists of a single test case, which contains an integer $A$ ($1 \leq A \leq 10^9$).

Output

Output Dave's string in one line. If there are multiple candidates, output the minimum in lexicographic order.

Sample Input 1

1

Output for the Sample Input 1

)(

There are infinitely many strings which can be balanced by only one swap. Dave's string is the shortest of them.

Sample Input 2

4

Output for the Sample Input 2

)())((

String "))(()(" can be balanced by 4 swaps, but the output should be ")())((" because it is the minimum in lexicographic order.
Similarity of Subtrees

Define the depth of a node in a rooted tree by applying the following rules recursively:

The depth of a root node is 0.

The depths of child nodes whose parents are with depth $d$ are $d + 1$.

Let $S(T, d)$ be the number of nodes of $T$ with depth $d$. Two rooted trees $T$ and $T'$ are similar if and only if $S(T, d)$ equals $S(T', d)$ for all non-negative integer $d$.

You are given a rooted tree $T$ with $N$ nodes. The nodes of $T$ are numbered from 1 to $N$. Node 1 is the root node of $T$. Let $T_i$ be the rooted subtree of $T$ whose root is node $i$. Your task is to write a program which calculates the number of pairs $(i, j)$ such that $T_i$ and $T_j$ are similar and $i < j$.

Input

The input consists of a single test case.

$N$

$a_1$ $b_1$

$a_2$ $b_2$

...

$a_{N-1}$ $b_{N-1}$

The first line contains an integer $N$ ($1 \leq N \leq 100,000$), which is the number of nodes in a tree. The following $N -1$ lines give information of branches: the $i$-th line of them contains $a_i$ and $b_i$, which indicates that a node $a_i$ is a parent of a node $b_i$. ($1 \leq a_i, b_i \leq N, a_i \ne b_i$) The root node is numbered by 1. It is guaranteed that a given graph is a rooted tree, i.e. there is exactly one parent for each node except the node 1, and the graph is connected.

Output

Print the number of the pairs $(x, y)$ of the nodes such that the subtree with the root $x$ and the subtree with the root $y$ are similar and $x < y$.

Sample Input 1

5
1 2
1 3
1 4
1 5

Output for the Sample Input 1

6

Sample Input 2

6
1 2
2 3
3 4
1 5
5 6

Output for the Sample Input 2

2

Sample Input 3

13
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
6 10
7 11
8 12
11 13

Output for the Sample Input 3

14
Escape from the Hell

One day, Buddha looked into the hell and found an office worker. He did evil, such as enforcing hard work on his subordinates. However, he made only one good in his life. He refused an unreasonable request from his customer to save the lives of his subordinates. Buddha thought that, as the reward of the good, the office worker should have had a chance to escape from the hell. Buddha took a spider silk and put down to the hell.

The office worker climbed up with the spider silk, however the length of the way $L$ meters was too long to escape one day. He had $N$ energy drinks and drunk one of them each day. The day he drunk the i-th energy drink he could climb $A_i$ meters in the daytime and after that slided down $B_i$ meters in the night. If he could reach at the height greater than or equal to the $L$ meters in the daytime, he could escape without sliding down. After the $N$ days the silk would be cut.

He realized that other sinners climbed the silk in the night. They climbed $C_i$ meters in the $i$-th night without sliding down in the daytime. If they catched up with the office worker, they should have conflicted and the silk would be cut. Therefore he needed to escape before other sinners catched him. Your task is to write a program computing the best order of energy drink and output the earliest day which he could escape. If he could not escape, your program should output -1.

Input

The input consists of a single test case.

$N$ $L$

$A_1$ $B_1$

$A_2$ $B_2$

...

$A_N$ $B_N$

$C_1$

$C_2$

...

$C_N$

The first line contains two integers $N$ ($1 \leq N \leq 10^5$) and $L$ ($1 \leq L \leq 10^9$), which mean the number of energy drinks and the length of the spider silk respectively. The following $N$ lines show the information of the drinks: the $i$-th of them indicates the $i$-th energy drink, he climbed up $A_i$ ($1 \leq A_i \leq 10^9$) meters and slided down $B_i$ ($1 \leq B_i \leq 10^9$) meters. Next $N$ lines show how far other sinners climbed: the $i$-th of them contains an integer $C_i$ ($1 \leq C_i \leq 10^9$), which means they climbed up $C_i$ meters in the $i$-th day.

Output

Print the earliest day which he could escape. If he could not escape, print -1 instead.

Sample Input 1

3 9
6 3
5 2
3 1
2
2
2

Output for the Sample Input 1

2

Sample Input 2

5 20
3 2
4 2
6 3
8 4
10 5
4
2
3
4
5

Output for the Sample Input 2

-1

Sample Input 3

5 20
6 5
7 3
10 3
10 14
4 7
2
5
3
9
2

Output for the Sample Input 3

3

Sample Input 4

4 12
8 4
6 4
2 1
2 1
1
1
4
4

Output for the Sample Input 4

-1