Problema número 405

Imprimiendo páginas sueltas

Tiempo máximo: 1,000-3,000 sMemoria máxima: 4096 KiB
'Dummy' esperando la impresión

En virtualmente todos los cuadros de diálogo que muestran las aplicaciones a la hora de imprimir, el usuario puede elegir qué páginas quiere conseguir en papel, para evitar que se imprima todo el documento.

Si se quieren varias páginas, se pueden indicar sus números separados por comas. Si esas páginas son consecutivas, por ejemplo todas las páginas entre la 10 y la 20, en lugar de escribir una a una, se puede especificar el rango con los números de los extremos separados con un guión, "10-20".

Sabiendo las páginas que quieres imprimir, ¿cuál es la forma más corta de indicarlo en el cuadro de diálogo?

Entrada

El programa tendrá que procesar varios casos de prueba. Cada uno está compuesto por los números de las páginas que se quieren imprimir, de menor a mayor separadas por espacio. Ningún documento tiene más de 109 páginas y nunca querremos imprimir la misma página más de una vez. La secuencia acaba con un 0.

La entrada termina con un caso sin páginas (una línea con un único 0), que no deberá procesarse.

Salida

Para cada caso de prueba se debe escribir la especificación más corta posible que hay que indicar en el cuadro de diálogo para imprimir las páginas deseadas. Si hay varias opciones, se preferirá siempre especificar las páginas con un rango.

Entre los números y los separadores (coma o guión) no se deben introducir espacios.

Entrada de ejemplo

1 2 3 4 0
1 2 5 6 0
100 122 123 125 0
0

Salida de ejemplo

1-4
1-2,5-6
100,122-123,125