#NOI20091A. 变换序列

变换序列

Description

对于N个整数0, 1, ……, N -1,一个变换序列T可以将i变成T ~i~ ,其中 imageimageimage,定义xy之间的距离image。给定每个i和Ti之间的距离 D (i,Tii_,T_i),你需要求出一个满足要求的变换序列 T 。如果有多个满足条件的序列,输出其中字典序最小的一个。 说明 :对于两个变换序列ST ,如果存在 p < N ,满足对于 i =0,1,…… p -1,Si=tiS_i=t_iSp<TpS_p<T_p ,我们称 ST 字典序小。

Format

Input

输入文件transform.in的第一行包含一个整数 N ,表示序列的长度。接下来的一行包含N个整数DiD_i,其中DiD_i表示 iTiT_i之间的距离。

Output

输出文件为transform.out。 如果至少存在一个满足要求的变换序列 T ,则输出文件中包含一行N个整数,表示你计算得到的字典序最小的 T ;否则输出”No Answer”(不含引号)。注意:输出文件中相邻两个数之间用一个空格分开,行末不包含多余空格。

Samples

5
1 1 2 2 1
1 2 4 0 3

Limitation

【数据规模和约定】 20%的数据中 N ≤50; 60%的数据中 N ≤500; 100%的数据中 N ≤10000。