5 3
 1000 3
 777 17
 4 3
 2 2
 100 4
 10 4
 999 2
 6 4
 1 2
 17 3
 1 4
 26 8
 91 5
 1 3
 1000 2
 20 3
 9 4
 123 5
 1000 1000
 3 2
 3 3
 80 970
 1000 4
 1 1000

7
 1499
 825
 5
 3
 133
 13
 1997
 7
 1
 25
 1
 29
 113
 1
 1999
 29
 11
 153
 1001
 5
 4
 80
 1333
 1

import java.io.*;
import java.util.*;

public class Main {

    void solve() throws IOException {
        int a = nextInt();
        int b = nextInt();
        
        int hours = 0;
        
        while (a>=b) {
            int t = (a/b*b);
            a-=t;
            a+=t/b;
            hours+=t;
        }
        
        hours+=a;
        
        out.print(hours);
    }

    static BufferedReader in;
    static PrintWriter out;
    static StringTokenizer st;

    public Main() {
    };

    public void goMain() throws IOException {
        in = new BufferedReader(new InputStreamReader(System.in));
        out = new PrintWriter(System.out);
        st = new StringTokenizer("");
        solve();
        in.close();
        out.close();
    }

    public static void main(String[] args) throws IOException {
        try {
            if (new File("input.txt").exists()) {
                System.setIn(new FileInputStream("input.txt"));
            }
        } catch (SecurityException e) {
        }
        ;
        Main m = new Main();
        m.goMain();
    }

    String nextToken() throws IOException {
        while (!st.hasMoreTokens()) {
            st = new StringTokenizer(in.readLine());
        }
        return st.nextToken();
    }

    int nextInt() throws IOException {
        return Integer.parseInt(nextToken());
    }

    double nextDouble() throws IOException {
        return Double.parseDouble(nextToken());
    }

    long nextLong() throws IOException {
        return Long.parseLong(nextToken());
    }

    String nextString() throws IOException {
        st = new StringTokenizer("");
        return in.readLine();
    }

}
