小乐的房间
题号:NC237371
时间限制:C/C++/Rust/Pascal 6秒,其他语言12秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

        传说中,在这个世界上有平行空间,但是只有在某些特定的时间(六一),特定的位置(某辆刹车失灵且高速行驶的车前)才可以穿越平行空间的壁障,短暂地前往那未知の地。
非常Lucky的,在今天,你在群里一如既往地水群的时候,平时御車得当的群友竟一时没有收住jio,使得你成功来到了一个少年の床底。
        。。。。。
        六一这一天,熬夜打了一夜的小乐从睡梦中醒来,他发现他自己的房间天旋地转,分不清东西南北。非常慌张的小乐害怕地掏出手机,打开了游戏,看到游戏里的上下左右他还分得清,这下他才安下了心,原来是房间坏了。
        小乐的房间的俯视图是一个 米 × 米 的正方形,他只记得自己的的床在房间的西北角的角落当前的位置),但是他现在急需去房间的另外3个角落分别拿到耳机,充电线,雪碧 然后回到床上打游戏。不过已经分不清东南西北的他很难在杂乱的房间中走到想去的地方。
        在床下的你听得直摇头,决心挽救这个孩子的未来。所以你决定要先一步到达房间的其他角落,把那些东西替换成:”戴上就摘不下来的英语听力耳机“,“拿起就会开始锻炼的跳绳”,“喝一口就想敲代码的牛可乐”(一种可乐)。
        不过你也分不清东南西北,但是聪明的你早已看出了这个房间的一些端倪:
        1. 房间可以视为 × N 个空间组成的地图,每个空间都有一个唯一的编号(空间编号无规律但保证是N * N的排列)。
        2. 每个空间都可以往东南西北四个方向行走前往相邻的空间,但是你此时也东南西北不分,所以只知道每个空间可以前往哪四个编号的空间
        3. 当你到达房间边界并且再次面壁前进,会从房间的另外一边出来(见下图,红色位置向右移动会来到蓝色位置)
        
        4. 绿色位置是房间的西北角,它的空间编号为1(此图只做解释并不是真的房间
        

输入描述:

第一行一个正整数n代表房间的边长(0 < n <= 1000)
从第二行开始,紧接着n * n行。每行4个正整数,第i - 1行代表编号为i的空间可以前往哪4个编号的相邻空间。(其中你当前所在空间编号为 1,处于整个房间西北角的角落。)

输出描述:

输出多个位置的编号,以空格分隔,编号小的在前面,代表有可能是房间角落空间的编号
示例1

输入

复制
2
2 3 2 3
1 4 1 4
4 1 4 1
2 3 2 3

输出

复制
1 2 3 4

说明

房间布局如下图,1234都是房间的角落
1 2
3 4