#! /usr/bin/perl -w

## not very scalable;  stores entire document in memory

use strict;
use List::Util qw[min max];

main:{
## leftmost column is column ZERO
  my @cwid = ();        # width of column

  my @store = ();

  while (my $line = <>){
    chomp $line;
    my @stuff = split(' ', $line);
    for (my $ii = 0; $ii < 0+@stuff; $ii++){
      my $old = $cwid[$ii] || 0;
      $cwid[$ii] = max(length($stuff[$ii]), $old);
    }
    push @store, \@stuff;
  }
  foreach my $line (@store) {
    my @stuff = @$line;
    for (my $ii = 0; $ii < 0+@stuff; $ii++){
      if ($ii) {
        print " ";
      }
      printf("\%-$cwid[$ii]s", $stuff[$ii]);
    }
    print "\n";
  }
}