import java.util.Scanner;

public class Main {

    private Scanner scanner;

    private Main(Scanner scanner) {
        this.scanner = scanner;
    }

    public static void main(String[] args) {
        Main main = new Main(new Scanner(System.in));
        main.solve();
    }

    private void solve() {
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int[] a = new int[n];
        long s = 0;
        for (int i = 0; i < n; i++) s += a[i] = scanner.nextInt();
        long l = 2, r = s + n;
        while (l < r) {
            long z = l + r >> 1;
            int[] b = a.clone();
            int p = n - 1;
            for (int i = 0; i < m; i++) {
                while (p >= 0 && b[p] == 0) p--;
                long t = z - p - 1;
                if (t <= 0) break;
                while (p >= 0 && b[p] <= t) t -= b[p--];
                if (p >= 0) b[p] -= t;
            }
            if (p < 0) r = z;
            else
                l = z + 1;
        }
        System.out.println(r);
    }
}
