#include <cstdio>
#include <algorithm>
int n, x, d[200009];
int main() {
	scanf("%d", &n);
	for (int i = 0; i < n; ++i) {
		scanf("%d", &x);
		d[i] = 1 << 30;
		if (x - i > 0) *std::lower_bound(d, d + i, x - i + 1) = x - i;
	}
	printf("%d\n", n - (std::lower_bound(d, d + n, 1 << 30) - d));
	return 0;
}