# Qué secciones limitan la matrícula (extensión opcional)

Esta es la continuación opcional de `section_assignment`. Háganla después de resolver ese problema: los datos son
los mismos.

Cuando no todos entran, a la oficina de matrícula no le basta con el número. Quiere una explicación que pueda
comprobar sin confiar en el programa, para decidir dónde abrir más cupos. La explicación es un grupo de estudiantes
y el grupo de secciones a las que ellos pueden asistir. Si el grupo tiene más estudiantes que cupos esas secciones,
alguien de ese grupo se queda fuera, sin importar cómo se asigne.

Formalmente, sea A un conjunto de estudiantes, y sea N(A) el conjunto de todas las secciones que aparecen en la
lista de por lo menos un estudiante de A. Sea c(N(A)) la suma de sus cupos. Para cualquier asignación, al menos
|A| − c(N(A)) estudiantes de A se quedan sin sección. Si k es la mayor cantidad de estudiantes que se puede asignar,
ustedes deben dar un A que explique **todo** lo que falta:

|A| − c(N(A)) = n − k

Ese A siempre existe. Si entran todos, k = n, y A puede ser vacío.

## Entrada

Igual que en `section_assignment`. La primera línea tiene n y m. La segunda tiene los m cupos. Luego vienen n líneas,
cada una con d y d números de sección distintos.

## Salida

Tres líneas:

1. k, la mayor cantidad de estudiantes que se puede asignar.
2. a, la cantidad de estudiantes de A, seguida de esos a números de estudiante.
3. b, la cantidad de secciones de N(A), seguida de esos b números de sección.

Los números pueden ir en cualquier orden, y no se repiten. La línea 3 debe tener exactamente N(A): ni una sección de
más, ni una de menos. Si a es 0, b también es 0.

Puede haber varios conjuntos válidos, y cualquiera vale: un verificador revisa su respuesta. No hace falta imprimir
la asignación.

## Límites

- 1 ≤ n ≤ 2000
- 1 ≤ m ≤ 2000
- 0 ≤ cupo ≤ 5000
- La suma de todos los d es a lo sumo 40000.

## Ejemplo

Entrada:

```text
5 3
1 2 1
2 1 2
1 1
2 2 3
1 1
1 3
```

Salida:

```text
4
2 2 4
1 1
```

Se pueden asignar 4 de 5. Los estudiantes 2 y 4 solo pueden ir a la sección 1, que tiene cupo 1: |A| − c(N(A)) = 2 −
1 = 1, que es justo n − k = 5 − 4. Esto demuestra además que 4 es lo máximo.

## Tiempo

1 segundo por caso, compilado con `-O2`. Corran `make test` para probar con el juez.
