打怪(hard)
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

你在刷副本打怪,这个副本里只有一种怪,对战规则很简单,就是你砍它一刀,它砍你一刀,都是1v1,你先出手

你初始攻击力是1,防御力是0,血量是无穷。
怪防御力永远为0,只有初始血量和攻击力。
双方每次受到攻击会掉对手的攻击-自己的防御的血量,如果自己防御更高,则不掉血。

众所周知,打怪会爆金币,打死一个怪爆1金币,金币可以用于加点,攻击或防御提升1需要消耗1金币。

你希望称霸副本。

怎么才能算是称霸呢?你能毫发无损的把一个怪打死。

那么,在你称霸副本之前最少受到多少伤害呢?

输入描述:

一行两个整数AD,HP,表示该副本中怪物的攻击力和血量。

输出描述:

一行一个整数,表示你最少受到多少伤害才会称霸副本。
示例1

输入

复制
10 1

输出

复制
0

说明

由于你先出手,你把怪直接秒了,不受伤害
示例2

输入

复制
2 2

输出

复制
2

说明

第一回合,你砍怪,怪砍你,怪剩余hp1,你掉血2
第二回合,你砍怪,怪死亡。
你选择加攻击。
此后你可以一刀斩,总掉血2
示例3

输入

复制
4 10

输出

复制
76

说明

提示:一种最优解是最终局面你的攻击力2,防御力4

备注:

0<AD,HP\leq 10^{12}
注意“毫发无损”有不止一种情况。