program teksto_tvarkymas;
  { 155 u‘davinys }

  procedure tvarkyti (var t: string);
  { sutvarko duot… tekst… }
    var i: integer;
  begin
    { pažalinami nereikalingi tarpai }
    i := 1;
    while i < length(t) do
      if (t[i] in ['(', ' ']) and (t[i+1] = ' ')
         then delete (t, i+1, 1)
         else if (t[i] = ' ') and (t[i+1] in ['.', ',',':',';', ')'])
                 then delete (t, i, 1)
                 else i := i + 1;
    { priež dežin skliaust… terpiamas tarpas }
    i := 2;
    while i <= length(t) do
      if (t[i] = '(') and (t[i-1] <> ' ')
         then insert (' ', t, i)
         else i := i + 1;
    { po ‘enkl— terpiama po vien… tarp… }
    i := 1;
    while i < length(t) do
      if (t[i] in ['.', ',',':',';', ')']) and (t[i+1] <> ' ')
           then begin
                  insert (' ', t, i+1);  { terpiame tarp… }
                  i := i + 1;
                end
           else i := i + 1;
  end; { tvarkyti }

  procedure skaidyti (n: integer; t: string);
  { suskaido duot… tekst…  eilutes ir atspausdina }
    var viskas: boolean;
        pask, tarpai, i, kiek, liko, nr: integer;
        eil: string;
  begin
    viskas := false;
    repeat
      { jei liko paskutin‚ eilut‚, tai j… atspausdiname }
      if length (t) <= n
         then begin
                writeln (t);
                viskas := true
              end
      else begin
             { randame spausdinamos eilut‚s paskutin simbol }
             pask := n + 1;
             while t[pask] <> ' ' do
               pask := pask - 1;
             pask := pask - 1;
             { eil - spausdinimui atskirta eilut‚ }
             eil := copy (t, 1, pask);
             delete (t, 1, pask+1);
             { randame tarp— skai‡i— žioje eilut‚je }
             tarpai := 0;
             for i := 1 to pask do
               if eil[i] = ' '
                  then tarpai := tarpai + 1;
             { rasime terpiam— tarp— skai‡i— }
             kiek := (n - pask) div tarpai;
             liko := (n - pask) mod tarpai;
             nr := 1;
             { sud‚liojame tarpus }
             while nr < n do
               begin
                 if eil[nr] = ' '
                    then begin
                            for i := 1 to kiek do
                               insert (' ', eil, nr);
                            nr := nr + kiek;
                            if liko > 0
                               then begin
                                      insert (' ', eil, nr);
                                      liko := liko - 1;
                                      nr := nr + 1
                                    end;
                         end;
                 nr := nr + 1;
               end;
             { atspausdinama  eilut‚ }
             writeln (eil);
           end;
    until viskas;
    writeln;
  end; { skaidyti }

  var n: integer;
      t, s: string;
      f: text;
begin
  assign (f, 'TEKSTAS.DAT');
  reset (f);
  readln (f, n);
  t := '';
  repeat
    readln (f, s);
    if not eof (f)
       then s := s + ' ';
    t := t + s;
  until eof (f);
  close (f);
  tvarkyti (t);
  skaidyti (n, t)
end.