問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
あなたは 3 つの素数 P_1, P_2, P_3 を使って数列をつくることになりました。
その数列は 1 に 3 つの素数を複数回掛け合わせてできた数を小さい順に並べたものとなっています。
ある素数を一回も使わないこともあることに注意してください。
あなたはその数列で k 番目のものを出力するプログラムを作成してください。
例えば、入力例 1 では下の図のように数列ができ、7 番目の数となる 8 が出力されます。

入力は以下のフォーマットで与えられます。
P_1 P_2 P_3 k
3 つの素数を表す整数 P_1, P_2, P_3 と数列の出力する項を表す整数 k がこの順で半角スペース区切りで与えられます。
入力は 1 行となり、末尾に改行が 1 つ入ります。
数列の k 番目に小さい数を出力してください。
答えは 64 bit 符号付き整数の範囲に収まります。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
* 入力はすべて整数
* P_1, P_2, P_3 はそれぞれ相異なる素数
* 2 ≦ P_1, P_2, P_3 ≦ 7
* 1 ≦ k ≦ 1,000
2 3 5 7
8
3 2 7 1
1
3 5 7 1000
81716054175