#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;++i)
#define rep1(i,n) for(int i=1;i<=n;++i)
#define debug(x) cout<<#x<<": "<<x<<endl
map<int,int> e;	//<end,start>

bool insert(int x){
	auto itr = e.lower_bound(x);
	bool nextleft = (e.find(x-1)!=e.end());

	/* x??\?????????????????? */
	if(itr==e.end()){
		/* ?????????????????£??\ */
		if(nextleft){
			e[x]=e[x-1];
			e.erase(x-1);
		}/* ??¬??? */
		else e[x]=x;
		return true;
	}

	/* ??±??? */
	int left=itr->second,right=itr->first;
	if(left==1 && (x<right || (int)e.size()>1) ){
		return false;
	}

	/* ???????????? */
	if(x==right){
		e.erase(itr);
		return insert(left-1);
	}

	/* ????????? */
	if(left<=x){
		itr->second = x+1;
		return insert(left-1);
	}

	e[x]=x;

	/* ????????????????????£??\ */
	if(nextleft){
		e[x]=e[x-1];
		e.erase(x-1);
	}

	/* ????????????????????£??\ */
	if(itr->second==x+1){
		itr->second = e[x];
		e.erase(x);
	}
	return true;
}

int main(void){
	int n,x;
	cin>>n>>x;
	e[x]=x;
	cout<<"Yes"<<endl;
	while(--n){
		cin>>x;
		if(e.find(0)!=e.end()){
			cout<<"No"<<endl;
			continue;
		}
		if(insert(x))cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	return 0;
}