Het computerprogramma cowsay1 genereert ASCII-afbeeldingen van een koe met een bijhorend bericht.

+----------------------------+
| Moo may represent an idea, |
|  but only the cow knows.   |
+----------------------------+
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Het programma was oorspronkelijk bedoeld als een soort inside joke binnen de wereld van de hackers, maar bestaat ondertussen al zo lang dat het gebruik ervan wijd verspreid geraakt is.

Opgave

Je opdracht bestaat erin een gegeven boodschap uit te schrijven als een koe die de boodschap uitspreekt. Hierbij moet de tekst van de boodschap opgeschoond worden, en uitgeschreven worden in een tekstballon met een gegeven maximale breedte. Daarbij moet de tekst eventueel in verschillende regels opgebroken worden, die gecentreerd in de tekstballon weergegeven worden.

cowsay

Volg strikt de volgende procedure op om de tekstballon op te maken.

  1. Schoon de tekst van de gegeven boodschap op door spaties vooraan en achteraan te verwijderen, en meerdere spaties na elkaar te reduceren tot één enkele spatie.

  2. Als de tekst niet langer is dan de gegeven breedte, dan moet de tekstballon niet breder gemaakt worden dan de lengte van de tekst (zie tweede voorbeeld hieronder).

  3. Als de tekst wel langer is dan de gegeven breedte, dan moet de tekst uitgeschreven worden over verschillende regels, waarbij telkens het maximaal aantal resterende woorden moet uitgeschreven worden dat de gegeven breedte niet overschrijdt. De woorden van de tekst worden hierbij van elkaar gescheiden door spaties. De leestekens behoren dus tot het woord waar ze aan vasthangen.

  4. Het tekstfragment dat op één regel past moet gecentreerd uitgeschreven worden (volgens de regels voor centreren die geïmplementeerd worden door de stringmethode center).

  5. Plaats extra koppeltekens, plustekens, verticale strepen en spaties rondom de tekst zoals aangegeven in de voorbeelden.

Bij de controle van je oplossing zullen we er strikt op toezien dat alle karakters op de juiste plaats gezet worden in de uitvoer.

Invoer

Een regel met de tekst van een gegeven boodschap, gevolgd door een regel met een gegeven breedte $$b \in \mathbb{N_0}$$. Je mag ervan uitgaan dat het langste woord in de tekst niet langer is dan de gegeven breedte $$b$$.

Uitvoer

De tekst van de gegeven boodschap opgemaakt als een tekstballon, gevolgd door de vaste ASCII-afbeelding van een koe. De tekst in de tekstballon heeft een maximale breedte $$b$$, volgens de procedure die in de inleiding werd beschreven.

Voorbeeld

Invoer:

Moo   may   represent   an  idea,  but only the cow knows.
26

Uitvoer:

+----------------------------+
| Moo may represent an idea, |
|  but only the cow knows.   |
+----------------------------+
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Voorbeeld

Invoer:

Moo   may   represent   an  idea,  but only the cow knows.
1000

Uitvoer:

+----------------------------------------------------+
| Moo may represent an idea, but only the cow knows. |
+----------------------------------------------------+
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Voorbeeld

Invoer:

Moo   may   represent   an  idea,  but only the cow knows.
9

Uitvoer:

+-----------+
|  Moo may  |
| represent |
|  an idea, |
|  but only |
|  the cow  |
|   knows.  |
+-----------+
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||