#include
#include
#include
using namespace std;
typedef long long LL;
typedef pairPLI;//权值和路径;
int main()
{
int n,k;
cin>>n>>k;
priority_queue,greater>heap;//这里是双数据排序可以取得更小的高度
for(int i=0;i>x;
heap.push({x,0});
}
//n-m(k-1)=1等价转换而来,最后一层的叶子是k个所以=1;其他是由两个组合成一个的
while((n-1)%(k-1))heap.push({0,0}),n++;
//K个一组进行合并
LL res=0;
while(heap.size()>1)
{
LL s=0;
int depth=0;
for(int i=0;i