在此同步
题号:NC263966
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

纸质题面中的样例有误,请以网页显示为准。

让我们复习一下排列的定义:一个长度为 n 的排列是一个包含 n 个元素的数组,对于 1 \sim n 的所有整数均在数组中恰好出现一次

现有一个长度为 n 的排列 p,从左到右依次编号为 1n,其中第 i (1 \leq i \leq n) 个元素的值为 p_i

如果数组中的两个不同位置,前面的数字比后面的数字严格大,则称其为一个逆序对。

我们定义一个排列的同步值为它的逆序对数,即整个排列中有多少个逆序对。

请你找出另一个排列,与输入排列 p 的长度和同步值均一致。

输入描述:

输入的第一行为一个正整数 n (1 \leq n \leq 500),表示排列的长度。

接下来一行 n 个空格分隔的正整数 p_i,表示排列中第 i 个元素的值。

保证输入的排列合法。

输出描述:

输出一行 n 个空格分隔的正整数表示答案。

如果有多个满足条件的排列,你可以输出任意一个。

如果找不到另一个长度和同步值均一致的排列,则输出一行一个整数 -1
示例1

输入

复制
5
4 1 5 2 3

输出

复制
5 1 2 4 3

说明

排列的长度和同步值均为 5
示例2

输入

复制
3
1 2 3

输出

复制
-1

备注: