003 - ブロック積み上げ
時間制限 1 秒 / メモリ制限 256 MB / 得点 5 / x 1 /
ブロックを積み上げて塔を一つ作ります。塔はいくつかの段からなり、各段は水平方向にブロックをつなげて作ります。どのブロックも重さは同じで、$K$ 個以下のブロックの重さがかかってもつぶれないだけの強度があります。
塔を作るには、次の条件を満たさなければなりません。
- 塔のすべての段に1個以上のブロックがある。
- どのブロックにも、ブロックがつぶれない程度の重さしかかかっていない。ただし、各ブロックにかかる重さは、そのブロックより上にあるすべての段のブロックの重さの合計を、そのブロックと同じ段にあるブロックの個数で割った値とする。
ブロックの個数と各ブロックの強度が与えられたとき、作ることのできる塔の段数の最大値を求めるプログラムを作成せよ。
入力
入力は以下の形式で与えられる。
$N$ $K$
1行にブロックの個数$N$ ($1 \leq N \leq 10^5$)と、ブロックの強度$K$ ($1 \leq K \leq 10^5$)が整数で与えられる。
出力
塔の段数の最大値を1行に出力する。
入出力例
入力例1
4 2
出力例1
3
入力例2
5 2
出力例2
4