#arc045d. [arc045_d]みんな仲良し高橋君

[arc045_d]みんな仲良し高橋君

问题文

在二维坐标平面上,给定 2N+12N+1 个不同坐标的点。

高桥君要从这些点中创建尽可能多的好朋友组合。

满足以下条件的点之间可以成为好朋友组合:

  • 两个点的 xx 坐标或者 yy 坐标中的一个相等。

但每个点不能与两个以上的点成为好朋友组合。

高桥君希望把所有的点都组合成好朋友,但是由于点的数量是奇数,所以发现这是不可能的。

因此,他想删除其中一个点,然后创建 NN 对好朋友组合,这样就能使所有的点都成为好朋友组合。

请判断对于所有的点,删除某个点后,剩下的 2N2N 个点是否可以创建出 NN 对好朋友组合。


输入

输入数据从标准输入中获取,格式如下:

NN

X1X_1 Y1Y_1

X2X_2 Y2Y_2

:

X2N+1X_{2N+1} Y2N+1Y_{2N+1}

  • 第一行是一个整数 N(1N100,000)N(1 ≦ N ≦ 100,000),表示点的数量。
  • 接下来 2N+12N+1 行,给出了点的位置信息。其中第 ii 行包含两个用空格分隔的整数 Xi(1Xi2N+1)X_i(1 ≦ X_i ≦ 2N+1)Yi(1Yi2N+1)Y_i(1 ≦ Y_i ≦ 2N+1),表示第 ii 个点的坐标为 (Xi,Yi)(X_i, Y_i)
  • 对于任意的 iijj,满足 iji ≠ j 的条件下,有 XiXjX_i ≠ X_j 或者 YiYjY_i ≠ Y_j

输出

输出结果到标准输出,末尾包含换行符。

输出共有 2N+12N+1 行。

对于第 ii 行的点被删除后,判断剩下的 2N2N 个点能否创建出 NN 对好朋友组合,如果可以则输出 OK,否则输出 NG


部分点

对于以下附加约束的数据集,如果能正确输出则可以获得 30 分。

  • 对于所有的 i(1i2N)i(1 ≦ i ≦ 2N),满足条件 Xi=Xi+1X_i = X_{i+1} 或者 Yi=Yi+1Y_i = Y_{i+1}

示例输入1

1
1 1
1 2
2 1

示例输出1

NG
OK
OK

示例输入2

2
1 1
1 2
2 2
2 3
3 3

示例输出2

OK
NG
OK
NG
OK

此示例符合部分点的约束。


示例输入3

2
1 1
1 2
3 3
4 4
4 5

示例输出3

NG
NG
OK
NG
NG