高橋君は苹果(りんご)ちゃんとニューヨークを観光することになりました。 高橋君は観光するところに特に希望はなかったのですが、苹果ちゃんの熱烈な誘いにより、以下の地図にあるような"ほそながいところ"を観光することに決まりました。

Google マップ - (C)2012 Google
この"ほそながいところ"はとても細長く、直線とみなすことができます。また、"ほそながいところ"には片方の端にスタート地点が、もう片方の端にゴール地点があり、スタート地点からゴール地点へ向けて何台かの観光用の馬車が走っています。この馬車は以下のようなルールに従って運行されています。
n台あり、すべての馬車はスタート地点から出発してゴール地点まで進みます。Si(Siは1以上の整数)分の等速で進みます。m箇所あり、そこでのみ2台まで並ぶことができ、ある馬車が別の馬車を追い抜くことが可能です。また、先述した"ほそながいところ"と"すこしひろいところ"について、以下の制約を満たします。
dist)km(distは1以上の整数)m箇所の"すこしひろいところ"はスタート地点からゴール地点までのどこかにあり、それらはいずれもスタート地点およびゴール地点とは重なりません。また、それぞれの"すこしひろいところ"はスタート地点からちょうど(Di)km(Diは1以上の整数)の地点にあります。これを聞いた高橋君は、以上に述べた馬車運行のルールを守りつつ馬車の出発時刻を調整することにより、1台目の馬車が発車してからすべての馬車が到着するまでにかかる時間を小さくできることを見抜きました。 高橋君の出した結果を知るために、 馬車の台数n , それぞれの馬車の速度に関するパラメータSi,"ほそながいところ"上に存在する"すこしひろいところ"の総数m ,それぞれの"すこしひろいところ"のスタート地点からの距離Di が与えられるので、 1台目の馬車が発車してからすべての馬車が到着するまでにかかる時間の最小値を求めるプログラムを書くことがあなたの仕事です。 なお、苹果ちゃんは"ほそながいところ"での観光を存分に楽しみましたが、高橋君はこの観光の後には「ほそながかった…」としかつぶやかなかったそうです。
入力形式は以下のようになっている。
dist
n
S1
S2
..
Sn
m
D1
D2
..
Dm
distはスタート地点からゴール地点までの距離(km)を表すnはスタート地点を発車する馬車の数を表すSiは馬車の速度を表し、i番目に出発する馬車は1kmを(Si)分で進むことを表す。mは"すこしひろいところ"の総数を表すDiはスタート地点からそれぞれの"すこしひろいところ"への距離(km)を表す。1台目の馬車が発車してからすべての馬車が到着するまでにかかる時間の最小値を1行に出力せよ。単位は分である。
1≤dist≤100000000(108)1≤n≤50≤m≤51≤Si≤1000ii≠jならばDi≠Dji < jならば、i番目に出発する馬車はj番目の馬車より1分以上早く出発しなければならない