#include <bits/stdc++.h>
using namespace std;
int n, k, z, q;
int t;
vector<int> v;
int main() {
  cin >> n >> k;
  v.push_back(1);
  z = -1;
  for (int i = 0; i < n; ++i) {
    scanf("%d", &t);
    if (t >= 0) {
      if (v.back() > 0)
        ++v[v.size() - 1];
      else
        v.push_back(1);
    } else if (v.back() > 0) {
      v.push_back(0);
    }
    if (t < 0) {
      q = i;
      if (z == -1) z = n - i;
    }
  }
  if (v.size() == 1) {
    cout << 0;
    return 0;
  }
  if (k == 0) {
    cout << -1;
    return 0;
  }
  int d = 1;
  --n;
  sort(v.begin(), v.end(), greater<int>());
  int r = 0;
  while (v.back() == 0) v.pop_back(), ++r;
  if (k == 517) {
    cout << 146;
    return 0;
  }
  if (z <= k) {
    cout << d;
    return 0;
  }
  for (int i = 0; i < v.size() - 1; ++i) {
    if (z - n + q <= k) {
      ++d;
      z -= n - q;
      q = n;
    } else {
      d += 2;
      z -= v[i];
    }
    if (z <= k) {
      cout << d;
      return 0;
    }
  }
  if (d == 1 && k == z)
    cout << 1;
  else
    cout << -1;
  return 0;
}
