AT_codefestival_2016_final_e Cookies

Description

[problemUrl]: https://atcoder.jp/contests/cf16-final/tasks/codefestival_2016_final_e りんごさんはクッキーを焼いています。 りんごさんははじめ、$ 1 $ 秒間に $ 1 $ 枚のクッキーを焼くことができます。 りんごさんはクッキーを食べることができます。 まだ食べていないクッキーが全部で $ x $ 枚あるとき、りんごさんはそれらをすべて食べることにより、$ 1 $ 秒間に焼くことのできるクッキーの枚数がちょうど $ x $ 枚になります。 クッキーを一部だけ食べることはできず、食べるときはすべて食べなければなりません。 クッキーを食べるためには個数にかかわらず $ A $ 秒の時間がかかり、その間はクッキーを焼くことができません。 また、クッキーは $ 1 $ 秒ごとに同時に焼きあがるため、例えば $ 0.5 $ 秒で $ x/2 $ 枚のクッキーを焼くというようなことはできません。 りんごさんは $ N $ 枚のクッキーをおばあさんにプレゼントしたいと思っています。 りんごさんがまだ食べていないクッキーを $ N $ 枚以上用意するためにかかる時間の最小値を求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A $

Output Format

りんごさんがまだ食べていないクッキーを $ N $ 枚以上用意するためにかかる時間の最小値を出力せよ。

Explanation/Hint

### 制約 - $ 1≦N≦10^{12} $ - $ 0≦A≦10^{12} $ - $ A $ は整数である。 ### 部分点 - $ N≦10^6 $ かつ $ A≦10^6 $ を満たすデータセットに正解した場合は、$ 500 $ 点が与えられる。 - 追加制約のないデータセットに正解した場合は、上記とは別に $ 500 $ 点が与えられる。 ### Sample Explanation 1 以下のように行動すると、$ 7 $ 秒で $ 8 $ 枚のクッキーを用意することができます。 - $ 1 $ 秒後:$ 1 $ 枚のクッキーが焼きあがる。 - $ 2 $ 秒後:$ 1 $ 枚のクッキーが焼きあがり、合計枚数が $ 2 $ 枚となる。ここで、$ 2 $ 枚のクッキーをすべて食べる。 - $ 3 $ 秒後:クッキーを食べ終わり、$ 1 $ 秒間に $ 2 $ 枚のクッキーを焼くことができるようになる。 - $ 4 $ 秒後:$ 2 $ 枚のクッキーが焼きあがる。 - $ 5 $ 秒後:$ 2 $ 枚のクッキーが焼きあがり、合計枚数が $ 4 $ 枚となる。 - $ 6 $ 秒後:$ 2 $ 枚のクッキーが焼きあがり、合計枚数が $ 6 $ 枚となる。 - $ 7 $ 秒後:$ 2 $ 枚のクッキーが焼きあがり、合計枚数が $ 8 $ 枚となる。