MAKETREE - Hierarchy

no tags 

A group of graduated students decided to establish a company; however, they don't agree on who is going to be whose boss.

Generally, one of the students will be the main boss, and each of the other students will have exactly one boss (and that boss, if he is not the main boss, will have a boss of his own too). Every boss will have a strictly greater salary than all of his subordinates - therefore, there are no cycles. Therefore, the hierarchy of the company can be represented as a rooted tree.

In order to agree on who is going to be who's boss, they've chosen K most successful students, and each of them has given a statement: I want to be the superior of him, him, and him (they could be successful or unsuccessful). And what does it mean to be a superior? It means to be the boss, or to be one of the boss' superiors (therefore, a superior of a student is not necessary his direct boss).

Help this immature company and create a hierarchy that will satisfy all of the successful students' wishes. A solution, not necessary unique, will exist in all of the test data.

Input

In the first line of input, read positive integers N (N ≤ 100 000), total number of students, and K (K < N), the number of successful students. All students are numbered 1..N, while the successful ones are numbered 1..K.

Then follow K lines. In Ath of these lines, first read an integer W (the number of wishes of the student A, 1 ≤ W ≤ 10), and then W integers from the range [1, N] which denote students which student A wants to be superior to.

Output

Output N integers. The Ath of these integers should be 0 if student A is the main boss, and else it should represent the boss of the student A.

Example

Input:
4 2
1 3
2 3 4

Output:
2
0
1
2
Input:
7 4
2 2 3
1 6
1 7
2 1 2

Output:
4
1
1
0
4
2
3

hide comments
predator00_: 2020-06-09 21:02:24

just use topological sort blindly:)

tikli_10: 2020-06-05 13:51:12

Use iterative topological sort, not recursive

Amr: 2020-04-29 23:39:08

There are multiple valid solutions for this problem, Don't bind yourself with the answers in the test cases

Last edit: 2020-04-29 23:39:34
nadstratosfer: 2020-02-03 00:14:30

Not sure if TL was changed but as of now even pure Python gets AC. Nice problem.

bigshakey: 2019-11-10 18:05:25

Really struggling to get under the time limit in c++

Last edit: 2019-11-10 18:05:42
azarhane: 2019-08-16 02:25:59

Not solvable in Java -> Always TLE

enigmus: 2019-08-15 13:15:00

finally I got AC in one go on a problem.

I would bring your attention to the fact that students not in the set K of successful students can take any position in the hierarchy (they can be the main boss as well) if they are not referenced by any of the students in the set K. The script of the problem is a bit vague in this regard

sagar_june97p: 2019-02-21 15:17:16

AC in one go!!

Gaurav Dahima: 2016-10-07 10:16:49

Surprisingly AC in 2nd go (First one was TLE due to cin).
note: there will be always one main boss. :)

hodobox: 2016-09-03 07:59:32

O(nlogn) requires constant optimization :/


Added by:Adrian Satja Kurdija
Date:2011-04-15
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:own problem