#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
long long n;
long long a[N];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  while (cin >> n) {
    for (int i = 1; i <= n; i++) cin >> a[i];
    a[n + 1] = -2;
    bool star = 1, ok = 0;
    long long cnt = 0, d = 0, ans = 0;
    for (int i = 1; i <= n; i++) {
      if (a[i] == -1 && !ok && star)
        cnt++;
      else if (a[i] == -1 && ok) {
        if (a[i - 1] + d > 0)
          a[i] = a[i - 1] + d;
        else
          ans++, cnt = 1, star = 1, ok = 0;
      } else if (a[i] == -1 && !star) {
        int j = i + 1;
        while (a[j] == -1) j++;
        if (a[j] == -2) break;
        long long dis = j + 1 - i;
        long long diff = a[j] - a[i - 1];
        if (diff % dis == 0) {
          ok = 1;
          d = diff / dis;
          i = j;
        } else
          ok = 0, star = 1, i = j - 1, ans++;
      } else if (a[i] != -1 && cnt) {
        int j = i + 1;
        while (a[j] == -1) j++;
        if (a[j] == -2) break;
        long long dis = j - i;
        long long diff = a[j] - a[i];
        if (diff % dis == 0) {
          d = diff / dis;
          if (a[i] - d * cnt > 0)
            ok = 1, star = 0, i = j;
          else
            i = j - 1, ok = 0, star = 1, ans++;
        } else
          i = j - 1, ok = 0, star = 1, ans++;
        cnt = 0;
      } else if (star)
        star = 0;
      else if (!ok)
        d = a[i] - a[i - 1], ok = 1;
      else if (a[i - 1] + d != a[i])
        ans++, star = 1, ok = 0, i--;
    }
    cout << ans + 1 << endl;
  }
  return 0;
}
