#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std ;
const int maxn = 1510 ;
inline int read ( ) {
int num = 0 ,flag = 1 ; char ch = getchar ( ) ;
while (ch < '0' ||ch > '9' ) {
if (ch == '-' ) flag = - 1 ;
ch = getchar ( ) ;
}
while (ch >= '0' &&ch <= '9' ) num =num * 10 +ch - '0' ,ch = getchar ( ) ;
return flag *num ;
}
int n ,l [maxn ] ,s [ 100 *maxn ] ,r ,cur = 0 ,s1 [ 100 *maxn ] ,las = 1 ,vis [ 100 *maxn ] ;
int main ( ) {
n = read ( ) ;
for ( int i = 1 ;i <=n ;i ++ ) l [i ] = read ( ) ;
for ( int i = 1 ;i <=n ;i ++ ) {
for ( int j = 1 ;j <=l [i ] -l [i -1 ] ;j ++ ) {
s [ ++cur ] = 1 ;
r =cur ;
}
s [ ++cur ] = 0 ;
for ( int j =las ;j <=cur ;j ++ ) {
if (s [j ] ) s1 [j ] =s1 [j -1 ] + 1 ;
else s1 [j ] =s1 [j -1 ] ;
}
vis [r ] = true ;
cout <<s1 [cur ] -s1 [r ] + 1 << ' ' ;
for ( int j =r -1 ;j >= 1 ;j -- ) {
if (s [j ] && !vis [j ] ) {
r =j ; break ;
}
}
las =cur ;
}
cout <<endl ;
return 0 ;
}
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std ;
const int maxn = 1510 ;
inline int read ( ) {
int num = 0 ,flag = 1 ; char ch = getchar ( ) ;
while (ch < '0' ||ch > '9' ) {
if (ch == '-' ) flag = - 1 ;
ch = getchar ( ) ;
}
while (ch >= '0' &&ch <= '9' ) num =num * 10 +ch - '0' ,ch = getchar ( ) ;
return flag *num ;
}
int n ,l [maxn ] ,s [ 100 *maxn ] ,r ,cur = 0 ,s1 [ 100 *maxn ] ,las = 1 ,vis [ 100 *maxn ] ;
int main ( ) {
n = read ( ) ;
for ( int i = 1 ;i <=n ;i ++ ) l [i ] = read ( ) ;
for ( int i = 1 ;i <=n ;i ++ ) {
for ( int j = 1 ;j <=l [i ] -l [i -1 ] ;j ++ ) {
s [ ++cur ] = 1 ;
r =cur ;
}
s [ ++cur ] = 0 ;
for ( int j =las ;j <=cur ;j ++ ) {
if (s [j ] ) s1 [j ] =s1 [j -1 ] + 1 ;
else s1 [j ] =s1 [j -1 ] ;
}
vis [r ] = true ;
cout <<s1 [cur ] -s1 [r ] + 1 << ' ' ;
for ( int j =r -1 ;j >= 1 ;j -- ) {
if (s [j ] && !vis [j ] ) {
r =j ; break ;
}
}
las =cur ;
}
cout <<endl ;
return 0 ;
}