#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <cmath>
#include <bitset>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <algorithm>
#include <complex>
#include <unordered_map>
#include <random>
using namespace std;
typedef long long int ll;
typedef pair<int, int> P;

int main()
{
	vector<int> mn;
	int n;
	cin>>n;
	mn.push_back(0);
	int add=0;
	for(int i=0; i<n; i++){
		int a; cin>>a;
		int j=lower_bound(mn.begin(), mn.end(), a-add)-mn.begin();
		add++;
		if(j==mn.size()) mn.push_back(a-add);
		else if(j>0) mn[j]=a-add;
	}
	cout<<n+1-mn.size()<<endl;
	return 0;
}