情侣和聚餐
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

n对情侣在一起聚餐,他们坐在一张有 2n 个座位的圆形餐桌上,座位依次编号为 1,2,...,2n 。对于第 i 对情侣,男方坐在 a_i 座位上,女方坐在 b_i 座位上。Playf是这家餐厅的服务员,这家餐厅提供两种类型的食物:牛排和面条。Playf想知道,他是否有一种送菜方案,满足以下几个条件:
1. 对于任意一个人,都恰好得到一种类型的食物。
2. 对于任意一对情侣,他们得到的食物类型不同。
3. 对于任意相邻的三个人,他们得到的食物类型不能全都相同。注意:坐在1号座位的人和坐在 2n 号座位的人是相邻的,因为桌子是圆的。
Playf希望你能帮他设计一种方案满足以上条件,你能帮帮他吗?如果方案有多种,任意输出一种即可。

输入描述:

第一行输入一个整数  ,表示情侣的对数。
接下来n行,每行两个整数  ,表示每对情侣男方和女方坐的座位。
输入保证对于所有的 a_i,b_i 都是不同的。

输出描述:

如果无解,输出一行-1。
否则,输出 n 行,第 i 行表示分配给第 i 对情侣的食物类型,每行两个整数。第一个整数表示分配给男方的食物类型,第二个整数表示分配给女方的食物类型。用1表示分配食物类型是牛排,用2表示分配的食物类型是面条。
示例1

输入

复制
3
1 4
2 5
3 6

输出

复制
1 2
2 1
1 2