#!/usr/bin/env php
<?
$margin=40;
$text="";
while(!feof(STDIN))
{
  $text.=fgets(STDIN);
}
$text=preg_replace('/\n(\S)/','$1',$text);
$head='[a-r]';
$middle='[><!w0%\(vuxz:\*\/\|)\+5\{st\?\.y937\$}=_&8~46]';
$tail='[\'1`\"a]';
$punc='[,2;]';
$text=preg_replace('/^ *#([a-j]{1,3}4)/m','  #$1',$text);
$text=preg_replace('/\n( *)/',"\n\n$1",$text);
$paragraph=explode("\n\n",$text);
$text="";
foreach($paragraph as $line)
{
  while(strlen($line)>$margin)
  {
    $match[0][1]=$margin;
    $start=$margin-1;
    $tmp=0;
    while($tmp==0 || $match[0][1]>$start)
    {
      $start--;
      if($start==0){$start=$margin-2;break;}
      $tmp=preg_match('/..\s|('.$middle.$tail.'|'.$tail.$punc.'|33|. )('.$head.$middle.'|'.$middle.$tail.'|;-)/',$line,$match,PREG_OFFSET_CAPTURE,$start);
    }
    $text.=substr($line,0,$start+2)."\n";
    $line=trim(substr($line,$start+2));
  }
  if($line) $text.=$line."\n";
}
echo $text;
exit(0);
?>
