#!/usr/bin/perl

# Make input records paragraphs, not lines.
$/="";

# Read all the input paragraphs at once.
my @paragraphs = <>;

# For each paragraph, split into lines and find the maximum line length
# for that paragraph.
my $npara = @paragraphs;
for ($i = 0; $i < $npara; $i++) {
	$maxlens[$i] = 0;
}
$maxrows = 0;

for ($i = 0; $i < $npara; $i++) {
	my @lines = split /\n/, $paragraphs[$i];
	my $nlines = @lines;
	for ($j = 0; $j < $nlines; $j++) {
		my $len = length($lines[$j]);
		if ($len > $maxlens[$i]) {
			$maxlens[$i] = $len;
		}
		$$matrix[$i][$j] = $lines[$j];
	}
	if ($nlines > $maxrows) {
		$maxrows = $nlines;
	}
}

# Print the paragraphs side-by-side.
for ($j = 0; $j < $maxrows; $j++) {
	$line = "";
	for ($i = 0; $i < $npara; $i++) {
		if ($$matrix[$i][$j] ne "") {
			$val = $$matrix[$i][$j];
		}
		else {
			$val = "";
		}
		$line .= sprintf "%-*s", $maxlens[$i], $val;
		if ($i < ($npara - 1)) {
			$line .= "  ";
		}
	}
	$line =~ s/  *$//;
	print $line;
	print "\n";
}
