def solve(N, S): dp = list(range(1, S[0] + 2)) for n in range(1, N+1): for i in range(len(dp)): dp[i] += 1 dp.extend([float('inf')] * (S[n] - S[n-1])) for i in range(1, S[n] + 1): for j in range((i+1)//2): tmp = dp[j] + dp[i-j-1] if tmp < dp[i]: dp[i] = tmp return dp N = int(input()) S = list(map(int, input().split())) result = solve(N, S) print(*result)