import sys input = sys.stdin.readline class FibonacciCoin: def __init__(self, n, arr): self.n = n self.arr = arr def solve(self) -> list[int]: cnts: list[int] = [] curr = [0] * 1_200_000 if self.arr[0] == 1 or self.arr[0] == 2: curr[2] = 1 else: curr[self.arr[0]] = 1 cnts.append(1) for i in range(1, self.n): cnt = cnts[-1] if self.arr[i] == 1 or self.arr[i] == 2: curr[2] += 1 if curr[2] == 2: curr[2] = 0 curr[3] += 1 else: cnt += 1 t = 3 else: curr[self.arr[i]] += 1 t = self.arr[i] cnt += 1 while True: if curr[t] >= 1 and curr[t - 1] >= 1: curr[t] -= 1 curr[t - 1] -= 1 curr[t + 1] += 1 cnt -= 1 t = t + 1 elif curr[t] >= 1 and curr[t + 1] >= 1: s = min([curr[t], curr[t + 1]]) curr[t] -= 1 curr[t + 1] -= 1 curr[t + 2] += 1 cnt -= 1 t = t + 2 else: break cnts.append(cnt) return cnts if __name__ == '__main__': n = int(input()) arr = list(map(int, input().split())) solver = FibonacciCoin(n, arr) print(*solver.solve(), sep=' ')