给定一个包含 $n$ 个整数的序列 $p_1, p_2, \dots, p_n$,初始时它是 $1$ 到 $n$ 的一个排列。你的任务是将该序列按升序排序。为了实现这一目标,你可以执行两种类型的操作:将一个元素的值加到其相邻元素上,或者从其相邻元素中减去一个元素的值。
在操作过程中,任何元素的值在任何时刻都不得超出范围 $[1, n]$。操作次数不得超过 $2\,500\,000$。
输入格式
第一行包含一个整数 $n$ ($2 \le n \le 30\,000$),表示输入序列的长度。 第二行包含 $n$ 个两两不同的整数 $p_1, p_2, \dots, p_n$ ($1 \le p_i \le n$),即待排序的序列。
输出格式
第一行应包含一个整数 $r$ ($0 \le r \le 2\,500\,000$),表示你想要执行的操作次数。
接下来的 $r$ 行应按以下格式描述连续的操作:
a + b:将第 $b$ 个元素的值加到第 $a$ 个元素上。
a - b:从第 $a$ 个元素中减去第 $b$ 个元素的值。
在上述操作中,必须始终满足 $|a - b| = 1$。
注意,你不需要最小化操作次数。可以证明,通过执行最多 $2\,500\,000$ 次操作,总是可以将该排列排序。
样例
输入 1
3 1 3 2
输出 1
3 2 - 3 3 + 2 2 + 1
说明
序列在第一次操作后变为 $[1, 1, 2]$,第二次操作后变为 $[1, 1, 3]$,第三次操作后变为 $[1, 2, 3]$。