Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

カエルはまっすぐ帰る

一匹のカエルが巣穴に帰ろうとしています。巣穴はカエルの D センチメートル前方にあって、カエルは巣穴に向かってまっすぐ進みます。カエルができる行動は、以下の２つだけです。

大ジャンプ（L センチメートル前方に進む）

小ジャンプ（１センチメートル前方に進む）

カエルは巣穴を跳び越すことなく、ちょうど巣穴に着地することをねらっています。

カエルが巣穴に帰るために、最低何回跳ぶ必要があるかを求めるプログラムを作成せよ。

Input

入力は以下の形式で与えられる。

D L

入力は１行であり、巣穴までの距離 D (1 ≤ D ≤ 10000) と大ジャンプでカエルが進む距離 L (2 ≤ L ≤ 10000) が与えられる。

Output

カエルが最低何回跳ぶ必要があるかを、１行に出力する。

Sample Input 1

10 5

Sample Output 1

2

Sample Input 2

7 4

Sample Output 2

4

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.IO.Compression;
using System.IO.Pipes;
using System.Linq;
using System.Numerics;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using static System.Console;
using static System.Math;

namespace AtCoder
{
    class Program
    {
        static void Main(string[] args)
        {
            var DL = ReadInts();
            var D = DL[0];
            var L = DL[1];

            WriteLine(D / L + D % L);
        }
        private static string Read() { return ReadLine(); }
        private static string[] Reads() { return (Read().Split()); }
        private static int ReadInt() { return int.Parse(Read()); }
        private static long ReadLong() { return long.Parse(Read()); }
        private static double ReadDouble() { return double.Parse(Read()); }
        private static int[] ReadInts() { return Array.ConvertAll(Read().Split(), int.Parse); }
        private static long[] ReadLongs() { return Array.ConvertAll(Read().Split(), long.Parse); }
        private static double[] ReadDoubles() { return Array.ConvertAll(Read().Split(), double.Parse); }
    }
}