Mirko 是网球的超级粉丝。不久后将举行一场有 $n$ 名选手参加的重要锦标赛。Mirko 花了数年时间研究网球选手,并收集了关于参赛者的各种统计数据。他在三种不同的场地(草地、红土和硬地)上对选手的实力进行了排名。更具体地说,对于每种场地,他都确定了选手的排名表,其中排名第一的选手最强,排名最后的选手最弱。
在这场锦标赛中,每位选手都将与其他所有选手恰好比赛一次,因此总共会有 $\frac{n(n-1)}{2}$ 场比赛。网球比赛不能以平局结束,在比赛进行的场地上实力更强的选手将会获胜。组织者深知这一点,因此他们决定,每场比赛都应该在能使获胜者实力最强(即在对应场地的排名表中位置最好)的场地上进行。如果在这方面有多种场地相同(例如,选手 $A$ 和 $B$ 之间的比赛,若在场地 1 举办则 $A$ 获胜,在场地 2 举办则 $B$ 获胜,且他们在各自获胜场地的排名表中都排在第三位),他们将选择能使失败者位置最好的场地。如果仍然相同,则选择编号最小的场地。
确定这场锦标赛的结果:在每种场地上进行的比赛场数,以及每位选手的获胜次数。
输入格式
第一行包含一个整数 $n$,表示选手的数量。选手用 $1$ 到 $n$ 的整数进行编号。
接下来的三行中,第 $i$ 行包含一个 $1$ 到 $n$ 的排列,表示第 $i$ 种场地上的选手排名表,从最强的选手开始。
输出格式
第一行,输出在第一、第二和第三种场地上进行的比赛场数。
第二行,输出每位选手(按 $1$ 到 $n$ 的顺序)的获胜次数。
子任务
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 35 | $1 \le n \le 300$ |
| 2 | 15 | $1 \le n \le 3000$ |
| 3 | 60 | $1 \le n \le 100\,000$ |
如果你的程序在某个子任务的每个测试点中都至少正确输出了其中一行,但未能做到在所有测试点中都两行全部输出正确,你将获得该子任务一半的分数。
样例
输入样例 1
3 3 2 1 1 3 2 3 2 1
输出样例 1
1 2 0 2 0 1
输入样例 2
4 4 3 2 1 3 1 2 4 1 2 3 4
输出样例 2
3 2 1 1 0 2 3
说明
样例 1 解释
选手 1 和选手 2 之间的比赛在场地 2 进行,因为获胜者(选手 1)拥有最好的(第一名)位置。
对于选手 1 和选手 3 之间的比赛,获胜者在所有三种场地上的位置相同,但失败者在场地 2 上的位置更好。
对于选手 2 和选手 3 之间的比赛,场地 1 和场地 3 相同,因此选择编号较小的场地(场地 1)。