Question: Say I have text like this (each word on one line, with no spaces)

```
Programming
Puzzles
&
Code
Golf

```

That makes no sense! It totally defies the laws of physics.

Your challenge is to remedy this impossible situation and collapse the text like so:

```
P
Prog
&uzz
Coderam
Golflesming

```

So that there is no empty space underneath any character but the characters retain their vertical order.

The goal is to satisfy the requirements but use the fewest bytes of source code possible.

Answer: 
Matlab / Octave, 99 bytes
-------------------------

```
function f(s)
c=char(strsplit(s,[10 '']));[~,i]=sort(c>32);[m,n]=size(c);c(i+repmat((0:n-1)*m,m,1))

```

**Example**:

Define an input string in a variable, say `s`. `10` is the line feed character:

```
>> s = ['Programming' 10 'Puzzles' 10 '&' 10 'Code' 10 'Golf'];

```

Call function `f` with input `s`: 

```
>> f(s)
ans =
P          
Prog       
&uzz       
Coderam    
Golflesming

```

Or [**try it online**](http://ideone.com/XzvAoZ) (thanks to [@beaker](https://codegolf.stackexchange.com/users/42892/beaker) for help with the online Octave interpreter)
[pb](https://esolangs.org/wiki/Pb) - 310 bytes
==============================================

```
^w[B!0]{w[B=32]{vb[1]^b[0]}>}b[1]vb[1]>b[2]<[X]w[B!2]{t[T+B]b[0]>}b[0]v[T]w[X!-1]{b[1]<}b[1]vb[1]w[B!0]{w[B!0]{^w[B!0]{>}<<<<^[Y+1]w[B!0]{<}>t[B]b[0]w[B!1]{v}v<[X]w[B!0]{>}b[T]}b[0]vb[1]^w[X!0]{<vb[1]^t[B]b[0]^w[B!0]{^}b[T]w[B!0]{v}}vw[B!0]{^^w[B!0]{>}<b[0]vvw[B=0]{<}b[0]<[X]}^^>w[B=0]{vb[1]}v<<}>>^b[0]^<b[0]

```

What a disaster. I barely remember anything about how it works.

Because of the way pb's input works (a single line all at once), you have to use spaces instead of newlines in the input. If the interpreter wasn't garbage and you could include newlines in the input, the only change would be the `[B=32]` at the beginning becoming `[B=10]`.

I'm working on an update to pbi (the interpreter) that will clean up the visuals if you want to watch the program run. It still needs a lot of work but in the mean time, you can [watch this program on YouTube](https://www.youtube.com/watch?v=PLxVRia6a3A).