Orden de Ordeño


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Python 2.0s
Memory limit: 128M

Author:
Problem type
Allowed languages
Ada, BrainF***, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Prolog, Python, Swift, VB

Las N vacas del granjero Juan \((1\leN\le10^5)\), numeradas 1...N como siempre, pasan mucho tiempo en sus pezuñas. Como resultado de eso, ellas han elaborado una jerarquia social compleja relacionada con el orden en que el Granjero Juan las ordeña cada mañana.

Después de semanas de estudio, el Granjero Juan ha hecho M obseraciones acerca de la estructura social \((1\leM\le50,000)\). Cada observación es una lista ordenada de algunas de sus vacas, indicando que esas vacas podrían ser ordeñadas en el mismo orden en que aparecen en esta lista. Por ejemplo, si una de las observaciones del Granjero Juan es la lista 2, 5, 1, el Granjero Juan debe ordeñar la vaca 2 algún tiempo antes de ordeñar la vaca 5, la cual debería ser ordeñanda antes de ordeñar la vaca 1.

Las observaciones del Granjero Juan son priorizadas, de forma que su objetivo es maximizar el valor de X para el cual su orden de ordeño cumpla las condiciones mostradas en las primeras X observaciones. Si varios ordenes de ordeño satisfacen esas X condiciones primeras, el Granjero Juan cree que es una tradición muy vieja que las vacas con números menores están antes de las que tienen números más altos, de tal manera que a él le gustaría ordeñar las vacas con números más pequeños primero. Más formalmente, si hay varios ordenamientos que satisfagan esas condiciones, al Granjero Juan le gustaría usar el menor lexicográficamente. Un ordenamiento x es lexicográficamente menor que un ordenamiento y, si para algún j, xi=yi para todo i<j y xj<yj (en otras palabras, los dos ordenamientos son iguales hasta cierto punto, en elcual x es menor que y).

Por favor ayude al Granjero Juan a determinar el mejor ordenamiento en el cual ordeñar a sus vacas.

Entrada

La primera línea contiene N y M. Cada una de las siguientes líneas describen una observación. La línea i+1 describe la observación i y comienza con el número de vacas mi listadas en la observación seguido por la lista de mi enteros dando el orden de las vacas en la observación. La suma de los mi es a lo más 200,000 .

Salida

Como salida N enteros separdos por espacio, dando una permutación de 1...N conteniendo el orden en el cual el Granjero Juan debe ordeñar sus vacas.

Ejemplo de Entrada

4 3
3 1 2 3
2 4 2
3 3 4 1

Ejemplo de Salida

1 4 2 3

Aquí el Granjero Juan tiene cuatro vacas y debe ordeñar la vaca 1 antes de la vaca 2 y la vaca 3 antes de la vaca 4 (la primera observación), la vaca 4 antes de la vaca 2 (la segunda observación), y la vaca 3 antes de la vaca 4 y la vaca 4 antes de la 1 (la tercera observación). Las dos primeras observaciones pueden ser satisfechas simultáneamente, pero el Granjero Juan no puede cumplir todos esos criterios al tiempo, para hacerlo así requiere que la vaca 1 venga antes que la vaca 3 y la vaca 3 antes de la vaca 1. Esto quiere decir que hay dos ordenamientos posibles: 1 4 2 3 y 4 1 2 3, siendo el primero lexicográficamente menor.


Comments

There are no comments at the moment.