#APL, <s>35 characters</s> solution pending...