問題文

11 ~ NN の番号が付いたお菓子が 11 個ずつ入ったお菓子セットがある。お菓子にはそれぞれに体積と美味しさが設定されている。

お菓子 ii の体積は viv_i で、美味しさは aia_i である。

あなたはお菓子セットを好きな数だけ用意して、セット内のお菓子を食べることができる。 ただし、食べたお菓子の体積の合計が VV 以下になるように食べなければならないとする。

食べたお菓子の美味しさの合計の最大値と、それを達成するために必要なお菓子セットの最小個数を出力するようなプログラムを作成せよ。

出力は 64 bit整数に収まることが保証されます。

制約

1N,V10001\leq N, V \leq 1000

1viV1\leq v_i \leq V (1iN)(1\leq i \leq N)

1ai1091\leq a_i \leq 10^9 (1iN)(1\leq i \leq N)

入力

入力はすべて整数である。

N V
v_1 a_1
v_2 a_2
...
v_N a_N

出力

食べたお菓子の美味しさの合計の最大値と、それを達成するために必要なお菓子セットの最小個数をこの順に半角空白区切りで一行に出力せよ。

サンプル

入力1
3 10
1 2
3 1
4 9
出力1
22 2

お菓子セット 11 個では食べたお菓子の美味しさの総和は最大でも 1212 にしかなりません。

お菓子セット 22 個だと食べたお菓子の美味しさの総和は 2222 にでき、これが最大となります。

入力2
3 1000
7 665040040
2 382793173
9 598410644
出力2
191396586500 500

出力が 32 bit整数に収まらない場合もあります。

Submit


Go (1.21)