Code alignment
You are part of a team developing the Incredibly Customizable Code Editor, a text editor with advanced features. Your task is to create a module that processes a block of code, aligning each column to a fixed vertical position while keeping the code as concise as possible. Specifically, the first word in each line should start at position (p_1 = 1); the second word should start at the smallest possible position (p_2) such that all first words end at or before position (p_2 - 2); the third word should start at the smallest possible position (p_3) such that all second words end at or before position (p_3 - 2), and so forth.
The code consists of multiple lines, each containing one or more words separated by spaces. Words are composed of lowercase or uppercase Latin letters and ASCII symbols, including punctuation marks, separators, and other symbols (ASCII codes from 33 to 126 inclusive). A space has an ASCII code of 32.
Input
The input file contains one or more lines of code. Each line ends with a standard end-of-line character, including the last one. Every line contains at least one word, with each word being between 1 and 80 characters long. Words are separated by one or more spaces. No line in the input file exceeds 180 characters, and there are no more than 1000 lines in total.
Output
The output file should contain the formatted, aligned code with the same number of lines, preserving the original words and their order. There should be no spaces at the beginning or end of any line. Words must be separated by one or more spaces so that the i-th word in each line starts at position (p_i).
In the example below, the symbol " represents a space (ASCII code 32).