#include <bits/stdc++.h>
using namespace std;
template <class T>
T mceil(T a, T b) {
  if (a % b == 0)
    return a / b;
  else
    return a / b + 1;
}
const long long int M = 1e9 + 7;
const long long int N = 2e5 + 5;
const long long int inf = 9e18;
set<long long int> s;
vector<long long int> v;
long long int n, k;
long long int chk(long long int i) {
  for (long long int j = min(i + k, n - 1); j >= i; j--) {
    if (v[j] == 1) {
      s.insert(j);
      return j;
    }
  }
  for (long long int j = i - 1; j >= max(i - k, 0LL); j--) {
    if (v[j] == 1) {
      s.insert(j);
      return j;
    }
  }
  return -1;
}
bool ok(long long int i) {
  for (long long int j = min(i + k, n - 1); j >= i; j--) {
    if (s.count(j)) return true;
  }
  for (long long int j = max(i - k, 0LL); j < i; j++) {
    if (s.count(j)) return true;
  }
  return false;
}
int main() {
  ios_base ::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> k;
  k--;
  v.resize(n);
  for (long long int i = 0; i < n; i++) cin >> v[i];
  for (long long int i = 0; i < n; i++) {
    if (ok(i)) continue;
    if (chk(i) == -1) {
      cout << -1 << "\n";
      return 0;
    }
  }
  cout << (int)((s).size());
}
