N=int(raw_input()) S=map(int,raw_input().split()) dp=[[10000 for j in range(11)] for i in range(N+1)] for i in range(S[0]+1): dp[0][i]=i+1 for n in range(1,N+1): for j in range(S[n]+1): dp[n][j]=min(dp[n][j],dp[n-1][j]+1) for k in range(j): dp[n][j]=min(dp[n][j],dp[n][k]+dp[n][j-1-k]) for i in range(S[N]+1): print dp[N][i],