#include #include #include int *inp; int *ans; int n; int find_next_zero(void); void sub_till(int ); int main() { int i, index = 0; scanf("%d", &n); inp = (int *)(malloc(sizeof(int)*n)); ans = (int *)(malloc(sizeof(int)*n)); for(i = 0 ; i < n ; i++) scanf("%d", &inp[i]); for(i = n ; i > 0 ; i--) { index = find_next_zero(); if(index == -1) { printf("-1"); exit(0); } else { ans[index] = i; sub_till(index); } } for(i = 0 ; i < n ; i++) printf("%d ", ans[i]); return 0; } int find_next_zero(void) { int i; for(i = 0 ; i < n ; i++) if(inp[i] == 0) return i; return -1; } void sub_till(int index) { int i; for(i = 0 ; i <= index ; i++) inp[i] = inp[i] - 1; }