/*
ID: kadir_k2
PROG: test
LANG: C++
*/

#include <bits/stdc++.h>

#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
#include <deque>
#include <vector>
#include <algorithm>
#include <time.h>
#include <map>
#include <set>
#include <string>

using namespace std;

#define IF ifstream cin("input.txt")
#define OF ofstream cout("output.txt")
#define rep(st,i,n) for(i = st; n > i ; i ++ )
#define pb push_back
#define fi first
#define se second
#define ins insert
#define make make_pair
#define NAME "seq"
typedef long long ll;
const double PI = 3.1415926535897932384626433832795;
int a[ 200009 ];
long long s[ 200009 ];
long long P ;
long long all ;
const long long inf = (ll)1e18;
int main(){
    freopen("input.txt" , "r" ,stdin);
    freopen("output.txt" , "w" ,stdout);
    int i , n , h;
    cin >> n >> h;
    for(i = 0; n > i ; i++){
        cin >> a[i];
        s[i] = a[i];
        if(i)s[i] += s[i-1];
    }
    all = ( h * 1LL * (h + 1) ) / (2*1LL);
    int T = h;
    long long ans = inf;
    for(i = n-1; i>=-1 ; i--)
    {
        if(!T){
            if(i!=-1)ans = min(ans , all - (s[i+h] - s[i]) );
            else ans = min(ans , all - (s[i+h]) );
            T = 1;
        }
        if(i ==-1);
        else if( a[i] <= T )T -- ;
        else if( a[i] <= h)T = a[i] - 1;
        else T = h;
    }
    if(ans == inf)cout << -1 << endl;
    else cout << ans << endl;
    return 0;
}