>>42
なるべく意味を汲み取って動くコードを書いてみた
http://ideone.com/fHB8J