#include <bits/stdc++.h>
using namespace std;
const int M = 1024 * 512;
int n;
int T[2 * M];
void add(int v) {
  v += M;
  T[v] += 1;
  while (v > 1) {
    v /= 2;
    T[v] = T[2 * v] + T[2 * v + 1];
  }
}
int lastZ(int v, int il) {
  if (v >= M) {
    return v - M;
  }
  if (T[2 * v + 1] == il / 2) {
    return lastZ(2 * v, il / 2);
  }
  return lastZ(2 * v + 1, il / 2);
}
int main() {
  scanf("%d", &n);
  for (int i = n + 1; i < M; i++) {
    add(i);
  }
  printf("1 ");
  for (int i = 1; i <= n; i++) {
    int a;
    scanf("%d", &a);
    add(a);
    int ind = lastZ(1, M);
    int il = n - ind;
    printf("%d ", 1 + i - il);
  }
  printf("\n");
  return 0;
}
