#include <bits/stdc++.h>
using namespace std;
const int N = 2 * 1e5 + 5;
int n, m, z, x, y, t[N], K, last, a[N], num, ans;
int main() {
  scanf("%d%d", &n, &K);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &t[i]);
    if (t[i] < 0) {
      if (last != 0 && t[i - 1] >= 0) a[++num] = i - last - 1;
      if (t[i - 1] >= 0) ans += 2;
      ++z;
      last = i;
    }
  }
  if (z == 0) {
    printf("0\n");
    return 0;
  }
  if (z > K) {
    printf("-1");
    return 0;
  }
  sort(a + 1, a + num + 1);
  for (int i = 1; i <= num; ++i)
    if (z + a[i] <= K) {
      z += a[i];
      ans -= 2;
    }
  if (last == n)
    --ans;
  else if (z + n - last <= K)
    --ans;
  printf("%d", ans);
}
