3
-1 1 -1
 4
45 -1 41 -1
 1
-1
 5
40 -1 44 46 48
 6
43 40 37 34 -1 -1
 7
-1 2 4 -1 4 1 5
 19
23 26 -1 -1 35 38 41 -1 -1 -1 53 -1 59 62 6 7 8 9 -1
 6
-1 2 6 -1 -1 6
 16
3 8 13 18 23 -1 -1 -1 43 48 53 45 -1 -1 -1 -1
 13
25 24 23 22 24 27 -1 33 -1 2 2 2 -1
 12
-1 17 -1 54 -1 64 -1 74 79 84 -1 94
 8
-1 12 14 16 18 20 -1 -1
 13
2 -1 3 1 3 1 -1 1 3 -1 -1 1 1
 5
-1 40 42 -1 46
 2
1000000000 -1
 14
-1 5 3 -1 -1 31 31 31 -1 31 -1 -1 4 7
 3
-1 1000000000 999999999
 7
32 33 34 -1 -1 37 38
 1
1000000000
 10
29 27 -1 23 42 -1 -1 45 -1 -1
 3
39 42 -1
 15
-1 28 -1 32 34 26 -1 26 -1 -1 26 26 26 -1 -1
 3
1000000000 999999999 1000000000
 17
-1 -1 -1 -1 64 68 72 -1 45 46 47 48 49 50 51 52 53
 3
-1 1 1000000000
 2
-1 1000000000
 3
999999999 -1 1000000000
 1
1
 2
1000000000 1000000000
 3
999999999 1000000000 -1
 7
11 8 5 -1 -1 -1 -1
 3
-1 1 2
 2
-1 21
 8
-1 -1 1 7 -1 9 5 2
 11
9 21 17 13 -1 -1 -1 -1 -1 -1 -1
 3
-1 1000000000 -1
 6
-1 6 1 -1 -1 -1
 1
65
 20
-1 32 37 -1 -1 -1 57 -1 -1 40 31 33 -1 -1 39 47 43 -1 35 32
 5
-1 1 7 -1 5
 18
21 19 -1 -1 -1 48 50 -1 54 -1 5 1 -1 -1 -1 37 36 35
 9
42 39 36 33 -1 -1 -1 34 39
 2
-1 -1

1
 1
 1
 1
 1
 3
 2
 2
 2
 3
 2
 1
 6
 1
 1
 3
 1
 1
 1
 2
 1
 2
 2
 2
 2
 1
 2
 1
 1
 1
 2
 2
 1
 3
 3
 1
 2
 1
 5
 2
 4
 2
 1

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.util.TreeMap;

public class Test {
	public static void main(String[] args) {
		// try {
		// InputStream inputStream = new FileInputStream(
		// "D:\\codeforse\\CF\\input.txt");
		// OutputStream outputStream = new FileOutputStream(
		// "D:\\codeforse\\CF\\output.txt");
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		C solver = new C();
		solver.solve(1, in, out);
		out.close();
		// } catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		// e.printStackTrace();
		// } catch (IOException e) {
		// TODO Auto-generated catch block
		// e.printStackTrace();
		// }
	}
}

class C {

	public void solve(int testNumber, InputReader in, PrintWriter out) {
		int n = in.nextInt();

		long sum = 1;

		long first = -1;
		int isP = 0;
		long raz = 0;
		int counter = 0;
		long t;
		for (int i = 0; i < n; i++) {
			t = in.nextLong();
			if (t == -1) {
				if (isP == 0) {
					if (first == -1) {

					} else {
						counter++;
					}
				}else{
					first += raz;
				}
			} else {
				if (isP == 0) {

					if (first == -1) {
						first = t;
					} else {
						if (counter == 0) {
							raz = t - first;
							first = t;
							isP = 1;
						} else {
							if ((t - first)%(counter+1) == 0){
								raz = (t - first)%(counter+1);
								isP = 1;
							}else{
								sum++;
								first = t;
								counter = 0;
								//System.out.println(sum + " "+ t);
							}
						}
					}
				} else {
					if (t - raz == first) {
						first = t;
					} else {
						sum++;
						first = -1;
						isP = 0;
						counter = 0;
						//System.out.println(sum + " "+ t);
					}
				}
			}
			//System.out.println("isP "+isP+" first "+first+" raz "+raz+" counter "+counter+" sum "+sum+" "+t );

		}
		out.print(sum);

	}

	private static double round(double number) {
		double tmp = number * 10000000;
		return (double) (long) ((tmp - (long) tmp) >= 0.5f ? tmp + 1 : tmp) / 10000000;
	}

	private static double round1(double number) {
		double tmp = number * 100000;
		return (double) (long) ((tmp - (long) tmp) >= 0.5f ? tmp + 1 : tmp) / 100000;
	}
}

class Pair {

}

class InputReader {

	public BufferedReader reader;
	public StringTokenizer tokenizer;

	public InputReader(InputStream stream) {
		reader = new BufferedReader(new InputStreamReader(stream));
		tokenizer = null;
	}

	public String next() {
		while (tokenizer == null || !tokenizer.hasMoreTokens()) {
			try {
				tokenizer = new StringTokenizer(reader.readLine());
			} catch (IOException e) {
				throw new RuntimeException(e);
			}
		}
		return tokenizer.nextToken();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public Double nextDouble() {
		return Double.parseDouble(next());
	}

	public String nextString() {
		return next();
	}

}
