#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<queue>
#include<set>
#include<cmath>
#include<algorithm>
#include<map>
#include<cstdlib>
#include<stack>
#include<sstream>
#include<string>
#include<cassert>
#include<ctime>
#include<functional>
#include<deque>
#include<bitset>
#include<unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int INF = 0x3f3f3f3f;
const double PI = acos(-1.0);
int kase = 0;
int n, m;
const int maxn = 5e5 + 10;
set<int> s;

int main()
{
	int now = 1, fir = 0;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		int x;
		cin >> x;
		if (fir)
		{
			printf("No\n");
			continue;
		}
		else if(x == now - 1 && s.size() == now - 1)
		{
			fir = 1;
			printf("Yes\n");
		}
		else if (x < now)  printf("No\n");
		else
		{
			while (s.find(x) != s.end())
			{
				s.erase(x);
				x--;
			}
			s.insert(x);
			while (s.find(now) != s.end()) now++;
			printf("Yes\n");
		}
	}
}