#include <bits/stdc++.h>
using namespace std;
int n, r, a[1010], n1 = 0, ans = 0, le = 0, n0 = 0, ri = -1, ar[1010];
bool ok(int x) {
  int t;
  for (int j = max(0, x - r + 1); j <= min(n - 1, x + r - 1); j++) {
    t = a[j] - 1;
    if (t <= 0) return 0;
  }
  for (int j = max(0, x - r + 1); j <= min(n - 1, x + r - 1); j++) {
    a[j]--;
  }
  return 1;
}
int main() {
  scanf("%d%d", &n, &r);
  memset(a, 0, sizeof(a));
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    if (x) {
      ar[n1++] = i;
      for (int j = max(0, i - r + 1); j <= min(n - 1, i + r - 1); j++) a[j]++;
    }
  }
  for (int i = 0; i < n; i++)
    if (!a[i]) return printf("-1") * 0;
  ans = n1;
  for (int i = 0; i < n1; i++) {
    int m = ar[i];
    if (ok(m)) ans--;
  }
  printf("%d", ans);
  return 0;
}
