# La reunión de la empresa, con la lista

Esta es la extensión del problema `company_meeting`: la misma empresa, la misma regla y los mismos aportes. Ahora la
gerencia no se conforma con saber cuánto puede aportar la reunión. También quiere saber a quién invitar.

Nadie quiere asistir junto con su jefe directo. Una reunión sin nadie está permitida, y su aporte es 0.

## Entrada

La misma de `company_meeting`. La primera línea tiene n, la cantidad de personas, numeradas de 1 a n. Luego vienen n
líneas. La línea i tiene dos enteros: vᵢ, el aporte de la persona i, y bᵢ, el número de su jefe directo, o 0 si no
tiene jefe.

Los números no siguen el orden de la jerarquía. Hay exactamente una persona sin jefe, y las relaciones forman un árbol.

## Salida

Tres líneas:

1. El mayor aporte total posible.
2. k, la cantidad de personas invitadas.
3. Los k números de las personas invitadas, separados por espacios, en cualquier orden. Si k es 0, esta línea queda
   vacía.

Puede haber varias reuniones con el mayor aporte, y cualquiera vale: un verificador revisa su respuesta. Comprueba que
el total sea el mayor posible, que cada número esté entre 1 y n, que ninguno se repita, que nadie vaya junto con su
jefe directo y que los aportes de la lista sumen ese total.

## Límites

- 1 ≤ n ≤ 1 000 000
- −1 000 000 000 ≤ vᵢ ≤ 1 000 000 000
- 0 ≤ bᵢ ≤ n
- Hay un caso en que toda la empresa es una sola cadena de mando de 1 000 000 de personas.
- El programa corre con la pila del entorno del curso, de 8 MB (`ulimit -s` responde 8192).

## Ejemplo

Entrada:

```text
6
7 4
3 1
6 6
2 0
1 1
4 4
```

Salida:

```text
13
2
1 3
```

## Tiempo

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