Todos los equipos participantes en las Olimpiadas Regionales de Programación de este año van a participar en una gran cena que se celebrará después de la ceremonia de entrega de premios. Para maximizar la interacción entre los miembros de diferentes equipos, se espera que las personas que se sientan en una mesa sean todas de equipos distintos.
Dado el número de miembros de cada equipo (incluyendo participantes, entrenadores, reservas, invitados, etc.) y el número de asientos disponibles en cada mesa, debes determinar si es posible colocar a la gente como se ha indicado arriba. Si es posible conseguirlo, debes indicar también cuál es la colocación de las personas. Si hay varias soluciones posibles, cualquiera de ellas es aceptable.
El fichero de entrada puede contener múltiples casos. La primera línea de cada caso contiene dos enteros M (1<=M<=70) y N (1<=N<=50) que indican el número de equipos y el número de mesas, respectivamente. La segunda línea de cada caso contiene M enteros, donde el i-ésimo entero (1<=i<=M), denotado mi (1<=mi<=100) indica el número de miembros del equipo i. La tercera línea contiene N enteros, donde el j-ésimo entero (1<=j<=N), denotado nj (2<=nj<=100) indica el número de asientos de la mesa j.
El final de la entrada se indica con un caso donde M y N valen 0.
Para cada caso de prueba debes escribir una línea con un 1 o un 0 dependiendo de si existe o no una forma válida de sentar a los miembros de los equipos. En caso afirmativo, debes escribir M líneas adicionales donde la i-ésima línea (1<=i<=N) contiene los números de mesa (enteros entre 1 y N) para cada uno de los miembros del equipo i.
4 5 4 5 3 5 3 5 2 6 4 4 5 4 5 3 5 3 5 2 6 3 0 0
1 1 2 4 5 1 2 3 4 5 2 4 5 1 2 3 4 5 0