#YDRB012A. 邮戳 (postmark)

邮戳 (postmark)

题目描述

云小斗很喜欢收集邮戳,现在他有一个专门用来盖邮戳的足够大的初始是空白的信封。

每次盖邮戳的时候,会发生如下的事情:

  1. 工作人员会先检查此时信封上的邮戳数量 CC,若 CHC\ge H,则工作人员只会在信封上加盖恰好 11邮戳。
  2. 否则,工作人员有两种选择:
    • 在信封上加盖恰好 11邮戳;
    • 在信封上加盖恰好 k(k>1)k\,(k>1)邮戳。

云小斗现在希望信封能盖上恰好 nn 个邮戳,给定 H,kH,k,他想知道,他最少需要去盖多少次邮戳?

输入格式

从文件 postmark.in 中读入。

仅一行三个整数 n,H,kn,H,k,意义如题述。

输出格式

输出到文件 postmark.out 中。

输出一行一个整数,即云小斗最少去盖邮戳的次数。

输入输出样例

输入样例 1

20 10 5

输出样例 1

12

样例 1 说明

一种最优的方法是:

  • 11 次,工作人员盖上 55 个邮戳。
  • 22 次,工作人员盖上 55 个邮戳。
  • 3123\sim 12 次,由于在盖之前信封上的邮戳数量达到了 H=10H=10,工作人员每次只能盖上 11 个邮戳。

样例 2

见下发压缩包中 postmark2.in\textbf{\textit{postmark2.in}}postmark2.ans\textbf{\textit{postmark2.ans}}

该样例符合测试点 151\sim 5 的限制。

样例 3

见下发压缩包中 postmark3.in\textbf{\textit{postmark3.in}}postmark3.ans\textbf{\textit{postmark3.ans}}

该样例符合测试点 676\sim7 的限制。

说明

数据规模与约定

测试点 特殊性质
151\sim5 nHn\le H
676\sim7 kHk\mid H
8108\sim10 /

对于 100%100\% 的数据,有 1n,H,k10181\le n,H,k\le 10^{18}