配点 : 300300

問題文

NN 個の品物があります。品物には 1,2,,N1, 2, \ldots , N と番号が振られています。各 i (1iN)i \ (1 ≦ i ≦ N) について、品物 ii の重さは wiw_i で価値は viv_i です。

mts くんは NN 個の品物のうちいくつかを選び、ナップサックに入れて持ち帰ることにしました。ただし、選んだ品物 {x1,,xK}\{ x_1, \ldots , x_K \} が下記の条件を満たす場合、かつその場合に限り、ナップサックに入れて持ち帰ることができます。ここで、KK は選んだ品物の個数、xj (1jK)x_j \ (1 ≦ j ≦ K) は選んだ品物の番号を表します。

  • lcm(wx1,,wxK)W\mathrm{lcm}(w_{x_1}, \ldots , w_{x_K}) \leq W

mts くんが持ち帰る品物の価値の総和の最大値を求めてください。より厳密には、lcm(wx1,,wxK)W\mathrm{lcm}(w_{x_1}, \ldots , w_{x_K}) \leq W を満たす品物の選び方 {x1,,xK}\{ x_1, \ldots , x_K \} における j=1Kvxj\sum_{j = 1}^{K} v_{x_j} の最大値を求めてください。

ただし、lcm(a1,,an)\mathrm{lcm}(a_1, \ldots , a_n)n2n \geq 2 のとき {a1,,an}\{ a_1, \ldots , a_n \} の最小公倍数を、n=1n = 1 のとき a1a_1 を、n=0n = 0 のとき(つまり品物を一つも選ばないとき)11 をそれぞれ表すものとします。

制約

  • 1N1001 \leq N \leq 100
  • 1W1041 \leq W \leq 10^4
  • 1wi1031 \leq w_i \leq 10^3
  • 1vi1091 \leq v_i \leq 10^9
  • 入力は全て整数である

入力

入力は以下の形式で標準入力から与えられます。

N WN \ W
w1 v1w_1 \ v_1
w2 v2w_2 \ v_2
\vdots
wN vNw_{N} \ v_{N}

出力

mts くんが持ち帰る品物の価値の総和の最大値を出力してください。

サンプル 1

入力1
3 15
3 10
4 20
5 30
出力1
40

品物の選び方として次の 88 通りがあります。

  • 品物を一つも選ばない場合、条件を満たし、価値の総和は 00
  • 品物 {1}\{ 1 \} を選ぶ場合、lcm(w1)=lcm(3)=3\mathrm{lcm}(w_{1}) = \mathrm{lcm}(3) = 3 であり、価値の総和は 1010
  • 品物 {2}\{ 2 \} を選ぶ場合、lcm(w2)=lcm(4)=4\mathrm{lcm}(w_{2}) = \mathrm{lcm}(4) = 4 であり、価値の総和は 2020
  • 品物 {3}\{ 3 \} を選ぶ場合、lcm(w3)=lcm(5)=5\mathrm{lcm}(w_{3}) = \mathrm{lcm}(5) = 5 であり、価値の総和は 3030
  • 品物 {1,2}\{ 1, 2 \} を選ぶ場合、lcm(w1,w2)=lcm(3,4)=12\mathrm{lcm}(w_{1}, w_{2}) = \mathrm{lcm}(3, 4) = 12 であり、価値の総和は 3030
  • 品物 {1,3}\{ 1, 3 \} を選ぶ場合、lcm(w1,w3)=lcm(3,5)=15\mathrm{lcm}(w_{1}, w_{3}) = \mathrm{lcm}(3, 5) = 15 であり、価値の総和は 4040
  • 品物 {2,3}\{ 2, 3 \} を選ぶ場合、lcm(w2,w3)=lcm(4,5)=20\mathrm{lcm}(w_{2}, w_{3}) = \mathrm{lcm}(4, 5) = 20 であり、価値の総和は 5050
  • 品物 {1,2,3}\{ 1, 2, 3 \} を選ぶ場合、lcm(w1,w2,w3)=lcm(3,4,5)=60\mathrm{lcm}(w_{1}, w_{2}, w_{3}) = \mathrm{lcm}(3, 4, 5) = 60 であり、価値の総和は 6060

このうち、条件を満たす選び方において、価値の総和の最大値は 4040 です。

サンプル 2

入力2
4 10
12 100
34 200
56 300
78 400
出力2
0

品物を一つも持ち帰ることができない場合があります。

サンプル 3

入力3
5 100
1 1000000000
2 1000000000
3 1000000000
4 1000000000
5 1000000000
出力3
5000000000

答えは 32-bit 整数型に収まらない場合があります。

提出


Go (1.21)