Denise 正在设计一款以雨林为主题的桌游。游戏的目标是让每位玩家组建一个由两个角色组成的队伍,并完成各种挑战。
共有 $N$ 个不同的角色,编号从 $1$ 到 $N$。每个角色 $i$ 都有两个属性 $p_i$ 和 $s_i$(解题能力和力量)。数字 $p_i$ 和 $s_i$ 是满足 $1 \le p_i, s_i \le N$ 的正整数。在游戏开始前,每位玩家将挑选两个角色 $i$ 和 $j$ 组成队伍。可以选择同一个角色的两个副本。队伍的总解题能力和总力量分别为 $p_i + p_j$ 和 $s_i + s_j$。
游戏中还有 $N$ 张挑战卡,编号从 $1$ 到 $N$。每张卡也有两个属性 $P_k$ 和 $S_k$。Denise 已经设计好了挑战卡,并确定了所有数字 $P_1, P_2, \dots, P_N$ 和 $S_1, S_2, \dots, S_N$ 的值。然而,游戏规则假设玩家不可能组建出一支队伍,其总解题能力和总力量与某张挑战卡完全相同。换句话说,对于任何三元组 $i, j, k$(注意 $i$ 可以等于 $j$),以下情况绝不应该发生:
$$p_i + p_j = P_k \text{ 且 } s_i + s_j = S_k$$
现在唯一剩下的工作是确定 $N$ 个不同的数对 $(p_1, s_1), (p_2, s_2), \dots, (p_N, s_N)$,使得 $1 \le p_i, s_i \le N$ 且上述情况永远不会发生。
雨林,公有领域
输入格式
第一行包含整数 $N$ ($1 \le N \le 10\,000$)。 接下来的 $N$ 行包含挑战卡的值 $P_i, S_i$ ($1 \le P_i, S_i \le 2 \cdot N$)。
输出格式
如果没有解,输出 “NO”。否则,输出 “YES”,随后输出 $N$ 行,每行包含一对整数 $p_i, s_i$ ($1 \le p_i, s_i \le N$)。这些整数对必须各不相同。换句话说,不能存在两个下标 $i \neq j$ 使得 $p_i = p_j$ 且 $s_i = s_j$。
样例
样例输入 1
5 5 5 5 6 6 5 6 6 8 8
样例输出 1
YES 2 2 1 1 1 2 2 1 1 3
样例输入 2
1 2 2
样例输出 2
NO